You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@jclouds.apache.org by Joshua Forest <jf...@foresj.net> on 2017/05/23 22:19:04 UTC

Problem spinning up instances on GCE with custom subnets

I need to be able to specify the subnetwork, is this possible in jclouds?
I am using the jclouds-plugin on jenkins.  Fritz Effert (the maintainer of
that plugin) said he'd be watching the list and would respond if he saw
something come through, so here it is!

May 19, 2017 6:57:46 PM jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate get
> INFO: Provisioning new jclouds node
> May 19, 2017 6:57:46 PM jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate get
> INFO: Setting image id to https://www.googleapis.com/compute/v1/projects/<project_name>/global/images/<image_name>May 19, 2017 6:57:46 PM jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate get
> INFO: Setting hardware Id to https://www.googleapis.com/compute/v1/projects/<project_name>/zones/europe-west1-c/machineTypes/n1-standard-1May 19, 2017 6:57:46 PM jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate get
> INFO: Setting location Id to europe-west1-c
> May 19, 2017 6:57:46 PM org.jclouds.logging.jdk.JDKLogger logInfo
> INFO: >> searching params({imageId=https://www.googleapis.com/compute/v1/projects/<project_name>/global/images/<image_name>, locationId=europe-west1-c, hardwareId=https://www.googleapis.com/compute/v1/projects/<project_name>/zones/europe-west1-c/machineTypes/n1-standard-1})May 19, 2017 6:57:49 PM org.jclouds.logging.jdk.JDKLogger logInfo
> INFO: << matched image(https://www.googleapis.com/compute/v1/projects/<project_name>/global/images/<image_name>) hardware(https://www.googleapis.com/compute/v1/projects/<project_name>/zones/europe-west1-c/machineTypes/n1-standard-1) location(europe-west1-c)May 19, 2017 6:57:49 PM jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate get
> INFO: Setting networks to support
> May 19, 2017 6:57:49 PM jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate get
> INFO: Init script without private admin key. Falling back to jenkins user credentials
> May 19, 2017 6:57:49 PM org.jclouds.logging.jdk.JDKLogger logInfo
> INFO: >> running 1 node group(jenkins-buildbox) location(europe-west1-c) image(https://www.googleapis.com/compute/v1/projects/<project_name>/global/images/<image_name>) hardwareProfile(https://www.googleapis.com/compute/v1/projects/<project_name>/zones/europe-west1-c/machineTypes/n1-standard-1) options({loginUser=admin, loginPrivateKeyPresent=true, scriptPresent=true, userMetadata={Name=jenkins-buildbox}, networks=[support]})May 19, 2017 6:57:50 PM org.jclouds.logging.jdk.JDKLogger logInfo
> INFO: >> adding node location(europe-west1-c) name(jenkins-buildbox-143) image(6874878162127463719) hardware(3001)
> May 19, 2017 6:57:50 PM org.jclouds.logging.jdk.JDKLogger logError
> SEVERE: createNodesInGroup(jenkins-buildbox), completed: 0/1, errors: 1, rate: 586ms/op
> java.util.concurrent.ExecutionException: org.jclouds.http.HttpResponseException: command: POST https://www.googleapis.com/compute/v1/projects/<project_name>/zones/europe-west1-c/instances HTTP/1.1 failed with response: HTTP/1.1 400 Bad Request; content: [{"error": {"errors": [
> {"domain": "global","reason": "invalid","message": "Invalid value for field 'resource.networkInterfaces[0]': ''. Subnetwork should be specified for custom subnetmode network"
> }
> ],"code": 400,"message": "Invalid value for field 'resource.networkInterfaces[0]': ''. Subnetwork should be specified for custom subnetmode network"
> }
> }
> ]
> at shaded.com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:299)
> at shaded.com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:286)
> at shaded.com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116)
> at org.jclouds.concurrent.FutureIterables$1.run(FutureIterables.java:123)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: org.jclouds.http.HttpResponseException: command: POST https://www.googleapis.com/compute/v1/projects/<project_name>/zones/europe-west1-c/instances HTTP/1.1 failed with response: HTTP/1.1 400 Bad Request; content: [{"error": {"errors": [
> {"domain": "global","reason": "invalid","message": "Invalid value for field 'resource.networkInterfaces[0]': ''. Subnetwork should be specified for custom subnetmode network"
> }
> ],"code": 400,"message": "Invalid value for field 'resource.networkInterfaces[0]': ''. Subnetwork should be specified for custom subnetmode network"
> }
> }
> ]
> at org.jclouds.googlecomputeengine.handlers.GoogleComputeEngineErrorHandler.handleError(GoogleComputeEngineErrorHandler.java:37)
> at org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:65)
> at org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:140)
> at org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:109)
> at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:90)
> at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:73)
> at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:44)
> at org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:117)
> at shaded.com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:87)
> at com.sun.proxy.$Proxy145.create(Unknown Source)
> at org.jclouds.googlecomputeengine.compute.GoogleComputeEngineServiceAdapter.createNodeWithGroupEncodedIntoName(GoogleComputeEngineServiceAdapter.java:160)
> at org.jclouds.compute.strategy.impl.AdaptingComputeServiceStrategies.createNodeWithGroupEncodedIntoName(AdaptingComputeServiceStrategies.java:196)
> at org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet$AddNode.call(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:81)
> at org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet$AddNode.call(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:64)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:745)
> at java.lang.Thread.getStackTrace(Thread.java:1589)
> at org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet.createNodeInGroupWithNameAndTemplate(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:169)
> at org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet.execute(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:124)
> at org.jclouds.googlecomputeengine.compute.strategy.CreateNodesWithGroupEncodedIntoNameThenAddToSet.execute(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:130)
> at org.jclouds.compute.internal.BaseComputeService.createNodesInGroup(BaseComputeService.java:217)
> at jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate.get(JCloudsSlaveTemplate.java:595)
> at jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate.provisionSlave(JCloudsSlaveTemplate.java:339)
> at jenkins.plugins.jclouds.compute.JCloudsCloud.doProvisionFromTemplate(JCloudsCloud.java:439)
> at jenkins.plugins.jclouds.compute.JCloudsCloud.doProvision(JCloudsCloud.java:468)
> at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:599)
> at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:343)
> at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184)
> at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117)
> at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:129)
> at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
> at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
> at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
> at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248)
> at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
> at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
> at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
> at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
> at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
> at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
> at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
> at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)
> at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:126)
> at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
> at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:80)
> at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
> 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 jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
> 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 jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
> 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:67)
> at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
> at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
> at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
> at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
> at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
> at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
> at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
> at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
> at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
> at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
> at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
> at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
> at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553)
> at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
> at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
> at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
> at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
> at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
> at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
> at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
> at org.eclipse.jetty.server.Server.handle(Server.java:499)
> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
> at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
> at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
> at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
> ... 3 more
>
>
You can see that it's connecting, but failing because the subnetwork is not
defined properly.  I think it's attempting to use the default subnetwork,
but that doesn't exist in the network I created.  Only the 2 subnetworks I
created exist.

