Hi jclouds devs, Last week, I ran into an issue with the new CloudFiles API and I don't know how to solve it, so I am looking for some help. I am hoping that other community members have some ideas here!
>From what I have found, the new CloudFiles is the *only* aggregate API that needs to support two different OpenStack service types from the service catalog [1]. The jclouds OpenStack Keystone API defines the SERVICE_TYPE property [2] and is set in the defaultProperties() for each of the OpenStack APIs that are available today via the ApiMetadata (for example [3]). The two service types that need to be supported in the CloudFilesApi are "object-storage" and "rax:object-cdn". If I set the service type in the properties to "object-storage", the endpoint for the CloudFilesApi (which extends the SwiftApi) are routed to the endpoint for "object-storage". Great. Now, if I set it to "rax:object-cdn", then all of the calls are routed to the "rax:object-cdn" endpoint. That makes sense, but how can we support multiple types? I have been through the RestAnnotationProcessor tracing each of the calls, and I believe the issue lies in the Keystone suppliers [4] somehow. I wonder if we need the notion of "Service Types" in the Keystone API and register that via the properties. ?? I am going to continue debugging and looking for a solution, but I am blocked on this right now and could use any insight. If anyone has ideas on how to support this, I would be very grateful. Thanks! /jd [1] http://docs.openstack.org/api/openstack-identity-service/2.0/content/POST_authenticate_v2.0_tokens_.html [2] https://github.com/jclouds/jclouds/blob/master/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/config/KeystoneProperties.java#L72 [3] https://github.com/jclouds/jclouds/blob/master/apis/openstack-cinder/src/main/java/org/jclouds/openstack/cinder/v1/CinderApiMetadata.java#L59 [4] https://github.com/jclouds/jclouds/tree/master/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/suppliers