Hi Shawn,<br><br>I discovered in your code:<br><br>1)<br><br>properties.put("identity.endp<blockquote class="gmail_quote">oint.publicURL",<br>
        "http:/<a href="http://testb.REDACTED.com:8080/v2.0" target="_blank">testb.REDACTED.com:8080/v2.0</a>");</blockquote><div><br>here you are using only one slash "http:/". So it's not valid URL.<br>
<br>2) actually "<a href="http://testb.REDACTED.com:8080/v2.0">testb.REDACTED.com:8080/v2.0</a>" is your identity endpoint?<br><br>Keystone usually listen on 5000 or 35357<br><br>At the end of this mail you have a complete log from OpenStack Java SDK talking Swift running on Folsom. Actually it's tested on HPCloud (Diablo) and DevStack (stable/essex) as well.<br>
<br>3) Thanks, you discovered a bug. The code was trying to authenticate with duplicate credentials. It was working but I have fixed! Already pushed on github<br><br>Cheers!<br><br>---- TEST LOGS<br><br>May 30, 2012 11:50:38 PM org.glassfish.jersey.filter.LoggingFilter log<br>
INFO: 1 * LoggingFilter - Request received on thread main<br>1 > POST <a href="http://192.168.1.43:5000/v2.0/tokens">http://192.168.1.43:5000/v2.0/tokens</a><br>1 > Accept: application/json<br>1 > Content-Type: application/json<br>
{"auth":{"tenantName":"admin","passwordCredentials":{"username":"admin","password":"secret0"}}}<br><br>May 30, 2012 11:50:39 PM org.glassfish.jersey.filter.LoggingFilter log<br>
INFO: 2 * LoggingFilter - Response received on thread main<br>2 < 200<br>2 < Vary: X-Auth-Token<br>2 < Date: Wed, 30 May 2012 21:50:39 GMT<br>2 < Content-Length: 2541<br>2 < Content-Type: application/json<br>
2 < Connection: keep-alive<br>{"access": {"token": {"expires": "2012-05-31T21:50:39Z", "id": "cedec9abd4c249479181c2c6d9c0ad85", "tenant": {"enabled": true, "id": "1e9c9a2fe2454950a900202b1e82b54f", "name": "admin", "description": null}}, "serviceCatalog": [{"endpoints": [{"adminURL": "<a href="http://192.168.1.43:8774/v2/1e9c9a2fe2454950a900202b1e82b54f">http://192.168.1.43:8774/v2/1e9c9a2fe2454950a900202b1e82b54f</a>", "region": "RegionOne", "publicURL": "<a href="http://192.168.1.43:8774/v2/1e9c9a2fe2454950a900202b1e82b54f">http://192.168.1.43:8774/v2/1e9c9a2fe2454950a900202b1e82b54f</a>", "internalURL": "<a href="http://192.168.1.43:8774/v2/1e9c9a2fe2454950a900202b1e82b54f">http://192.168.1.43:8774/v2/1e9c9a2fe2454950a900202b1e82b54f</a>"}], "endpoints_links": [], "type": "compute", "name": "Compute Service"}, {"endpoints": [{"adminURL": "<a href="http://192.168.1.43:8080">http://192.168.1.43:8080</a>", "region": "RegionOne", "publicURL": "<a href="http://192.168.1.43:8080">http://192.168.1.43:8080</a>", "internalURL": "<a href="http://192.168.1.43:8080">http://192.168.1.43:8080</a>"}], "endpoints_links": [], "type": "s3", "name": "S3 Service"}, {"endpoints": [{"adminURL": "<a href="http://192.168.1.43:9292">http://192.168.1.43:9292</a>", "region": "RegionOne", "publicURL": "<a href="http://192.168.1.43:9292">http://192.168.1.43:9292</a>", "internalURL": "<a href="http://192.168.1.43:9292">http://192.168.1.43:9292</a>"}], "endpoints_links": [], "type": "image", "name": "Image Service"}, {"endpoints": [{"adminURL": "<a href="http://192.168.1.43:8776/v1/1e9c9a2fe2454950a900202b1e82b54f">http://192.168.1.43:8776/v1/1e9c9a2fe2454950a900202b1e82b54f</a>", "region": "RegionOne", "publicURL": "<a href="http://192.168.1.43:8776/v1/1e9c9a2fe2454950a900202b1e82b54f">http://192.168.1.43:8776/v1/1e9c9a2fe2454950a900202b1e82b54f</a>", "internalURL": "<a href="http://192.168.1.43:8776/v1/1e9c9a2fe2454950a900202b1e82b54f">http://192.168.1.43:8776/v1/1e9c9a2fe2454950a900202b1e82b54f</a>"}], "endpoints_links": [], "type": "volume", "name": "Volume Service"}, {"endpoints": [{"adminURL": "<a href="http://192.168.1.43:8773/services/Admin">http://192.168.1.43:8773/services/Admin</a>", "region": "RegionOne", "publicURL": "<a href="http://192.168.1.43:8773/services/Cloud">http://192.168.1.43:8773/services/Cloud</a>", "internalURL": "<a href="http://192.168.1.43:8773/services/Cloud">http://192.168.1.43:8773/services/Cloud</a>"}], "endpoints_links": [], "type": "ec2", "name": "EC2 Service"}, {"endpoints": [{"adminURL": "<a href="http://192.168.1.43:8080/">http://192.168.1.43:8080/</a>", "region": "RegionOne", "publicURL": "<a href="http://192.168.1.43:8080/v1/AUTH_1e9c9a2fe2454950a900202b1e82b54f">http://192.168.1.43:8080/v1/AUTH_1e9c9a2fe2454950a900202b1e82b54f</a>", "internalURL": "<a href="http://192.168.1.43:8080/v1/AUTH_1e9c9a2fe2454950a900202b1e82b54f">http://192.168.1.43:8080/v1/AUTH_1e9c9a2fe2454950a900202b1e82b54f</a>"}], "endpoints_links": [], "type": "object-store", "name": "Swift Service"}, {"endpoints": [{"adminURL": "<a href="http://192.168.1.43:35357/v2.0">http://192.168.1.43:35357/v2.0</a>", "region": "RegionOne", "publicURL": "<a href="http://192.168.1.43:5000/v2.0">http://192.168.1.43:5000/v2.0</a>", "internalURL": "<a href="http://192.168.1.43:5000/v2.0">http://192.168.1.43:5000/v2.0</a>"}], "endpoints_links": [], "type": "identity", "name": "Identity Service"}], "user": {"username": "admin", "roles_links": [], "id": "e357f1b90efb4196af7d375ff7af21c6", "roles": [{"id": "5f9c2353722741c58bc3c09dfeb32759", "name": "KeystoneAdmin"}, {"id": "bf2e2b36928e42eb8ed977ba8b470e77", "name": "admin"}, {"id": "b6b1b22f0fc640dab1958d8eb977625b", "name": "KeystoneServiceAdmin"}], "name": "admin"}}}<br>
<br>May 30, 2012 11:50:39 PM org.glassfish.jersey.filter.LoggingFilter log<br>INFO: 1 * LoggingFilter - Request received on thread main<br>1 > PUT <a href="http://192.168.1.43:8080/v1/AUTH_1e9c9a2fe2454950a900202b1e82b54f/test-container">http://192.168.1.43:8080/v1/AUTH_1e9c9a2fe2454950a900202b1e82b54f/test-container</a><br>
1 > Accept: application/json<br>1 > X-Auth-Token: cedec9abd4c249479181c2c6d9c0ad85<br><br>May 30, 2012 11:50:39 PM org.glassfish.jersey.filter.LoggingFilter log<br>INFO: 2 * LoggingFilter - Response received on thread main<br>
2 < 201<br>2 < Date: Wed, 30 May 2012 21:50:39 GMT<br>2 < Content-Length: 18<br>2 < Content-Type: text/html; charset=UTF-8<br>2 < Connection: keep-alive<br>201 Created<br><br><br><br>   <br><br>May 30, 2012 11:50:39 PM org.glassfish.jersey.filter.LoggingFilter log<br>
INFO: 3 * LoggingFilter - Request received on thread main<br>3 > GET <a href="http://192.168.1.43:8080/v1/AUTH_1e9c9a2fe2454950a900202b1e82b54f">http://192.168.1.43:8080/v1/AUTH_1e9c9a2fe2454950a900202b1e82b54f</a><br>
3 > Accept: application/json<br>3 > X-Auth-Token: cedec9abd4c249479181c2c6d9c0ad85<br><br>May 30, 2012 11:50:39 PM org.glassfish.jersey.filter.LoggingFilter log<br>INFO: 4 * LoggingFilter - Response received on thread main<br>
4 < 200<br>4 < X-Account-Object-Count: 0<br>4 < X-Account-Container-Count: 1<br>4 < Date: Wed, 30 May 2012 21:50:39 GMT<br>4 < Content-Length: 47<br>4 < X-Timestamp: 1338414639.80726<br>4 < X-Account-Bytes-Used: 0<br>
4 < Accept-Ranges: bytes<br>4 < Content-Type: application/json; charset=utf-8<br>4 < Connection: keep-alive<br>[{"name":"test-container","count":0,"bytes":0}]<br><br>May 30, 2012 11:50:39 PM org.glassfish.jersey.filter.LoggingFilter log<br>
INFO: 5 * LoggingFilter - Request received on thread main<br>5 > HEAD <a href="http://192.168.1.43:8080/v1/AUTH_1e9c9a2fe2454950a900202b1e82b54f/test-container">http://192.168.1.43:8080/v1/AUTH_1e9c9a2fe2454950a900202b1e82b54f/test-container</a><br>
5 > Accept: application/json<br>5 > X-Auth-Token: cedec9abd4c249479181c2c6d9c0ad85<br><br>May 30, 2012 11:50:39 PM org.glassfish.jersey.filter.LoggingFilter log<br>INFO: 6 * LoggingFilter - Response received on thread main<br>
6 < 204<br>6 < X-Container-Object-Count: 0<br>6 < Date: Wed, 30 May 2012 21:50:40 GMT<br>6 < X-Container-Bytes-Used: 0<br>6 < Content-Length: 0<br>6 < X-Timestamp: 1338414639.82109<br>6 < Accept-Ranges: bytes<br>
6 < Connection: keep-alive<br><br>May 30, 2012 11:50:39 PM org.glassfish.jersey.filter.LoggingFilter log<br>INFO: 7 * LoggingFilter - Request received on thread main<br>7 > PUT <a href="http://192.168.1.43:8080/v1/AUTH_1e9c9a2fe2454950a900202b1e82b54f/test-container/test-object">http://192.168.1.43:8080/v1/AUTH_1e9c9a2fe2454950a900202b1e82b54f/test-container/test-object</a><br>
7 > Accept: application/json<br>7 > Content-Length: 1024<br>7 > Content-Type: application/octet-stream<br>7 > X-Auth-Token: cedec9abd4c249479181c2c6d9c0ad85<br><br><br>May 30, 2012 11:50:39 PM org.glassfish.jersey.filter.LoggingFilter log<br>
INFO: 8 * LoggingFilter - Response received on thread main<br>8 < 201<br>8 < Date: Wed, 30 May 2012 21:50:40 GMT<br>8 < Content-Length: 18<br>8 < Last-Modified: Wed, 30 May 2012 21:50:40 GMT<br>8 < Etag: 0f343b0931126a20f133d67c2b018a3b<br>
8 < Content-Type: text/html; charset=UTF-8<br>8 < Connection: keep-alive<br>201 Created<br><br><br><br>   <br><br>May 30, 2012 11:50:40 PM org.glassfish.jersey.filter.LoggingFilter log<br>INFO: 9 * LoggingFilter - Request received on thread main<br>
9 > GET <a href="http://192.168.1.43:8080/v1/AUTH_1e9c9a2fe2454950a900202b1e82b54f/test-container">http://192.168.1.43:8080/v1/AUTH_1e9c9a2fe2454950a900202b1e82b54f/test-container</a><br>9 > Accept: application/json<br>
9 > X-Auth-Token: cedec9abd4c249479181c2c6d9c0ad85<br><br>May 30, 2012 11:50:40 PM org.glassfish.jersey.filter.LoggingFilter log<br>INFO: 10 * LoggingFilter - Response received on thread main<br>10 < 200<br>10 < X-Container-Object-Count: 1<br>
10 < Date: Wed, 30 May 2012 21:50:40 GMT<br>10 < X-Container-Bytes-Used: 1024<br>10 < Content-Length: 167<br>10 < X-Timestamp: 1338414639.82830<br>10 < Accept-Ranges: bytes<br>10 < Content-Type: application/json; charset=utf-8<br>
10 < Connection: keep-alive<br>[{"name":"test-object","hash":"0f343b0931126a20f133d67c2b018a3b","bytes":1024,"content_type":"application/octet-stream", "last_modified":"2012-05-30T21:50:40.152250"}]<br>
<br>May 30, 2012 11:50:40 PM org.glassfish.jersey.filter.LoggingFilter log<br>INFO: 11 * LoggingFilter - Request received on thread main<br>11 > HEAD <a href="http://192.168.1.43:8080/v1/AUTH_1e9c9a2fe2454950a900202b1e82b54f/test-container/test-object">http://192.168.1.43:8080/v1/AUTH_1e9c9a2fe2454950a900202b1e82b54f/test-container/test-object</a><br>
11 > Accept: application/json<br>11 > X-Auth-Token: cedec9abd4c249479181c2c6d9c0ad85<br><br>May 30, 2012 11:50:40 PM org.glassfish.jersey.filter.LoggingFilter log<br>INFO: 12 * LoggingFilter - Response received on thread main<br>
12 < 200<br>12 < Date: Wed, 30 May 2012 21:50:40 GMT<br>12 < Content-Length: 1024<br>12 < Last-Modified: Wed, 30 May 2012 21:50:40 GMT<br>12 < Etag: 0f343b0931126a20f133d67c2b018a3b<br>12 < X-Timestamp: 1338414640.15225<br>
12 < Accept-Ranges: bytes<br>12 < Content-Type: application/octet-stream<br>12 < Connection: keep-alive<br><br>May 30, 2012 11:50:40 PM org.glassfish.jersey.filter.LoggingFilter log<br>INFO: 13 * LoggingFilter - Request received on thread main<br>
13 > DELETE <a href="http://192.168.1.43:8080/v1/AUTH_1e9c9a2fe2454950a900202b1e82b54f/test-container/test-object">http://192.168.1.43:8080/v1/AUTH_1e9c9a2fe2454950a900202b1e82b54f/test-container/test-object</a><br>13 > Accept: */*<br>
13 > X-Auth-Token: cedec9abd4c249479181c2c6d9c0ad85<br><br>May 30, 2012 11:50:40 PM org.glassfish.jersey.filter.LoggingFilter log<br>INFO: 14 * LoggingFilter - Response received on thread main<br>14 < 204<br>14 < Date: Wed, 30 May 2012 21:50:40 GMT<br>
14 < Content-Length: 0<br>14 < Content-Type: text/html; charset=UTF-8<br>14 < Connection: keep-alive<br><br>May 30, 2012 11:50:40 PM org.glassfish.jersey.filter.LoggingFilter log<br>INFO: 15 * LoggingFilter - Request received on thread main<br>
15 > DELETE <a href="http://192.168.1.43:8080/v1/AUTH_1e9c9a2fe2454950a900202b1e82b54f/test-container">http://192.168.1.43:8080/v1/AUTH_1e9c9a2fe2454950a900202b1e82b54f/test-container</a><br>15 > X-Auth-Token: cedec9abd4c249479181c2c6d9c0ad85<br>
<br>May 30, 2012 11:50:40 PM org.glassfish.jersey.filter.LoggingFilter log<br>INFO: 16 * LoggingFilter - Response received on thread main<br>16 < 204<br>16 < Date: Wed, 30 May 2012 21:50:40 GMT<br>16 < Content-Length: 0<br>
16 < Content-Type: text/html; charset=UTF-8<br>16 < Connection: keep-alive<br><br><br><br><br></div><br><br><br><br><div class="gmail_quote">On Wed, May 30, 2012 at 9:16 PM, Shawn Heisey <span dir="ltr"><<a href="mailto:launchpad@elyograg.org" target="_blank">launchpad@elyograg.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 5/29/2012 5:51 PM, Luis Gervaso wrote:<br>
</div><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Good point,<br>
<br>
I'll prepare a benchmark<br>
<br>
Until RC3 you can build from source (2 steps)<br>
<br>
#git clone<br>
#mvn clean install<br>
</blockquote>
<br></div>
As I mentioned in my last email, I am getting an exception, see that email for full exception details.  This is the code in my little application that's failing.  Originally I had /auth/v1.0 (from the swift howto) instead of /v2.0, but I can see in the openstack api docs that /v2.0 is a correct API URL, and the openstack sdk examples have /v2.0.<br>

<br>
    String username = "system:root";<br>
    String password = "testpass";<br>
    Properties properties = System.getProperties();<br>
    properties.put("verbose", "true");<br>
    // properties.put("auth.<u></u>credentials", "passwordCredentials");<br>
    properties.put("auth.username"<u></u>, username);<br>
    properties.put("auth.password"<u></u>, password);<br>
    // properties.put("auth.<u></u>tenantName", "demo");<br>
    properties.put("identity.<u></u>endpoint.publicURL",<br>
        "http:/<a href="http://testb.REDACTED.com:8080/v2.0" target="_blank">testb.REDACTED.com:<u></u>8080/v2.0</a>");<br>
<br>
    OpenStackClient openstack = OpenStackClient<br>
        .authenticate(properties);<br>
<br>
Here are the jarfiles that I have placed in the classpath.  Some of these I was able to download, some of them had to come from my .m2 maven directory:<br>
<br>
asm-all-repackaged-2.0.3.jar<br>
auto-depends-2.0.3.jar<br>
commons-cli-1.2.jar<br>
commons-codec-1.6.jar<br>
commons-io-2.2.jar<br>
commons-lang-2.6.jar<br>
commons-logging-1.1.1.jar<br>
guava-12.0.jar<br>
hk2-api-2.0.3.jar<br>
jackson-core-asl-1.9.2.jar<br>
jackson-jaxrs-1.9.2.jar<br>
jackson-mapper-asl-1.9.2.jar<br>
jackson-xc-1.9.2.jar<br>
javax.inject-2.0.3.jar<br>
javax.ws.rs-api-2.0-m05.jar<br>
jersey-client-2.0-m04.jar<br>
jersey-common-2.0-m04.jar<br>
jersey-media-json-2.0-m04.jar<br>
mailapi.jar<br>
openstack-java-sdk-1.0-RC2.jar<br>
osgi-resource-locator-1.0.1.<u></u>jar<div class="HOEnZb"><div class="h5"><br>
<br>
Thanks,<br>
Shawn<br>
<br>
<br>
______________________________<u></u>_________________<br>
Mailing list: <a href="https://launchpad.net/%7Eopenstack" target="_blank">https://launchpad.net/~<u></u>openstack</a><br>
Post to     : <a href="mailto:openstack@lists.launchpad.net" target="_blank">openstack@lists.launchpad.net</a><br>
Unsubscribe : <a href="https://launchpad.net/%7Eopenstack" target="_blank">https://launchpad.net/~<u></u>openstack</a><br>
More help   : <a href="https://help.launchpad.net/ListHelp" target="_blank">https://help.launchpad.net/<u></u>ListHelp</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>-------------------------------------------<br>Luis Alberto Gervaso Martin<div>Woorea Solutions, S.L<br>CEO & CTO<br>mobile: (+34) 627983344<br><a href="mailto:luis.gervaso@gmail.com" target="_blank">luis@</a><a href="http://woorea.es/" target="_blank">woorea.es</a></div>
<br>