Please let me know if you need more information, or not

 Thanks in advance, Please see https://issues.jenkins-ci.
org/browse/JENKINS-44292 for more information, and my full set of images
etc.

- Joshua C. Forest

Re: Problem spinning up instances on GCE with custom subnets

Posted by Ignasi Barrera <na...@apache.org>.
I'll be working on completing that PR and fixing this issue this week.

On 24 May 2017 at 09:23, Tomasz Wojtun <to...@stepstone.com> wrote:
> There is a pull request https://github.com/jclouds/jclouds/pull/1006 with the functionality but it needs some tweaks.
>
> BR,
> Tomek
>
> On 24/05/2017, 08:42, "Fritz Elfert" <fr...@fritz-elfert.de> wrote:
>
>     FYI: In the meantime, Ignasi mentioned to me:
>     There is already https://issues.apache.org/jira/browse/JCLOUDS-1300
>     which also covers the same problem.
>
>     -Fritz
>
>     On 24.05.2017 00:19, Joshua Forest wrote:
>     > I need to be able to specify the subnetwork, is this possible in
>     > jclouds?  I am using the jclouds-plugin on jenkins.  Fritz Effert (the
>     > maintainer of that plugin) said he'd be watching the list and would
>     > respond if he saw something come through, so here it is!
>     >
>     >     May 19, 2017 6:57:46 PM jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate get
>     >     INFO: Provisioning new jclouds node
>     >     May 19, 2017 6:57:46 PM jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate get
>     >     INFO: Setting image id to https://www.googleapis.com/compute/v1/projects/
>     >     <http://www.googleapis.com/compute/v1/projects/><project_name>/global/images/<image_name>
>     >     May 19, 2017 6:57:46 PM jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate get
>     >     INFO: Setting hardware Id to https://www.googleapis.com/compute/v1/projects/
>     >     <http://www.googleapis.com/compute/v1/projects/><project_name>/zones/europe-west1-c/machineTypes/n1-standard-1
>     >     May 19, 2017 6:57:46 PM jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate get
>     >     INFO: Setting location Id to europe-west1-c
>     >     May 19, 2017 6:57:46 PM org.jclouds.logging.jdk.JDKLogger logInfo
>     >     INFO: >> searching params({imageId=https://www.googleapis.com/compute/v1/projects/
>     >     <http://www.googleapis.com/compute/v1/projects/><project_name>/global/images/<image_name>,
>     >     locationId=europe-west1-c,
>     >     hardwareId=https://www.googleapis.com/compute/v1/projects/
>     >     <https://www.googleapis.com/compute/v1/projects/><project_name>/zones/europe-west1-c/machineTypes/n1-standard-1})
>     >     May 19, 2017 6:57:49 PM org.jclouds.logging.jdk.JDKLogger logInfo
>     >     INFO: << matched image(https://www.googleapis.com/compute/v1/projects/
>     >     <http://www.googleapis.com/compute/v1/projects/><project_name>/global/images/<image_name>)
>     >     hardware(https://www.googleapis.com/compute/v1/projects/
>     >     <https://www.googleapis.com/compute/v1/projects/><project_name>/zones/europe-west1-c/machineTypes/n1-standard-1)
>     >     location(europe-west1-c) May 19, 2017 6:57:49 PM jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate get
>     >     INFO: Setting networks to support
>     >     May 19, 2017 6:57:49 PM jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate get
>     >     INFO: Init script without private admin key. Falling back to jenkins user credentials
>     >     May 19, 2017 6:57:49 PM org.jclouds.logging.jdk.JDKLogger logInfo
>     >     INFO: >> running 1 node group(jenkins-buildbox) location(europe-west1-c) image(https://www.googleapis.com/compute/v1/projects/
>     >     <http://www.googleapis.com/compute/v1/projects/><project_name>/global/images/<image_name>)
>     >     hardwareProfile(https://www.googleapis.com/compute/v1/projects/
>     >     <https://www.googleapis.com/compute/v1/projects/><project_name>/zones/europe-west1-c/machineTypes/n1-standard-1)
>     >     options({loginUser=admin, loginPrivateKeyPresent=true,
>     >     scriptPresent=true, userMetadata={Name=jenkins-buildbox},
>     >     networks=[support]}) May 19, 2017 6:57:50 PM org.jclouds.logging.jdk.JDKLogger logInfo
>     >     INFO: >> adding node location(europe-west1-c) name(jenkins-buildbox-143) image(6874878162127463719) hardware(3001)
>     >     May 19, 2017 6:57:50 PM org.jclouds.logging.jdk.JDKLogger logError
>     >     SEVERE: createNodesInGroup(jenkins-buildbox), completed: 0/1, errors: 1, rate: 586ms/op
>     >     java.util.concurrent.ExecutionException: org.jclouds.http.HttpResponseException: command: POST https://www.googleapis.com/compute/v1/projects/
>     >     <http://www.googleapis.com/compute/v1/projects/><project_name>/zones/europe-west1-c/instances
>     >     HTTP/1.1 failed with response: HTTP/1.1 400 Bad Request; content: [{
>     >     "error": {
>     >     "errors": [
>     >     {
>     >     "domain": "global",
>     >     "reason": "invalid",
>     >     "message": "Invalid value for field 'resource.networkInterfaces[0]': ''.
>     >     Subnetwork should be specified for custom subnetmode network"
>     >     }
>     >     ],
>     >     "code": 400,
>     >     "message": "Invalid value for field 'resource.networkInterfaces[0]': ''.
>     >     Subnetwork should be specified for custom subnetmode network"
>     >     }
>     >     }
>     >     ]
>     >     at shaded.com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:299)
>     >     at shaded.com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:286)
>     >     at shaded.com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116)
>     >     at org.jclouds.concurrent.FutureIterables$1.run(FutureIterables.java:123)
>     >     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>     >     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>     >     at java.lang.Thread.run(Thread.java:745)
>     >     Caused by: org.jclouds.http.HttpResponseException: command: POST https://www.googleapis.com/compute/v1/projects/
>     >     <http://www.googleapis.com/compute/v1/projects/><project_name>/zones/europe-west1-c/instances
>     >     HTTP/1.1 failed with response: HTTP/1.1 400 Bad Request; content: [{
>     >     "error": {
>     >     "errors": [
>     >     {
>     >     "domain": "global",
>     >     "reason": "invalid",
>     >     "message": "Invalid value for field 'resource.networkInterfaces[0]': ''.
>     >     Subnetwork should be specified for custom subnetmode network"
>     >     }
>     >     ],
>     >     "code": 400,
>     >     "message": "Invalid value for field 'resource.networkInterfaces[0]': ''.
>     >     Subnetwork should be specified for custom subnetmode network"
>     >     }
>     >     }
>     >     ]
>     >     at org.jclouds.googlecomputeengine.handlers.GoogleComputeEngineErrorHandler.handleError(GoogleComputeEngineErrorHandler.java:37)
>     >     at org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:65)
>     >     at org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:140)
>     >     at org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:109)
>     >     at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:90)
>     >     at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:73)
>     >     at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:44)
>     >     at org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:117)
>     >     at shaded.com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:87)
>     >     at com.sun.proxy.$Proxy145.create(Unknown Source)
>     >     at org.jclouds.googlecomputeengine.compute.GoogleComputeEngineServiceAdapter.createNodeWithGroupEncodedIntoName(GoogleComputeEngineServiceAdapter.java:160)
>     >     at org.jclouds.compute.strategy.impl.AdaptingComputeServiceStrategies.createNodeWithGroupEncodedIntoName(AdaptingComputeServiceStrategies.java:196)
>     >     at org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet$AddNode.call(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:81)
>     >     at org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet$AddNode.call(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:64)
>     >     at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>     >     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>     >     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>     >     at java.lang.Thread.run(Thread.java:745)
>     >     at java.lang.Thread.getStackTrace(Thread.java:1589)
>     >     at org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet.createNodeInGroupWithNameAndTemplate(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:169)
>     >     at org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet.execute(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:124)
>     >     at org.jclouds.googlecomputeengine.compute.strategy.CreateNodesWithGroupEncodedIntoNameThenAddToSet.execute(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:130)
>     >     at org.jclouds.compute.internal.BaseComputeService.createNodesInGroup(BaseComputeService.java:217)
>     >     at jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate.get(JCloudsSlaveTemplate.java:595)
>     >     at jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate.provisionSlave(JCloudsSlaveTemplate.java:339)
>     >     at jenkins.plugins.jclouds.compute.JCloudsCloud.doProvisionFromTemplate(JCloudsCloud.java:439)
>     >     at jenkins.plugins.jclouds.compute.JCloudsCloud.doProvision(JCloudsCloud.java:468)
>     >     at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:599)
>     >     at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:343)
>     >     at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184)
>     >     at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117)
>     >     at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:129)
>     >     at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
>     >     at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
>     >     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
>     >     at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248)
>     >     at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
>     >     at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
>     >     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
>     >     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
>     >     at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
>     >     at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
>     >     at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
>     >     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
>     >     at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)
>     >     at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:126)
>     >     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
>     >     at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:80)
>     >     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
>     >     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 jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
>     >     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 jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
>     >     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:67)
>     >     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
>     >     at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
>     >     at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
>     >     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
>     >     at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
>     >     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
>     >     at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
>     >     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
>     >     at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
>     >     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
>     >     at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
>     >     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
>     >     at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553)
>     >     at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
>     >     at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
>     >     at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
>     >     at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
>     >     at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
>     >     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
>     >     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
>     >     at org.eclipse.jetty.server.Server.handle(Server.java:499)
>     >     at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
>     >     at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
>     >     at org.eclipse.jetty.io <http://org.eclipse.jetty.io>.AbstractConnection$2.run(AbstractConnection.java:544)
>     >     at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
>     >     ... 3 more
>     >
>     >
>     > You can see that it's connecting, but failing because the subnetwork is
>     > not defined properly.  I think it's attempting to use the default
>     > subnetwork, but that doesn't exist in the network I created.  Only the 2
>     > subnetworks I created exist.
>     >
>     > Please let me know if you need more information, or not
>     >
>     >  Thanks in advance, Please
>     > see https://issues.jenkins-ci.org/browse/JENKINS-44292
>     > <https://issues.jenkins-ci.org/browse/JENKINS-44292> for more
>     > information, and my full set of images etc.
>     >
>     > - Joshua C. Forest
>
>
>
>

