ec2 plugin 1.17 also has support for setting tags on instances, but that doesn't seem to work:
Launching ami-4bee4422 Looking for existing instances: {Filters: [{Name: image-id, Values: [ami-4bee4422], }, {Name: availability-zone, Values: [us-east-1b], }, {Name: key-name, Values: [jenkins-slave], }, {Name: instance-type, Values: [m1.xlarge], }, {Name: tag:Name, Values: [test], }, {Name: instance-state-name, Values: [stopped, stopping], }], } ERROR: You must specify one or more tags to create [8mha:AAAAWB+LCAAAAAAAAABb85aBtbiIQSmjNKU4P08vOT+vOD8nVc8DzHWtSE4tKMnMz/PLL0ldFVf2c+b/lb5MDAwVRQxSaBqcITRIIQMEMIIUFgAAckCEiWAAAAA=[0mStatus Code: 400, AWS Service: AmazonEC2, AWS Request ID: f17f58ad-2515-4b71-a5e7-de86531be347, AWS Error Code: InvalidParameterValue, AWS Error Message: You must specify one or more tags to create at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:547) at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:284) at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:169) at com.amazonaws.services.ec2.AmazonEC2Client.invoke(AmazonEC2Client.java:5684) at com.amazonaws.services.ec2.AmazonEC2Client.createTags(AmazonEC2Client.java:3102) at hudson.plugins.ec2.SlaveTemplate.provision(SlaveTemplate.java:292) at hudson.plugins.ec2.EC2Cloud.doProvision(EC2Cloud.java:207) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:288) at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:151) at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:90) at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:563) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:648) at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:563) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:648) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:477) at org.kohsuke.stapler.Stapler.service(Stapler.java:159) at javax.servlet.http.HttpServlet.service(HttpServlet.java:45) at winstone.ServletConfiguration.execute(ServletConfiguration.java:248) at winstone.RequestDispatcher.forward(RequestDispatcher.java:333) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:376) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95) at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87) at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47) at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:61) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:66) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76) at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164) at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81) at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) at winstone.RequestDispatcher.forward(RequestDispatcher.java:331) at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:245) at winstone.RequestHandlerThread.run(RequestHandlerThread.java:148) at java.lang.Thread.run(Thread.java:636)
ec2 plugin 1.17 also has support for setting tags on instances, but that doesn't seem to work:
Launching ami-4bee4422 Looking for existing instances: {Filters: [{Name: image-id, Values: [ami-4bee4422], }, {Name: availability-zone, Values: [us-east-1b], }, {Name: key-name, Values: [jenkins-slave], }, {Name: instance-type, Values: [m1.xlarge], }, {Name: tag:Name, Values: [test], }, {Name: instance- state-name, Values: [stopped, stopping], }], } ERROR: You must specify one or more tags to create [8mha: AAAAWB+ LCAAAAAAAAABb85 aBtbiIQSmjNKU4P 08vOT+vOD8nVc8D zHWtSE4tKMnMz/ PLL0ldFVf2c+ b/lb5MDAwVRQxSa BqcITRIIQMEMIIU FgAAckCEiWAAAAA =[0mStatus Code: 400, AWS Service: AmazonEC2, AWS Request ID: f17f58ad- 2515-4b71- a5e7-de86531be3 47, AWS Error Code: InvalidParamete rValue, AWS Error Message: You must specify one or more tags to create at com.amazonaws. http.AmazonHttp Client. handleErrorResp onse(AmazonHttp Client. java:547) at com.amazonaws. http.AmazonHttp Client. executeHelper( AmazonHttpClien t.java: 284) at com.amazonaws. http.AmazonHttp Client. execute( AmazonHttpClien t.java: 169) at com.amazonaws. services. ec2.AmazonEC2Cl ient.invoke( AmazonEC2Client .java:5684) at com.amazonaws. services. ec2.AmazonEC2Cl ient.createTags (AmazonEC2Clien t.java: 3102) at hudson. plugins. ec2.SlaveTempla te.provision( SlaveTemplate. java:292) at hudson. plugins. ec2.EC2Cloud. doProvision( EC2Cloud. java:207) at sun.reflect. NativeMethodAcc essorImpl. invoke0( Native Method) at sun.reflect. NativeMethodAcc essorImpl. invoke( NativeMethodAcc essorImpl. java:57) at sun.reflect. DelegatingMetho dAccessorImpl. invoke( DelegatingMetho dAccessorImpl. java:43) at java.lang. reflect. Method. invoke( Method. java:616) at org.kohsuke. stapler. Function$ InstanceFunctio n.invoke( Function. java:288) at org.kohsuke. stapler. Function. bindAndInvoke( Function. java:151) at org.kohsuke. stapler. Function. bindAndInvokeAn dServeResponse( Function. java:90) at org.kohsuke. stapler. MetaClass$ 1.doDispatch( MetaClass. java:111) at org.kohsuke. stapler. NameBasedDispat cher.dispatch( NameBasedDispat cher.java: 53) at org.kohsuke. stapler. Stapler. tryInvoke( Stapler. java:563) at org.kohsuke. stapler. Stapler. invoke( Stapler. java:648) at org.kohsuke. stapler. MetaClass$ 6.doDispatch( MetaClass. java:241) at org.kohsuke. stapler. NameBasedDispat cher.dispatch( NameBasedDispat cher.java: 53) at org.kohsuke. stapler. Stapler. tryInvoke( Stapler. java:563) at org.kohsuke. stapler. Stapler. invoke( Stapler. java:648) at org.kohsuke. stapler. Stapler. invoke( Stapler. java:477) at org.kohsuke. stapler. Stapler. service( Stapler. java:159) at javax.servlet. http.HttpServle t.service( HttpServlet. java:45) at winstone. ServletConfigur ation.execute( ServletConfigur ation.java: 248) at winstone. RequestDispatch er.forward( RequestDispatch er.java: 333) at winstone. RequestDispatch er.doFilter( RequestDispatch er.java: 376) at hudson. util.PluginServ letFilter$ 1.doFilter( PluginServletFi lter.java: 95) at hudson. util.PluginServ letFilter. doFilter( PluginServletFi lter.java: 87) at winstone. FilterConfigura tion.execute( FilterConfigura tion.java: 194) at winstone. RequestDispatch er.doFilter( RequestDispatch er.java: 366) at hudson. security. csrf.CrumbFilte r.doFilter( CrumbFilter. java:47) at winstone. FilterConfigura tion.execute( FilterConfigura tion.java: 194) at winstone. RequestDispatch er.doFilter( RequestDispatch er.java: 366) at hudson. security. ChainedServletF ilter$1. doFilter( ChainedServletF ilter.java: 84) at hudson. security. UnwrapSecurityE xceptionFilter. doFilter( UnwrapSecurityE xceptionFilter. java:51) at hudson. security. ChainedServletF ilter$1. doFilter( ChainedServletF ilter.java: 87) at org.acegisecuri ty.ui.Exception TranslationFilt er.doFilter( ExceptionTransl ationFilter. java:166) at hudson. security. ChainedServletF ilter$1. doFilter( ChainedServletF ilter.java: 87) at org.acegisecuri ty.providers. anonymous. AnonymousProces singFilter. doFilter( AnonymousProces singFilter. java:125) at hudson. security. ChainedServletF ilter$1. doFilter( ChainedServletF ilter.java: 87) at org.acegisecuri ty.ui.rememberm e.RememberMePro cessingFilter. doFilter( RememberMeProce ssingFilter. java:142) at hudson. security. ChainedServletF ilter$1. doFilter( ChainedServletF ilter.java: 87) at org.acegisecuri ty.ui.AbstractP rocessingFilter .doFilter( AbstractProcess ingFilter. java:271) at hudson. security. ChainedServletF ilter$1. doFilter( ChainedServletF ilter.java: 87) at org.acegisecuri ty.ui.basicauth .BasicProcessin gFilter. doFilter( BasicProcessing Filter. java:173) at hudson. security. ChainedServletF ilter$1. doFilter( ChainedServletF ilter.java: 87) at jenkins. security. ApiTokenFilter. doFilter( ApiTokenFilter. java:61) at hudson. security. ChainedServletF ilter$1. doFilter( ChainedServletF ilter.java: 87) at org.acegisecuri ty.context. HttpSessionCont extIntegrationF ilter.doFilter( HttpSessionCont extIntegrationF ilter.java: 249) at hudson. security. HttpSessionCont extIntegrationF ilter2. doFilter( HttpSessionCont extIntegrationF ilter2. java:66) at hudson. security. ChainedServletF ilter$1. doFilter( ChainedServletF ilter.java: 87) at hudson. security. ChainedServletF ilter.doFilter( ChainedServletF ilter.java: 76) at hudson. security. HudsonFilter. doFilter( HudsonFilter. java:164) at winstone. FilterConfigura tion.execute( FilterConfigura tion.java: 194) at winstone. RequestDispatch er.doFilter( RequestDispatch er.java: 366) at hudson. util.CharacterE ncodingFilter. doFilter( CharacterEncodi ngFilter. java:81) at winstone. FilterConfigura tion.execute( FilterConfigura tion.java: 194) at winstone. RequestDispatch er.doFilter( RequestDispatch er.java: 366) at winstone. RequestDispatch er.forward( RequestDispatch er.java: 331) at winstone. RequestHandlerT hread.processRe quest(RequestHa ndlerThread. java:245) at winstone. RequestHandlerT hread.run( RequestHandlerT hread.java: 148) at java.lang. Thread. run(Thread. java:636)