I've been able to install and get OpenStack Swift up and running. My installation is strictly Swift, does not include Keystone or other OpenStack components.
When I use the curl command I am able to create users and do my Swift tests making sure all is working just fine. Where I am running into problems is when I use the OpenStack.NET API maintained by Rackspace on github.
Using the following commands I was able to create a swift user.
$ curl -v -H 'X-Storage-User: test:tester' -H 'X-Storage-Pass: testing' http://192.168.0.3:8080/auth/v1.0
$ curl -v -H 'X-Auth-Token: <token-from-x-auth-token-above>' <url-from-x-storage-url-above>
$ swift -A http://192.168.0.3:8080/auth/v1.0 -U test:tester -K testing stat
All works as expected, and the user / account is created. On my Windows Development Machine I then downloaded the OpenStack.NET API from Rackspace GitHub and created an application running the following code;
var authUri = new Uri("http://192.168.0.3:8080/auth/v1.0");
var userName = "test";
var password = "tester";
var tenantId = "testing";
var credential = new OpenStackCredential(authUri, userName, password, tenantId);
var client = OpenStackClientFactory.CreateClient(credential);
client.Connect();
var storageServiceClient = client.CreateServiceClient<IStorageServiceClient>();
var storageAccount = storageServiceClient.GetStorageAccount();
When this runs I am getting the following error.
"A client that supports the requested service for the given instance of OpenStack could not be found."
What am I doing wrong here?
I faced the exact same problem and after doing some debugging I got to the conclusion that the Openstack .NET SDK checks for the version in the url and "v1.0" isn't valid.
I'm by no means an expert on this matter so try to double check my findings before relying on them.
Edit: After further reading I think that the v1.0 url is for TempAuth authentication and looks like the SDK tries a Keystone authentication instead. I can't find a way to use the SDK with TempAuth authentication.