openstack.net icon indicating copy to clipboard operation
openstack.net copied to clipboard

Support Identity v3

Open stenstad opened this issue 10 years ago • 8 comments

Hi!

Since the release of Openstack Havana the preferred version of Identity to use is v3. Some cloud providers have now migrated to only supporting v3 for token generation to get support for domains.

Currently the Openstack.NET SDK does not work with providers that require support for Identity v3.

Would it be possible to add support for Identity v3 in this project as well?

stenstad avatar May 22 '15 21:05 stenstad

I don't know how you're the first person to request this, but it looks like you are! :smile:

I've done quite a bit of work on an implementation of this service for the new SDK, but it's not quite ready to merge. Would you perhaps be interested in helping smoothing out some of its rough edges?

sharwell avatar May 22 '15 23:05 sharwell

I‘m interested in helping implementing this issue, where do i start?

ghost avatar Mar 28 '16 03:03 ghost

@jiangzehua Here's the spec for identity v3. Then good place to start is to look at how Compute is implemented and mimic it.

The API class is coded in a generic, extensible way so that it can be used with any OpenStack provider, who may need to tweak and customize based on what they support.

e.g. https://github.com/openstacknetsdk/openstack.net/blob/develop/src/corelib/Compute/v2_1/Serialization/ComputeApi.cs

public virtual async Task<T> GetServerAsync<T>(string serverId, CancellationToken cancellationToken = default(CancellationToken))

Then on top of that we wrap and expose the API in a Service class. The Service class is what the end-user will interact with.

e.g. https://github.com/openstacknetsdk/openstack.net/blob/develop/src/corelib/Compute/v2_1/ComputeService.cs

public Task<Server> GetServerAsync(Identifier serverId, CancellationToken cancellationToken = default(CancellationToken))

That along with getting request/response classes built out is the main portion of the work.

Each OpenStack feature has two types of tests: unit and integration. The unit tests mock the OpenStack API, see https://github.com/openstacknetsdk/openstack.net/blob/develop/src/testing/unit/Compute/v2_1/ServerTests.cs for an example. Then the integration tests run against a real OpenStack instance, see https://github.com/openstacknetsdk/openstack.net/blob/develop/src/testing/integration/Compute/v2_1/ServerTests.cs.

If you have any questions, feel free to hit me up directly at [email protected].

carolynvs avatar Mar 29 '16 14:03 carolynvs

Hi guys, Any progress? I need this functionality to use with IBM Bluemix Thanks

tomsawdayee avatar Oct 10 '16 10:10 tomsawdayee

@tomsawdayee Unfortunately, this is on the backburner indefinitely and I don't know when I'll have time again to work on the SDK, other than bug fixes. If you'd like to work on identity v3 yourself, I'd be happy to help. Just open a PR and we can collaborate on it.

carolynvs avatar Oct 17 '16 14:10 carolynvs

Thanks. I'll see what I can do.

tomsawdayee avatar Oct 19 '16 10:10 tomsawdayee

@tomsawdayee I needed it for Bluemix so I did this

lsarni avatar Nov 10 '16 14:11 lsarni

@lsarni Thanks a lot, your code works great

tomsawdayee avatar Nov 11 '16 16:11 tomsawdayee