Re: Problem spinning up instances on GCE with custom subnets

Posted by Tomasz Wojtun <to...@stepstone.com>.
There is a pull request https://github.com/jclouds/jclouds/pull/1006 with the functionality but it needs some tweaks. 

BR, 
Tomek 

On 24/05/2017, 08:42, "Fritz Elfert" <fr...@fritz-elfert.de> wrote:

    FYI: In the meantime, Ignasi mentioned to me:
    There is already https://issues.apache.org/jira/browse/JCLOUDS-1300
    which also covers the same problem.
    
    -Fritz
    
    On 24.05.2017 00:19, Joshua Forest wrote:
    > I need to be able to specify the subnetwork, is this possible in
    > jclouds?  I am using the jclouds-plugin on jenkins.  Fritz Effert (the
    > maintainer of that plugin) said he'd be watching the list and would
    > respond if he saw something come through, so here it is! 
    > 
    >     May 19, 2017 6:57:46 PM jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate get
    >     INFO: Provisioning new jclouds node
    >     May 19, 2017 6:57:46 PM jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate get
    >     INFO: Setting image id to https://www.googleapis.com/compute/v1/projects/
    >     <http://www.googleapis.com/compute/v1/projects/><project_name>/global/images/<image_name>
    >     May 19, 2017 6:57:46 PM jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate get
    >     INFO: Setting hardware Id to https://www.googleapis.com/compute/v1/projects/
    >     <http://www.googleapis.com/compute/v1/projects/><project_name>/zones/europe-west1-c/machineTypes/n1-standard-1
    >     May 19, 2017 6:57:46 PM jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate get
    >     INFO: Setting location Id to europe-west1-c
    >     May 19, 2017 6:57:46 PM org.jclouds.logging.jdk.JDKLogger logInfo
    >     INFO: >> searching params({imageId=https://www.googleapis.com/compute/v1/projects/
    >     <http://www.googleapis.com/compute/v1/projects/><project_name>/global/images/<image_name>,
    >     locationId=europe-west1-c,
    >     hardwareId=https://www.googleapis.com/compute/v1/projects/
    >     <https://www.googleapis.com/compute/v1/projects/><project_name>/zones/europe-west1-c/machineTypes/n1-standard-1})
    >     May 19, 2017 6:57:49 PM org.jclouds.logging.jdk.JDKLogger logInfo
    >     INFO: << matched image(https://www.googleapis.com/compute/v1/projects/
    >     <http://www.googleapis.com/compute/v1/projects/><project_name>/global/images/<image_name>)
    >     hardware(https://www.googleapis.com/compute/v1/projects/
    >     <https://www.googleapis.com/compute/v1/projects/><project_name>/zones/europe-west1-c/machineTypes/n1-standard-1)
    >     location(europe-west1-c) May 19, 2017 6:57:49 PM jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate get
    >     INFO: Setting networks to support
    >     May 19, 2017 6:57:49 PM jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate get
    >     INFO: Init script without private admin key. Falling back to jenkins user credentials
    >     May 19, 2017 6:57:49 PM org.jclouds.logging.jdk.JDKLogger logInfo
    >     INFO: >> running 1 node group(jenkins-buildbox) location(europe-west1-c) image(https://www.googleapis.com/compute/v1/projects/
    >     <http://www.googleapis.com/compute/v1/projects/><project_name>/global/images/<image_name>)
    >     hardwareProfile(https://www.googleapis.com/compute/v1/projects/
    >     <https://www.googleapis.com/compute/v1/projects/><project_name>/zones/europe-west1-c/machineTypes/n1-standard-1)
    >     options({loginUser=admin, loginPrivateKeyPresent=true,
    >     scriptPresent=true, userMetadata={Name=jenkins-buildbox},
    >     networks=[support]}) May 19, 2017 6:57:50 PM org.jclouds.logging.jdk.JDKLogger logInfo
    >     INFO: >> adding node location(europe-west1-c) name(jenkins-buildbox-143) image(6874878162127463719) hardware(3001)
    >     May 19, 2017 6:57:50 PM org.jclouds.logging.jdk.JDKLogger logError
    >     SEVERE: createNodesInGroup(jenkins-buildbox), completed: 0/1, errors: 1, rate: 586ms/op
    >     java.util.concurrent.ExecutionException: org.jclouds.http.HttpResponseException: command: POST https://www.googleapis.com/compute/v1/projects/
    >     <http://www.googleapis.com/compute/v1/projects/><project_name>/zones/europe-west1-c/instances
    >     HTTP/1.1 failed with response: HTTP/1.1 400 Bad Request; content: [{
    >     "error": {
    >     "errors": [
    >     {
    >     "domain": "global",
    >     "reason": "invalid",
    >     "message": "Invalid value for field 'resource.networkInterfaces[0]': ''.
    >     Subnetwork should be specified for custom subnetmode network"
    >     }
    >     ],
    >     "code": 400,
    >     "message": "Invalid value for field 'resource.networkInterfaces[0]': ''.
    >     Subnetwork should be specified for custom subnetmode network"
    >     }
    >     }
    >     ]
    >     at shaded.com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:299)
    >     at shaded.com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:286)
    >     at shaded.com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116)
    >     at org.jclouds.concurrent.FutureIterables$1.run(FutureIterables.java:123)
    >     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    >     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    >     at java.lang.Thread.run(Thread.java:745)
    >     Caused by: org.jclouds.http.HttpResponseException: command: POST https://www.googleapis.com/compute/v1/projects/
    >     <http://www.googleapis.com/compute/v1/projects/><project_name>/zones/europe-west1-c/instances
    >     HTTP/1.1 failed with response: HTTP/1.1 400 Bad Request; content: [{
    >     "error": {
    >     "errors": [
    >     {
    >     "domain": "global",
    >     "reason": "invalid",
    >     "message": "Invalid value for field 'resource.networkInterfaces[0]': ''.
    >     Subnetwork should be specified for custom subnetmode network"
    >     }
    >     ],
    >     "code": 400,
    >     "message": "Invalid value for field 'resource.networkInterfaces[0]': ''.
    >     Subnetwork should be specified for custom subnetmode network"
    >     }
    >     }
    >     ]
    >     at org.jclouds.googlecomputeengine.handlers.GoogleComputeEngineErrorHandler.handleError(GoogleComputeEngineErrorHandler.java:37)
    >     at org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:65)
    >     at org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:140)
    >     at org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:109)
    >     at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:90)
    >     at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:73)
    >     at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:44)
    >     at org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:117)
    >     at shaded.com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:87)
    >     at com.sun.proxy.$Proxy145.create(Unknown Source)
    >     at org.jclouds.googlecomputeengine.compute.GoogleComputeEngineServiceAdapter.createNodeWithGroupEncodedIntoName(GoogleComputeEngineServiceAdapter.java:160)
    >     at org.jclouds.compute.strategy.impl.AdaptingComputeServiceStrategies.createNodeWithGroupEncodedIntoName(AdaptingComputeServiceStrategies.java:196)
    >     at org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet$AddNode.call(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:81)
    >     at org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet$AddNode.call(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:64)
    >     at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    >     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    >     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    >     at java.lang.Thread.run(Thread.java:745)
    >     at java.lang.Thread.getStackTrace(Thread.java:1589)
    >     at org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet.createNodeInGroupWithNameAndTemplate(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:169)
    >     at org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet.execute(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:124)
    >     at org.jclouds.googlecomputeengine.compute.strategy.CreateNodesWithGroupEncodedIntoNameThenAddToSet.execute(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:130)
    >     at org.jclouds.compute.internal.BaseComputeService.createNodesInGroup(BaseComputeService.java:217)
    >     at jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate.get(JCloudsSlaveTemplate.java:595)
    >     at jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate.provisionSlave(JCloudsSlaveTemplate.java:339)
    >     at jenkins.plugins.jclouds.compute.JCloudsCloud.doProvisionFromTemplate(JCloudsCloud.java:439)
    >     at jenkins.plugins.jclouds.compute.JCloudsCloud.doProvision(JCloudsCloud.java:468)
    >     at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:599)
    >     at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:343)
    >     at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184)
    >     at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117)
    >     at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:129)
    >     at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
    >     at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
    >     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
    >     at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248)
    >     at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
    >     at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
    >     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
    >     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
    >     at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
    >     at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    >     at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
    >     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
    >     at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)
    >     at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:126)
    >     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
    >     at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:80)
    >     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
    >     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 jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
    >     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 jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
    >     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:67)
    >     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    >     at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
    >     at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
    >     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
    >     at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
    >     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
    >     at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
    >     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
    >     at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
    >     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
    >     at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
    >     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
    >     at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553)
    >     at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
    >     at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
    >     at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
    >     at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
    >     at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
    >     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    >     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
    >     at org.eclipse.jetty.server.Server.handle(Server.java:499)
    >     at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
    >     at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
    >     at org.eclipse.jetty.io <http://org.eclipse.jetty.io>.AbstractConnection$2.run(AbstractConnection.java:544)
    >     at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
    >     ... 3 more
    > 
    > 
    > You can see that it's connecting, but failing because the subnetwork is
    > not defined properly.  I think it's attempting to use the default
    > subnetwork, but that doesn't exist in the network I created.  Only the 2
    > subnetworks I created exist.  
    > 
    > Please let me know if you need more information, or not
    > 
    >  Thanks in advance, Please
    > see https://issues.jenkins-ci.org/browse/JENKINS-44292
    > <https://issues.jenkins-ci.org/browse/JENKINS-44292> for more
    > information, and my full set of images etc.
    > 
    > - Joshua C. Forest
    
    
    


