donof43
donof43

Reputation: 41

Openstack swift plugin on Jenkins

I'm setting up a CI/CD server based on Jenkins. For CD purpose, I'd like to publish this build result (An Android APK in my case) to a data server. I choose an OVH server for data storage which is based on Openstack. I use the JCloud Jenkins plugin to connect to it but I failed.

I filled the JClouds Cloud Storage Settings part with Swift as provider name. I set up a test build creating a file and I tried to upload this file to the storage server. I added a Publish artifacts to JClouds Clouds Storage but unfortunately, when I ran the build I got the following error :

Publish artifacts to JClouds Clouds Storage  Using JClouds blobStoreProfile: ProjectName - OVH - Storage
Publish artifacts to JClouds Clouds Storage  container=ContainerName, path=test, file=test.txt
ERROR: Build step failed with exception
java.util.NoSuchElementException: property swift.endpoint not present in properties: [jclouds.user-threads, jclouds.identity, jclouds.max-session-failures, jclouds.max-connection-reuse, jclouds.scheduler-threads, jclouds.credential, jclouds.build-version, jclouds.iso3166-codes, jclouds.blobstore.metaprefix, jclouds.so-timeout, jclouds.max-connections-per-host, jclouds.max-connections-per-context, jclouds.strip-expect-header, jclouds.regions, jclouds.io-worker-threads, jclouds.api, jclouds.api-version, jclouds.payloads.pretty-print, jclouds.connection-timeout, jclouds.provider, jclouds.session-interval]
    at org.jclouds.ContextBuilder.searchPropertiesForProviderScopedProperty(ContextBuilder.java:293)
    at org.jclouds.ContextBuilder.resolveProperties(ContextBuilder.java:412)
    at org.jclouds.ContextBuilder.buildInjector(ContextBuilder.java:316)
    at org.jclouds.ContextBuilder.buildView(ContextBuilder.java:618)
    at org.jclouds.ContextBuilder.buildView(ContextBuilder.java:598)
    at jenkins.plugins.jclouds.blobstore.BlobStoreProfile.ctx(BlobStoreProfile.java:79)
    at jenkins.plugins.jclouds.blobstore.BlobStoreProfile.upload(BlobStoreProfile.java:105)
    at jenkins.plugins.jclouds.blobstore.BlobStorePublisher.perform(BlobStorePublisher.java:159)
    at hudson.tasks.BuildStepMonitor$2.perform(BuildStepMonitor.java:32)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:720)
    at hudson.model.Build$BuildExecution.post2(Build.java:185)
    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:665)
    at hudson.model.Run.execute(Run.java:1745)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:410)
Build step 'Publish artifacts to JClouds Clouds Storage ' marked build as failure
Finished: FAILURE

I didn't find any clear documentation. Where should I set the swift.endpoint (Which should correspond to the authentication URL) ? How should I configure it ?

Thanks for your help !

Upvotes: 1

Views: 587

Answers (1)

Ignasi Barrera
Ignasi Barrera

Reputation: 1476

Looking at the Jenkins UI, it looks like there is no textbox to provide the endpoint, so I'd say right now it only supports providers (not generic api deployments such as the generic Swift one). I'd open a jira issue to the Jenkins plugin, as it seems to be a pretty straightforward thing to fix.

BTW, are you trying to upload it to a local Swift installation, or are you using Rackspace, or other known Swift providers?

Upvotes: 0

Related Questions