← Back to team overview

openstack team mailing list archive

Re: is this a bug in milestone-proposed keystone ? (cannotget endpoint-list, nor create endpoint)

 

On Mon, Mar 26, 2012 at 11:12 AM, David Kranz <david.kranz@xxxxxxxxxx>wrote:

>  Thanks for the explanation. But I am still a little confused about the
> point of the templates. Having two implementations, one simple and one less
> simple, is not simpler than having only one. You still need to user the CLI
> for user, roles, etc.  so having a different mechanism for endpoints does
> not seem simple. With regard to performance, won't these endpoint values be
> changing infrequently and so any reasonable caching strategy would give
> good performance? Or am I missing something?
>

The preference is to switch the default to the SQL driver, the other
backend was simply the first driver written and will likely be deprecated.

--andy



>  -David
>
>
> On 3/26/2012 1:39 PM, Dolph Mathews wrote:
>
> I think I'm to blame (apologies!) for suggesting that one driver was
> preferred over the other (that was my understanding a few weeks ago, based
> on test coverage). However, test coverage has since improved and I think
> people are having good experience with the SQL driver.
>
>  The two methods are *not* functionally identical. The file-based driver
> is simple and high-performance, and the sql-based driver provides
> flexibility and API/CLI administration.
>
>  I've just proposed a review to clarify each option in the
> http://keystone.openstack.org/configuration.html docs:
> https://review.openstack.org/#change,5820
>
>  As well as a separate review to change the default backend to SQL, since
> most users are looking for the CLI management commands out of the box:
> https://review.openstack.org/#change,5821
>
> -Dolph
>
> On Mon, Mar 26, 2012 at 8:29 AM, David Kranz <david.kranz@xxxxxxxxxx>wrote:
>
>>  There seems to be an unfortunate difference in opinion out there about
>> whether the keystone endpoints should be defined using templates (devstack)
>> or keystone calls (ubuntu).  I don't know why keystone is offering two very
>> different, but seemingly functionally identical, ways to do this. Is there
>> a good reason? Can this be sorted out so there is only one documented way
>> to do this?
>>
>>  -David
>>
>>
>> On 3/26/2012 7:25 AM, Andiabes wrote:
>>
>> Can you include your config?
>> The behavior you're describing seems to be consistent with a missing
>> backers configuration ...
>>
>>  Something like:
>>
>> [identity]
>> driver = keystone.identity.backends.sql.Identity
>> [catalog]
>> driver = keystone.catalog.backends.sql.Catalog
>> Also, where/how are you installing?
>>
>>
>> On Mar 26, 2012, at 6:56 AM, Mandar Vaze <mandar.vaze@xxxxxxxxxxxx>
>> wrote:
>>
>>   I’m also getting the same error on latest master branch (updated today)
>>
>> Using setup created by devstack
>>
>>
>>
>> -Mandar
>>
>>
>>
>> *From:* openstack-bounces+mandar.vaze=vertex.co.in@xxxxxxxxxxxxxxxxxxx [
>> mailto:openstack-bounces+mandar.vaze= <openstack-bounces+mandar.vaze=>
>> vertex.co.in@xxxxxxxxxxxxxxxxxxx] *On Behalf Of *.?o 0 O??
>> *Sent:* Monday, March 26, 2012 12:45 PM
>> *To:* Pierre Amadio
>> *Cc:* openstack
>> *Subject:* Re: [Openstack] is this a bug in milestone-proposed keystone
>> ? (cannotget endpoint-list, nor create endpoint)
>>
>>
>>
>> hi,
>>
>> I don't know if it is a bug but I come across the same problem and
>> wondering how to solve it.
>>
>>
>>
>>
>>
>> ------------------ Original ------------------
>>
>> *From: * "Pierre Amadio"<pierre.amadio@xxxxxxxxxxxxx>;
>>
>> *Date: * Sun, Mar 25, 2012 04:35 AM
>>
>> *To: * "openstack"<openstack@xxxxxxxxxxxxxxxxxxx>;
>>
>> *Subject: * [Openstack] is this a bug in milestone-proposed keystone ?
>> (cannotget endpoint-list, nor create endpoint)
>>
>>
>>
>> Hi there !
>>
>> I wanted to give a try to the milestone-proposed branch of keystone and
>> got stuck quite fast.
>>
>> I am not sure if i hit a bug and should report it, or if i'm doing
>> something wrong.
>>
>> With previous version of keystone (read packaged on ubuntu precise), i
>> was able to create endpoint the following way once keystone has been
>> installed:
>>
>> 1) setting some env variables:
>> export KEYSTONE_IP=192.168.122.102 # IP of your keystone API server
>> export SERVICE_ENDPOINT=http://$KEYSTONE_IP:35357/v2.0/
>> export SERVICE_TOKEN=999888777666
>> export NOVA_PUBLIC_URL="http://$NOVA_IP:8774/v1.1/%(tenant_id)s"
>> export NOVA_ADMIN_URL=$NOVA_PUBLIC_URL
>> export NOVA_INTERNAL_URL=$NOVA_PUBLIC_URL
>>
>> 2) creating services:
>> keystone service-create --name nova --type compute --description
>> 'OpenStack Compute Service'
>>
>> keystone service-create --name swift --type object-store --description
>> 'OpenStack Storage Service'
>>
>> keystone service-create --name glance --type image --description
>> 'OpenStack Image Service'
>>
>> keystone service-create --name keystone --type identity --description
>> 'OpenStack Identity Service'
>>
>> 3) creating an endpoint for those services, starting with the compute
>> service:
>>
>> ID=$(keystone service-list | grep -i compute | awk '{print $2}')
>>
>>
>> keystone endpoint-create --region RegionOne --service_id $ID --publicurl
>> $NOVA_PUBLIC_URL --adminurl $NOVA_ADMIN_URL --internalurl
>> $NOVA_INTERNAL_URL
>>
>> When i run this command with milestone-proposed, i experience the
>> following:
>>
>> No handlers could be found for logger "keystoneclient.client"
>> The action you have requested has not been implemented. (HTTP 501)
>>
>>
>> Strangely enough, i experience a similar error message when running a
>> simple "keystone endpoint-list" whereas command such as "keystone
>> user-list" works all right.
>>
>>
>> here is what i have in the keystone logs when trying "endpoint-list":
>>
>> 2012-03-24 20:30:09    DEBUG [routes.middleware] Matched GET /endpoints
>> 2012-03-24 20:30:09    DEBUG [routes.middleware] Route path:
>> '{path_info:.*}', defaults: {'controller':
>> <keystone.contrib.admin_crud.core.CrudExtension object at 0x2b215d0>}
>> 2012-03-24 20:30:09    DEBUG [routes.middleware] Match dict:
>> {'controller': <keystone.contrib.admin_crud.core.CrudExtension object at
>> 0x2b215d0>, 'path_info': '/endpoints'}
>> 2012-03-24 20:30:09    DEBUG [routes.middleware] Matched GET /endpoints
>> 2012-03-24 20:30:09    DEBUG [routes.middleware] Route path:
>> '/endpoints', defaults: {'action': u'get_endpoints', 'controller':
>> <keystone.catalog.core.EndpointController object at 0x2b21210>}
>> 2012-03-24 20:30:09    DEBUG [routes.middleware] Match dict: {'action':
>> u'get_endpoints', 'controller':
>> <keystone.catalog.core.EndpointController object at 0x2b21210>}
>> 2012-03-24 20:30:09    DEBUG [keystone.common.wsgi] arg_dict: {}
>> 2012-03-24 20:30:09  WARNING [keystone.common.wsgi] The action you have
>> requested has not been implemented.
>> 2012-03-24 20:30:09    DEBUG [keystone.common.wsgi] ********************
>> RESPONSE HEADERS ********************
>> 2012-03-24 20:30:09    DEBUG [keystone.common.wsgi] Content-Type =
>> application/json
>> 2012-03-24 20:30:09    DEBUG [keystone.common.wsgi] Vary = X-Auth-Token
>> 2012-03-24 20:30:09    DEBUG [keystone.common.wsgi] Content-Length = 109
>> 2012-03-24 20:30:09    DEBUG [keystone.common.wsgi]
>> 2012-03-24 20:30:09    DEBUG [keystone.common.wsgi] ********************
>> RESPONSE BODY ********************
>>
>>
>> I try to add some debug in
>> keystone.catalog.core.EndpointController.get_endpoints() method:
>>
>>     def get_endpoints(self, context):
>>         LOG.debug("PLOP get_endpoints")
>>         self.assert_admin(context)
>>         LOG.debug("PLOP STILL HERE")      # <= LAST DEBUG LINE
>>         endpoint_list = self.catalog_api.list_endpoints(context)
>>         LOG.debug("SO, how does endpoint_list looks like ?")
>>         for i in endpoint_list:
>>             LOG.debug("PLOP: '%s'",s)
>>         endpoint_refs = [self.catalog_api.get_endpoint(context, e)
>>                          for e in endpoint_list]
>>         LOG.debug("PLOP THIS IS THE END")
>>         return {'endpoints': endpoint_refs}
>>
>> So, as i do not see anything after "PLOP STILL HERE", i am assuming
>> something is wrong in the catalog_api.list_endpoints() method.
>>
>> However, i do not understand exactly where it is implemented.
>> catalog_api is a Manager instance, wich seems to be a subclass of
>> Manager() defined in keystone/keystone/common/manager.py but i am lost
>> with the wrapping magic that occurs there.
>>
>> So, is this a bug that i should file ?
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/‾openstack
>> Post to     : openstack@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/‾openstack
>> More help   : https://help.launchpad.net/ListHelp
>>
>>  _______________________________________________
>> Mailing list: https://launchpad.net/~openstack
>> Post to     : openstack@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~openstack
>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~openstack
>> Post to     : openstack@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~openstack
>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~openstack
>> Post to     : openstack@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~openstack
>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to     : openstack@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~openstack
> More help   : https://help.launchpad.net/ListHelp
>
>

References