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.<div>
<br></div><div>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.</div><div><br></div><div>I've just proposed a review to clarify each option in the <a href="http://keystone.openstack.org/configuration.html">http://keystone.openstack.org/configuration.html</a> docs:</div>
<div><a href="https://review.openstack.org/#change,5820">https://review.openstack.org/#change,5820</a></div><div><br></div><div>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:</div>
<div><a href="https://review.openstack.org/#change,5821">https://review.openstack.org/#change,5821</a><br><br>-Dolph<br><br><div class="gmail_quote">On Mon, Mar 26, 2012 at 8:29 AM, David Kranz <span dir="ltr"><<a href="mailto:david.kranz@qrclab.com">david.kranz@qrclab.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    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?<span class="HOEnZb"><font color="#888888"><br>
    <br>
     -David</font></span><div><div class="h5"><br>
    <br>
    On 3/26/2012 7:25 AM, Andiabes wrote:
    <blockquote type="cite">
      <div>Can you include your config?</div>
      <div>The behavior you're describing seems to be consistent with a
        missing backers configuration ...</div>
      <div><br>
      </div>
      <div>Something like:</div>
      <div>
        <pre style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:normal normal normal 12px/normal 'Bitstream Vera Sans Mono',Courier,monospace">
<div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:1em;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;background-color:transparent">
<font face="Helvetica"><span style="font-size:17px;white-space:normal">[identity]</span></font></div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:1em;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;background-color:transparent">
<font face="Helvetica"><span style="font-size:17px;white-space:normal">driver = keystone.identity.backends.sql.Identity</span></font></div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:1em;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;background-color:transparent">
<font face="Helvetica"><span>
</span></font></div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:1em;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;background-color:transparent">
<font face="Helvetica"><span style="font-size:17px;white-space:normal">[catalog]</span></font></div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:1em;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;background-color:transparent">
<font face="Helvetica"><span style="font-size:17px;white-space:normal">driver = keystone.catalog.backends.sql.Catalog</span></font></div><div>
</div><div>
</div><div>Also, where/how are you installing?</div></pre>
        <br>
        On Mar 26, 2012, at 6:56 AM, Mandar Vaze <<a href="mailto:mandar.vaze@vertex.co.in" target="_blank">mandar.vaze@vertex.co.in</a>>
        wrote:<br>
        <br>
      </div>
      <blockquote type="cite">
        <div>
          
          
          
          <div>
            <p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">I’m
                also getting the same error on latest master branch
                (updated today)<u></u><u></u></span></p>
            <p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Using
                setup created by devstack<u></u><u></u></span></p>
            <p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
            <p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">-Mandar<u></u><u></u></span></p>
            <p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
            <p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">
                <a href="mailto:openstack-bounces+mandar.vaze=vertex.co.in@lists.launchpad.net" target="_blank">openstack-bounces+mandar.vaze=vertex.co.in@lists.launchpad.net</a>
                [<a href="mailto:openstack-bounces+mandar.vaze=" target="_blank">mailto:openstack-bounces+mandar.vaze=</a><a href="mailto:vertex.co.in@lists.launchpad.net" target="_blank">vertex.co.in@lists.launchpad.net</a>]
                <b>On Behalf Of </b>.?o 0 O??<br>
                <b>Sent:</b> Monday, March 26, 2012 12:45 PM<br>
                <b>To:</b> Pierre Amadio<br>
                <b>Cc:</b> openstack<br>
                <b>Subject:</b> Re: [Openstack] is this a bug in
                milestone-proposed keystone ? (cannotget endpoint-list,
                nor create endpoint)<u></u><u></u></span></p>
            <p class="MsoNormal"><u></u> <u></u></p>
            <p class="MsoNormal">hi,<br>
              <br>
              I don't know if it is a bug but I come across the same
              problem and wondering how to solve it.<u></u><u></u></p>
            <div>
              <div>
                <p class="MsoNormal"> <u></u><u></u></p>
              </div>
              <div>
                <p class="MsoNormal"> <u></u><u></u></p>
              </div>
              <div>
                <div>
                  <p class="MsoNormal"><span>------------------ Original ------------------<u></u><u></u></span></p>
                </div>
                <div>
                  <div>
                    <p class="MsoNormal" style="background:#efefef"><b><span style="font-size:9.0pt">From: </span></b><span style="font-size:9.0pt"> "Pierre
                        Amadio"<<a href="mailto:pierre.amadio@canonical.com" target="_blank">pierre.amadio@canonical.com</a>>;<u></u><u></u></span></p>
                  </div>
                  <div>
                    <p class="MsoNormal" style="background:#efefef"><b><span style="font-size:9.0pt">Date: </span></b><span style="font-size:9.0pt"> Sun, Mar
                        25, 2012 04:35 AM<u></u><u></u></span></p>
                  </div>
                  <div>
                    <p class="MsoNormal" style="background:#efefef"><b><span style="font-size:9.0pt">To: </span></b><span style="font-size:9.0pt"> "openstack"<<a href="mailto:openstack@lists.launchpad.net" target="_blank">openstack@lists.launchpad.net</a>>;
                        <u></u><u></u></span></p>
                  </div>
                  <div>
                    <p class="MsoNormal" style="background:#efefef"><b><span style="font-size:9.0pt">Subject: </span></b><span style="font-size:9.0pt"> [Openstack]
                        is this a bug in milestone-proposed keystone ?
                        (cannotget endpoint-list, nor create endpoint)<u></u><u></u></span></p>
                  </div>
                </div>
                <div>
                  <p class="MsoNormal"><span style> <u></u><u></u></span></p>
                </div>
                <p class="MsoNormal"><span style>Hi there
                    !<br>
                    <br>
                    I wanted to give a try to the milestone-proposed
                    branch of keystone and<br>
                    got stuck quite fast.<br>
                    <br>
                    I am not sure if i hit a bug and should report it,
                    or if i'm doing<br>
                    something wrong.<br>
                    <br>
                    With previous version of keystone (read packaged on
                    ubuntu precise), i<br>
                    was able to create endpoint the following way once
                    keystone has been<br>
                    installed:<br>
                    <br>
                    1) setting some env variables:<br>
                    export KEYSTONE_IP=192.168.122.102 # IP of your
                    keystone API server<br>
                    export SERVICE_ENDPOINT=<a href="http://$KEYSTONE_IP:35357/v2.0/" target="_blank">http://$KEYSTONE_IP:35357/v2.0/</a><br>
                    export SERVICE_TOKEN=999888777666<br>
                    export NOVA_PUBLIC_URL="<a href="http://$NOVA_IP:8774/v1.1/%%28tenant_id%29s" target="_blank">http://$NOVA_IP:8774/v1.1/%(tenant_id)s</a>"<br>
                    export NOVA_ADMIN_URL=$NOVA_PUBLIC_URL<br>
                    export NOVA_INTERNAL_URL=$NOVA_PUBLIC_URL<br>
                    <br>
                    2) creating services:<br>
                    keystone service-create --name nova --type compute
                    --description<br>
                    'OpenStack Compute Service'<br>
                    <br>
                    keystone service-create --name swift --type
                    object-store --description<br>
                    'OpenStack Storage Service'<br>
                    <br>
                    keystone service-create --name glance --type image
                    --description<br>
                    'OpenStack Image Service'<br>
                    <br>
                    keystone service-create --name keystone --type
                    identity --description<br>
                    'OpenStack Identity Service'<br>
                    <br>
                    3) creating an endpoint for those services, starting
                    with the compute<br>
                    service:<br>
                    <br>
                    ID=$(keystone service-list | grep -i compute | awk
                    '{print $2}')<br>
                    <br>
                    <br>
                    keystone endpoint-create --region RegionOne
                    --service_id $ID --publicurl<br>
                    $NOVA_PUBLIC_URL --adminurl $NOVA_ADMIN_URL
                    --internalurl $NOVA_INTERNAL_URL<br>
                    <br>
                    When i run this command with milestone-proposed, i
                    experience the following:<br>
                    <br>
                    No handlers could be found for logger
                    "keystoneclient.client"<br>
                    The action you have requested has not been
                    implemented. (HTTP 501)<br>
                    <br>
                    <br>
                    Strangely enough, i experience a similar error
                    message when running a<br>
                    simple "keystone endpoint-list" whereas command such
                    as "keystone<br>
                    user-list" works all right.<br>
                    <br>
                    <br>
                    here is what i have in the keystone logs when trying
                    "endpoint-list":<br>
                    <br>
                    2012-03-24 20:30:09    DEBUG [routes.middleware]
                    Matched GET /endpoints<br>
                    2012-03-24 20:30:09    DEBUG [routes.middleware]
                    Route path:<br>
                    '{path_info:.*}', defaults: {'controller':<br>
                    <keystone.contrib.admin_crud.core.CrudExtension
                    object at 0x2b215d0>}<br>
                    2012-03-24 20:30:09    DEBUG [routes.middleware]
                    Match dict:<br>
                    {'controller':
                    <keystone.contrib.admin_crud.core.CrudExtension
                    object at<br>
                    0x2b215d0>, 'path_info': '/endpoints'}<br>
                    2012-03-24 20:30:09    DEBUG [routes.middleware]
                    Matched GET /endpoints<br>
                    2012-03-24 20:30:09    DEBUG [routes.middleware]
                    Route path:<br>
                    '/endpoints', defaults: {'action': u'get_endpoints',
                    'controller':<br>
                    <keystone.catalog.core.EndpointController object
                    at 0x2b21210>}<br>
                    2012-03-24 20:30:09    DEBUG [routes.middleware]
                    Match dict: {'action':<br>
                    u'get_endpoints', 'controller':<br>
                    <keystone.catalog.core.EndpointController object
                    at 0x2b21210>}<br>
                    2012-03-24 20:30:09    DEBUG [keystone.common.wsgi]
                    arg_dict: {}<br>
                    2012-03-24 20:30:09  WARNING [keystone.common.wsgi]
                    The action you have<br>
                    requested has not been implemented.<br>
                    2012-03-24 20:30:09    DEBUG [keystone.common.wsgi]
                    ********************<br>
                    RESPONSE HEADERS ********************<br>
                    2012-03-24 20:30:09    DEBUG [keystone.common.wsgi]
                    Content-Type =<br>
                    application/json<br>
                    2012-03-24 20:30:09    DEBUG [keystone.common.wsgi]
                    Vary = X-Auth-Token<br>
                    2012-03-24 20:30:09    DEBUG [keystone.common.wsgi]
                    Content-Length = 109<br>
                    2012-03-24 20:30:09    DEBUG [keystone.common.wsgi]<br>
                    2012-03-24 20:30:09    DEBUG [keystone.common.wsgi]
                    ********************<br>
                    RESPONSE BODY ********************<br>
                    <br>
                    <br>
                    I try to add some debug in<br>
                    keystone.catalog.core.EndpointController.get_endpoints()
                    method:<br>
                    <br>
                        def get_endpoints(self, context):<br>
                            LOG.debug("PLOP get_endpoints")<br>
                            self.assert_admin(context)<br>
                            LOG.debug("PLOP STILL HERE")      # <=
                    LAST DEBUG LINE<br>
                            endpoint_list =
                    self.catalog_api.list_endpoints(context)<br>
                            LOG.debug("SO, how does endpoint_list looks
                    like ?")<br>
                            for i in endpoint_list:<br>
                                LOG.debug("PLOP: '%s'",s)<br>
                            endpoint_refs =
                    [self.catalog_api.get_endpoint(context, e)<br>
                                             for e in endpoint_list]<br>
                            LOG.debug("PLOP THIS IS THE END")<br>
                            return {'endpoints': endpoint_refs}<br>
                    <br>
                    So, as i do not see anything after "PLOP STILL
                    HERE", i am assuming<br>
                    something is wrong in the
                    catalog_api.list_endpoints() method.<br>
                    <br>
                    However, i do not understand exactly where it is
                    implemented.<br>
                    catalog_api is a Manager instance, wich seems to be
                    a subclass of<br>
                    Manager() defined in
                    keystone/keystone/common/manager.py but i am lost<br>
                    with the wrapping magic that occurs there.<br>
                    <br>
                    So, is this a bug that i should file ?<br>
                    <br>
                    <br>
                    <br>
                    <br>
                    <br>
                    <br>
                    _______________________________________________<br>
                    Mailing list: <a href="https://launchpad.net/" target="_blank">https://launchpad.net/</a>‾openstack<br>
                    Post to     : <a href="mailto:openstack@lists.launchpad.net" target="_blank">openstack@lists.launchpad.net</a><br>
                    Unsubscribe : <a href="https://launchpad.net/" target="_blank">https://launchpad.net/</a>‾openstack<br>
                    More help   : <a href="https://help.launchpad.net/ListHelp" target="_blank">https://help.launchpad.net/ListHelp</a><u></u><u></u></span></p>
              </div>
            </div>
          </div>
        </div>
      </blockquote>
      <blockquote type="cite">
        <div><span>_______________________________________________</span><br>
          <span>Mailing list: <a href="https://launchpad.net/%7Eopenstack" target="_blank">https://launchpad.net/~openstack</a></span><br>
          <span>Post to     : <a href="mailto:openstack@lists.launchpad.net" target="_blank">openstack@lists.launchpad.net</a></span><br>
          <span>Unsubscribe : <a href="https://launchpad.net/%7Eopenstack" target="_blank">https://launchpad.net/~openstack</a></span><br>
          <span>More help   : <a href="https://help.launchpad.net/ListHelp" target="_blank">https://help.launchpad.net/ListHelp</a></span><br>
        </div>
      </blockquote>
      <br>
      <fieldset></fieldset>
      <br>
      <pre>_______________________________________________
Mailing list: <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~openstack</a>
Post to     : <a href="mailto:openstack@lists.launchpad.net" target="_blank">openstack@lists.launchpad.net</a>
Unsubscribe : <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~openstack</a>
More help   : <a href="https://help.launchpad.net/ListHelp" target="_blank">https://help.launchpad.net/ListHelp</a>
</pre>
    </blockquote>
    <br>
  </div></div></div>

<br>_______________________________________________<br>
Mailing list: <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~openstack</a><br>
Post to     : <a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a><br>
Unsubscribe : <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~openstack</a><br>
More help   : <a href="https://help.launchpad.net/ListHelp" target="_blank">https://help.launchpad.net/ListHelp</a><br>
<br></blockquote></div><br></div>