Hi,

I am trying to use Jclouds to access an openstack swift container using the
application credentials. Is that supported in 2.5.0 version? Below is the
code sample I used and the error message I got. I can a similar question in
StackOverflow[1] as well

[1]
https://stackoverflow.com/questions/62950726/apache-jclouds-can-we-use-authentication-keystone-v3-with-application-credenti

Thanks
Dimuthu

String provider = "openstack-swift";
        String key = "key";
        String secret = "secret";

        Properties overrides = new Properties();
        overrides.put(KeystoneProperties.KEYSTONE_VERSION, "3");
        overrides.put(KeystoneProperties.CREDENTIAL_TYPE,
                CredentialTypes.API_ACCESS_KEY_CREDENTIALS);

        SwiftApi swiftApi = ContextBuilder.newBuilder(provider)
                .endpoint("https://xxxxx:5000/v3/";)
                .credentials(key, secret)
                .overrides(overrides)
                .buildApi(SwiftApi.class);

        ContainerApi containerApi = swiftApi.getContainerApi("General");
        FluentIterable<Container> containers = containerApi.list();
        for (Container c : containers) {

            System.out.println(c.getName());
        }



Exception in thread "main" java.lang.IllegalStateException: Optional.get()
cannot be called on an absent value
at com.google.common.base.Absent.get(Absent.java:43)
at
org.jclouds.rest.internal.RestAnnotationProcessor.apply(RestAnnotationProcessor.java:227)
at
org.jclouds.rest.internal.RestAnnotationProcessor.apply(RestAnnotationProcessor.java:137)
at
org.jclouds.rest.internal.InvokeHttpMethod.toCommand(InvokeHttpMethod.java:189)
at
org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:85)
at
org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:74)
at
org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:45)
at
org.jclouds.rest.internal.DelegatesToInvocationFunction.handle(DelegatesToInvocationFunction.java:156)
at
org.jclouds.rest.internal.DelegatesToInvocationFunction.invoke(DelegatesToInvocationFunction.java:123)
at com.sun.proxy.$Proxy61.authenticateAccessKey(Unknown Source)
at
org.jclouds.openstack.keystone.auth.functions.AuthenticateApiAccessKeyCredentials.authenticate(AuthenticateApiAccessKeyCredentials.java:48)
at
org.jclouds.openstack.keystone.auth.functions.BaseAuthenticator.apply(BaseAuthenticator.java:99)
at
org.jclouds.openstack.keystone.auth.functions.BaseAuthenticator.apply(BaseAuthenticator.java:40)
at
com.google.common.cache.CacheLoader$FunctionToCacheLoader.load(CacheLoader.java:165)
at
com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3529)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2278)
at
com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2155)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2045)
at com.google.common.cache.LocalCache.get(LocalCache.java:3953)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3976)
at
com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4960)
at
com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4966)
at
org.jclouds.openstack.keystone.auth.config.AuthenticationModule$2.get(AuthenticationModule.java:138)
at
org.jclouds.openstack.keystone.auth.config.AuthenticationModule$2.get(AuthenticationModule.java:135)
at
org.jclouds.openstack.keystone.v3.catalog.V3ServiceCatalog.get(V3ServiceCatalog.java:50)
at
org.jclouds.openstack.keystone.v3.catalog.V3ServiceCatalog.get(V3ServiceCatalog.java:35)
at
org.jclouds.openstack.keystone.catalog.suppliers.LocationIdToURIFromServiceEndpointsForTypeAndVersion.get(LocationIdToURIFromServiceEndpointsForTypeAndVersion.java:76)
at
org.jclouds.openstack.keystone.catalog.suppliers.LocationIdToURIFromServiceEndpointsForTypeAndVersion.get(LocationIdToURIFromServiceEndpointsForTypeAndVersion.java:46)
at
org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier$SetAndThrowAuthorizationExceptionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:75)
at
org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier$SetAndThrowAuthorizationExceptionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:57)
at
com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3529)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2278)
at
com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2155)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2045)
at com.google.common.cache.LocalCache.get(LocalCache.java:3953)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3976)
at
com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4960)
at
org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.get(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:150)
at
org.jclouds.location.functions.RegionToEndpoint.apply(RegionToEndpoint.java:43)
at
org.jclouds.location.functions.RegionToEndpoint.apply(RegionToEndpoint.java:32)
at
org.jclouds.rest.internal.RestAnnotationProcessor.getEndpointInParametersOrNull(RestAnnotationProcessor.java:528)
at
org.jclouds.rest.internal.RestAnnotationProcessor.getEndpointFor(RestAnnotationProcessor.java:551)
at
org.jclouds.rest.internal.RestAnnotationProcessor.apply(RestAnnotationProcessor.java:207)
at
org.jclouds.rest.internal.RestAnnotationProcessor.apply(RestAnnotationProcessor.java:137)
at
org.jclouds.rest.internal.InvokeHttpMethod.toCommand(InvokeHttpMethod.java:189)
at
org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:85)
at
org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:74)
at
org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:45)
at
org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:117)
at
com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:86)
at com.sun.proxy.$Proxy67.list(Unknown Source)
at jclouds.JCloudsDownload.main(JCloudsDownload.java:35)

Reply via email to