Re: Problem spinning up instances on GCE with custom subnets

Posted by Fritz Elfert <fr...@fritz-elfert.de>.
FYI: In the meantime, Ignasi mentioned to me:
There is already https://issues.apache.org/jira/browse/JCLOUDS-1300
which also covers the same problem.

-Fritz

On 24.05.2017 00:19, Joshua Forest wrote:
> I need to be able to specify the subnetwork, is this possible in
> jclouds?  I am using the jclouds-plugin on jenkins.  Fritz Effert (the
> maintainer of that plugin) said he'd be watching the list and would
> respond if he saw something come through, so here it is! 
> 
>     May 19, 2017 6:57:46 PM jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate get
>     INFO: Provisioning new jclouds node
>     May 19, 2017 6:57:46 PM jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate get
>     INFO: Setting image id to https://www.googleapis.com/compute/v1/projects/
>     <http://www.googleapis.com/compute/v1/projects/><project_name>/global/images/<image_name>
>     May 19, 2017 6:57:46 PM jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate get
>     INFO: Setting hardware Id to https://www.googleapis.com/compute/v1/projects/
>     <http://www.googleapis.com/compute/v1/projects/><project_name>/zones/europe-west1-c/machineTypes/n1-standard-1
>     May 19, 2017 6:57:46 PM jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate get
>     INFO: Setting location Id to europe-west1-c
>     May 19, 2017 6:57:46 PM org.jclouds.logging.jdk.JDKLogger logInfo
>     INFO: >> searching params({imageId=https://www.googleapis.com/compute/v1/projects/
>     <http://www.googleapis.com/compute/v1/projects/><project_name>/global/images/<image_name>,
>     locationId=europe-west1-c,
>     hardwareId=https://www.googleapis.com/compute/v1/projects/
>     <https://www.googleapis.com/compute/v1/projects/><project_name>/zones/europe-west1-c/machineTypes/n1-standard-1})
>     May 19, 2017 6:57:49 PM org.jclouds.logging.jdk.JDKLogger logInfo
>     INFO: << matched image(https://www.googleapis.com/compute/v1/projects/
>     <http://www.googleapis.com/compute/v1/projects/><project_name>/global/images/<image_name>)
>     hardware(https://www.googleapis.com/compute/v1/projects/
>     <https://www.googleapis.com/compute/v1/projects/><project_name>/zones/europe-west1-c/machineTypes/n1-standard-1)
>     location(europe-west1-c) May 19, 2017 6:57:49 PM jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate get
>     INFO: Setting networks to support
>     May 19, 2017 6:57:49 PM jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate get
>     INFO: Init script without private admin key. Falling back to jenkins user credentials
>     May 19, 2017 6:57:49 PM org.jclouds.logging.jdk.JDKLogger logInfo
>     INFO: >> running 1 node group(jenkins-buildbox) location(europe-west1-c) image(https://www.googleapis.com/compute/v1/projects/
>     <http://www.googleapis.com/compute/v1/projects/><project_name>/global/images/<image_name>)
>     hardwareProfile(https://www.googleapis.com/compute/v1/projects/
>     <https://www.googleapis.com/compute/v1/projects/><project_name>/zones/europe-west1-c/machineTypes/n1-standard-1)
>     options({loginUser=admin, loginPrivateKeyPresent=true,
>     scriptPresent=true, userMetadata={Name=jenkins-buildbox},
>     networks=[support]}) May 19, 2017 6:57:50 PM org.jclouds.logging.jdk.JDKLogger logInfo
>     INFO: >> adding node location(europe-west1-c) name(jenkins-buildbox-143) image(6874878162127463719) hardware(3001)
>     May 19, 2017 6:57:50 PM org.jclouds.logging.jdk.JDKLogger logError
>     SEVERE: createNodesInGroup(jenkins-buildbox), completed: 0/1, errors: 1, rate: 586ms/op
>     java.util.concurrent.ExecutionException: org.jclouds.http.HttpResponseException: command: POST https://www.googleapis.com/compute/v1/projects/
>     <http://www.googleapis.com/compute/v1/projects/><project_name>/zones/europe-west1-c/instances
>     HTTP/1.1 failed with response: HTTP/1.1 400 Bad Request; content: [{
>     "error": {
>     "errors": [
>     {
>     "domain": "global",
>     "reason": "invalid",
>     "message": "Invalid value for field 'resource.networkInterfaces[0]': ''.
>     Subnetwork should be specified for custom subnetmode network"
>     }
>     ],
>     "code": 400,
>     "message": "Invalid value for field 'resource.networkInterfaces[0]': ''.
>     Subnetwork should be specified for custom subnetmode network"
>     }
>     }
>     ]
>     at shaded.com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:299)
>     at shaded.com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:286)
>     at shaded.com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116)
>     at org.jclouds.concurrent.FutureIterables$1.run(FutureIterables.java:123)
>     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>     at java.lang.Thread.run(Thread.java:745)
>     Caused by: org.jclouds.http.HttpResponseException: command: POST https://www.googleapis.com/compute/v1/projects/
>     <http://www.googleapis.com/compute/v1/projects/><project_name>/zones/europe-west1-c/instances
>     HTTP/1.1 failed with response: HTTP/1.1 400 Bad Request; content: [{
>     "error": {
>     "errors": [
>     {
>     "domain": "global",
>     "reason": "invalid",
>     "message": "Invalid value for field 'resource.networkInterfaces[0]': ''.
>     Subnetwork should be specified for custom subnetmode network"
>     }
>     ],
>     "code": 400,
>     "message": "Invalid value for field 'resource.networkInterfaces[0]': ''.
>     Subnetwork should be specified for custom subnetmode network"
>     }
>     }
>     ]
>     at org.jclouds.googlecomputeengine.handlers.GoogleComputeEngineErrorHandler.handleError(GoogleComputeEngineErrorHandler.java:37)
>     at org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:65)
>     at org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:140)
>     at org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:109)
>     at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:90)
>     at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:73)
>     at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:44)
>     at org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:117)
>     at shaded.com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:87)
>     at com.sun.proxy.$Proxy145.create(Unknown Source)
>     at org.jclouds.googlecomputeengine.compute.GoogleComputeEngineServiceAdapter.createNodeWithGroupEncodedIntoName(GoogleComputeEngineServiceAdapter.java:160)
>     at org.jclouds.compute.strategy.impl.AdaptingComputeServiceStrategies.createNodeWithGroupEncodedIntoName(AdaptingComputeServiceStrategies.java:196)
>     at org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet$AddNode.call(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:81)
>     at org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet$AddNode.call(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:64)
>     at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>     at java.lang.Thread.run(Thread.java:745)
>     at java.lang.Thread.getStackTrace(Thread.java:1589)
>     at org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet.createNodeInGroupWithNameAndTemplate(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:169)
>     at org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet.execute(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:124)
>     at org.jclouds.googlecomputeengine.compute.strategy.CreateNodesWithGroupEncodedIntoNameThenAddToSet.execute(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:130)
>     at org.jclouds.compute.internal.BaseComputeService.createNodesInGroup(BaseComputeService.java:217)
>     at jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate.get(JCloudsSlaveTemplate.java:595)
>     at jenkins.plugins.jclouds.compute.JCloudsSlaveTemplate.provisionSlave(JCloudsSlaveTemplate.java:339)
>     at jenkins.plugins.jclouds.compute.JCloudsCloud.doProvisionFromTemplate(JCloudsCloud.java:439)
>     at jenkins.plugins.jclouds.compute.JCloudsCloud.doProvision(JCloudsCloud.java:468)
>     at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:599)
>     at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:343)
>     at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184)
>     at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117)
>     at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:129)
>     at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
>     at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
>     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
>     at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248)
>     at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
>     at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
>     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
>     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
>     at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
>     at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
>     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
>     at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)
>     at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:126)
>     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
>     at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:80)
>     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
>     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 jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
>     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 jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
>     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:67)
>     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
>     at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
>     at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
>     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
>     at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
>     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
>     at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
>     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
>     at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
>     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
>     at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
>     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
>     at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553)
>     at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
>     at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
>     at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
>     at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
>     at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
>     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
>     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
>     at org.eclipse.jetty.server.Server.handle(Server.java:499)
>     at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
>     at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
>     at org.eclipse.jetty.io <http://org.eclipse.jetty.io>.AbstractConnection$2.run(AbstractConnection.java:544)
>     at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
>     ... 3 more
> 
> 
> You can see that it's connecting, but failing because the subnetwork is
> not defined properly.  I think it's attempting to use the default
> subnetwork, but that doesn't exist in the network I created.  Only the 2
> subnetworks I created exist.  
> 
> Please let me know if you need more information, or not
> 
>  Thanks in advance, Please
> see https://issues.jenkins-ci.org/browse/JENKINS-44292
> <https://issues.jenkins-ci.org/browse/JENKINS-44292> for more
> information, and my full set of images etc.
> 
> - Joshua C. Forest