jenkinsci / jenkinsci/openstack-cloud-plugin
Do not try to provision if there required fields are not configured
- Dominant language
- Java
- Stars
- 49
- Forks
- 97
- Avg merge
- 13h 23m
- Merged PRs (30d)
- 6
Description
If some of the required fields[1] is not provided (and it might not be trivial to see due to overriding logic), plugin tries to boot and OpenStack failure is provided to the user[2]. That is not really user friendly. Data needs to be checked before sending it to openstack in order to provide messages that are easier to grasp.
[1] TODO
- imageId/bootSource
- hardwareId
- flavourId
- launcherFactory
[2]
```
jenkins.plugins.openstack.compute.JCloudsCloud$ProvisioningFailedException: Openstack failed to provision the slave
at jenkins.plugins.openstack.compute.JCloudsCloud$NodeCallable.call(JCloudsCloud.java:297)
at jenkins.plugins.openstack.compute.JCloudsCloud$NodeCallable.call(JCloudsCloud.java:277)
at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46)
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)
Caused by: jenkins.plugins.openstack.compute.internal.Openstack$ActionFailed: Boot failed
at jenkins.plugins.openstack.compute.internal.Openstack.bootAndWaitActive(Openstack.java:236)
at jenkins.plugins.openstack.compute.JCloudsSlaveTemplate.provision(JCloudsSlaveTemplate.java:256)
at jenkins.plugins.openstack.compute.JCloudsSlaveTemplate.provisionSlave(JCloudsSlaveTemplate.java:179)
at jenkins.plugins.openstack.compute.JCloudsCloud$NodeCallable.call(JCloudsCloud.java:295)
... 6 more
Caused by: ClientResponseException{message=Missing imageRef attribute, status=400, status-code=BAD_REQUEST}
at org.openstack4j.core.transport.HttpExceptionHandler.mapException(HttpExceptionHandler.java:38)
at org.openstack4j.core.transport.HttpExceptionHandler.mapException(HttpExceptionHandler.java:23)
at org.openstack4j.core.transport.HttpEntityHandler.handleLessThan500(HttpEntityHandler.java:100)
at org.openstack4j.core.transport.HttpEntityHandler.handle(HttpEntityHandler.java:46)
at org.openstack4j.connectors.httpclient.HttpResponseImpl.getEntity(HttpResponseImpl.java:69)
at org.openstack4j.openstack.internal.BaseOpenStackService$Invocation.execute(BaseOpenStackService.java:189)
at org.openstack4j.openstack.internal.BaseOpenStackService$Invocation.execute(BaseOpenStackService.java:183)
at org.openstack4j.openstack.compute.internal.ServerServiceImpl.boot(ServerServiceImpl.java:127)
at org.openstack4j.openstack.compute.internal.ServerServiceImpl.bootAndWaitActive(ServerServiceImpl.java:137)
at jenkins.plugins.openstack.compute.internal.Openstack._bootAndWaitActive(Openstack.java:243)
at jenkins.plugins.openstack.compute.internal.Openstack.bootAndWaitActive(Openstack.java:231)
... 9 more
```
Contributor guide
Assessment
This issue has not been assessed yet.