Sounds reasonable, yes. Ok, I will change it to TenantAdminApi, perform some tests and then I will send the pull request.
Thanks dude! -- Diego Parrilla <http://www.stackops.com/>*CEO* *www.stackops.com <http://www.stackops.com/> | * [email protected] | +34 91 005-2164 | skype:diegoparrilla On Wed, Apr 15, 2015 at 10:39 AM, Ignasi Barrera <[email protected]> wrote: > Being a method in an extension, it shouldn't be in the UserApi, as some > installation couldn't have that extension available and we need to take > that into account. There are the UserAdminApi and the TenantAdminApi for > the OS-KSADM extension. The former contains generic user operations, and > the latter contains the tenant-scoped ones, that's why I suggested to add > the method there. Does it make sense? > > Feel free to send the pull request! > > I. > > On 14 April 2015 at 23:30, Diego Parrilla Santamaría < > [email protected]> wrote: > >> Hi Ignasi, >> >> nice to hear from you again! Yep, we use jclouds in our stackops products >> since mid 2014. What a great stuff you are building dudes! >> >> You are right, it's part of the OS-KSADM extension. I have already >> implemented it in jclouds 2.0 and it's working like a breeze: actually it >> was just a bunch of lines of code: >> >> package org.jclouds.openstack.keystone.v2_0.features; >> >> ... >> >> /** >> >> * List users that belong to a specific tenant >> >> * >> >> * @return the list of users >> >> */ >> >> @Named("user:listUsersOnTenant") >> >> @GET >> >> @Path("/tenants/{tenantId}/users") >> >> @ResponseParser(ParseUsers.class) >> >> @Transform(ToPagedIterable.class) >> >> @Fallback(EmptyPagedIterableOnNotFoundOr404.class) >> >> PagedIterable<User> listUsersOnTenant(@PathParam("tenantId") String >> tenantId); >> >> >> @Named("user:listUsersOnTenant") >> >> @GET >> >> @Path("/tenants/{tenantId}/users") >> >> @ResponseParser(ParseUsers.class) >> >> @Fallback(EmptyPaginatedCollectionOnNotFoundOr404.class) >> >> PaginatedCollection<User> listUsersOnTenant(@PathParam("tenantId") >> String tenantId, >> >> PaginationOptions options); >> >> >> But it sounds me better in the UserApi class since it returns a list of >> users... but actually I don't care and I can change it right way. >> >> Let me know if I have to change it to TenantAdminApi and I will send the >> pull request. I hope you are not as much talibans as the Openstack dudes >> are ;-) >> >> Cheers >> >> -- >> Diego Parrilla >> <http://www.stackops.com/>*CEO* >> *www.stackops.com <http://www.stackops.com/> | * >> [email protected] | +34 91 005-2164 | skype:diegoparrilla >> >> >> >> On Mon, Apr 13, 2015 at 10:28 AM, Ignasi Barrera <[email protected]> wrote: >> >>> Hi Diego, long time no see! >>> >>> The call seems to be part of the OS-KSADM extension [1], right? jclouds >>> does not implement it yet, but adding it to the TenantAdminApi [2] would be >>> pretty straightforward. Since this addition shouldn't introduce breaking >>> changes, there is no problem in adding it to 2.0 and 1.9.x. >>> >>> We love pull requests. Wanna try sending us a path [3]? >>> >>> >>> HTH! >>> >>> I. >>> >>> >>> [1] http://developer.openstack.org/api-ref-identity-v2-ext.html >>> [2] >>> https://github.com/jclouds/jclouds/blob/master/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/extensions/TenantAdminApi.java >>> [3] >>> https://cwiki.apache.org/confluence/display/JCLOUDS/How+to+Contribute >>> >>> On 10 April 2015 at 13:48, Diego Parrilla Santamaría < >>> [email protected]> wrote: >>> >>>> Hi folks, >>>> >>>> this is an issue we have been struggling with for a while and now it's >>>> becoming mandatory to find a workaround for how we do it now: >>>> >>>> Our goal is to get what users are in a specific tenant using Keystone >>>> API. There is a well known call to the API that can return the list of >>>> users: >>>> >>>> curl -i -X GET >>>> http://api.stackops.int:35357/v2.0/tenants/<tenant-id>/users >>>> -H "User-Agent: python-keystoneclient" -H "X-Auth-Token: TOKEN" >>>> >>>> But we can't find an equivalent call in JClouds. The way we do it now >>>> is: >>>> 1) Get the list of users >>>> 2) Check if any user has a role in the tenant. If so, add the user to >>>> the users in the tenant list. >>>> >>>> The process hits heavily on Keystone and it's fine for a few hundreds >>>> of tenants, but now we are facing performance issues when dealing with >>>> thousands of tenants and users. >>>> >>>> So my question(s) are: >>>> 1) Is this call implemented in JClouds and we don't know how to use it? >>>> 2) Any plans for future implementations in 1.9.x and 2.0? >>>> 3) Are there a good reason for not to have this API call implemented? >>>> Maybe I'm missing something. >>>> 4) Any chance of having our code implementing this feature in JClouds? >>>> >>>> Cheers! >>>> Diego >>>> >>>> -- >>>> Diego Parrilla >>>> <http://www.stackops.com/>*CEO* >>>> *www.stackops.com <http://www.stackops.com/> | * >>>> [email protected] | +34 91 005-2164 | skype:diegoparrilla >>>> >>> >>> >> >
