Deepak, The client handles the slashes correctly, but there's still a bit of a bug in the server as there's no matching route without the trailing slash.
Legacy keystone had a trivial URL normalization middleware to handle a similar issue. -Dolph Mathews On Mar 7, 2012, at 6:27 AM, Deepak Garg <deepakgarg.i...@gmail.com> wrote: > @ Dolph, > > It works well for me with or without the traling slash in cases when I > pass the value in cli using the > --endpoint switch or in case when I pass it as an env variable > [SERVICE_ENDPOINT] > > Am I missing something ? > > @ Rafael > > Can you post more details about the configurations and cmds you are using ? > It will be helpful if you also paste the keystone.conf file. > > > > Deepak > > > > 2012/3/7 Rafael Durán Castañeda <rafadurancastan...@gmail.com>: >> El 06/03/12 18:40, Deepak Garg escribió: >> >>> This seems to be solved after this was committed: >>> https://bugs.launchpad.net/keystone/+bug/942485 >>> >>> It was working for me after this. Does your code have the changesets >>> from the above commit ? >>> >>> >>> Cheers, >>> Deepak >>> >>> >>> On Tue, Mar 6, 2012 at 10:00 PM, dming<learne...@gmail.com> wrote: >>>> >>>> hi all: >>>> In keystone Essex Edition. >>>> when I access keystone endpoint http://localhost:5000.It comes >>>> normal >>>> result as : >>>> >>>> <versions><version status="beta" updated="2011-11-19T00:00:00Z" >>>> id="v2.0"><media-types><media-type base="application/json" >>>> type="application/vnd.openstack.identity-v2.0+json"/><media-type >>>> base="application/xml" >>>> type="application/vnd.openstack.identity-v2.0+xml"/></media-types><link >>>> href="http://localhost:5000/v2.0/" rel="self"/><link >>>> >>>> href="http://docs.openstack.org/api/openstack-identity-service/2.0/content/" >>>> type="text/html" rel="describedby"/><link >>>> >>>> href="http://docs.openstack.org/api/openstack-identity-service/2.0/identity-dev-guide-2.0.pdf" >>>> type="application/pdf" rel="describedby"/></version></versions> >>>> >>>> but when I want to access http://localhost:5000/v2.0 ,It comes as follow: >>>> """ >>>> >>>> Traceback (most recent call last): >>>> File "/usr/local/lib/python2.7/dist-packages/eventlet/wsgi.py", line >>>> 336, >>>> in handle_one_response >>>> result = self.application(self.environ, start_response) >>>> File "/usr/local/lib/python2.7/dist-packages/paste/urlmap.py", line >>>> 203, >>>> in __call__ >>>> return app(environ, start_response) >>>> File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, >>>> in >>>> __call__ >>>> resp = self.call_func(req, *args, **self.kwargs) >>>> File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, >>>> in >>>> call_func >>>> return self.func(req, *args, **kwargs) >>>> File >>>> >>>> "/usr/local/lib/python2.7/dist-packages/keystone-2012.1-py2.7.egg/keystone/common/wsgi.py", >>>> line 282, in __call__ >>>> response = request.get_response(self.application) >>>> File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line >>>> 1253, >>>> in get_response >>>> application, catch_exc_info=False) >>>> File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line >>>> 1222, >>>> in call_application >>>> app_iter = application(self.environ, start_response) >>>> File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, >>>> in >>>> __call__ >>>> resp = self.call_func(req, *args, **self.kwargs) >>>> File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, >>>> in >>>> call_func >>>> return self.func(req, *args, **kwargs) >>>> File >>>> >>>> "/usr/local/lib/python2.7/dist-packages/keystone-2012.1-py2.7.egg/keystone/common/wsgi.py", >>>> line 282, in __call__ >>>> response = request.get_response(self.application) >>>> File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line >>>> 1253, >>>> in get_response >>>> application, catch_exc_info=False) >>>> File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line >>>> 1222, >>>> in call_application >>>> app_iter = application(self.environ, start_response) >>>> File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, >>>> in >>>> __call__ >>>> resp = self.call_func(req, *args, **self.kwargs) >>>> File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, >>>> in >>>> call_func >>>> return self.func(req, *args, **kwargs) >>>> File >>>> >>>> "/usr/local/lib/python2.7/dist-packages/keystone-2012.1-py2.7.egg/keystone/common/wsgi.py", >>>> line 282, in __call__ >>>> response = request.get_response(self.application) >>>> File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line >>>> 1253, >>>> in get_response >>>> application, catch_exc_info=False) >>>> File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line >>>> 1222, >>>> in call_application >>>> app_iter = application(self.environ, start_response) >>>> File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, >>>> in >>>> __call__ >>>> resp = self.call_func(req, *args, **self.kwargs) >>>> File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, >>>> in >>>> call_func >>>> return self.func(req, *args, **kwargs) >>>> File >>>> >>>> "/usr/local/lib/python2.7/dist-packages/keystone-2012.1-py2.7.egg/keystone/common/wsgi.py", >>>> line 282, in __call__ >>>> response = request.get_response(self.application) >>>> File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line >>>> 1253, >>>> in get_response >>>> application, catch_exc_info=False) >>>> File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line >>>> 1222, >>>> in call_application >>>> app_iter = application(self.environ, start_response) >>>> File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, >>>> in >>>> __call__ >>>> resp = self.call_func(req, *args, **self.kwargs) >>>> File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, >>>> in >>>> call_func >>>> return self.func(req, *args, **kwargs) >>>> File >>>> >>>> "/usr/local/lib/python2.7/dist-packages/keystone-2012.1-py2.7.egg/keystone/common/wsgi.py", >>>> line 305, in __call__ >>>> resp = req.get_response(self.application) >>>> File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line >>>> 1253, >>>> in get_response >>>> application, catch_exc_info=False) >>>> File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line >>>> 1222, >>>> in call_application >>>> app_iter = application(self.environ, start_response) >>>> File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, >>>> in >>>> __call__ >>>> return resp(environ, start_response) >>>> File "/usr/local/lib/python2.7/dist-packages/routes/middleware.py", >>>> line >>>> 80, in __call__ >>>> config.environ = environ >>>> File "/usr/local/lib/python2.7/dist-packages/routes/__init__.py", line >>>> 22, >>>> in __setattr__ >>>> self.load_wsgi_environ(value) >>>> File "/usr/local/lib/python2.7/dist-packages/routes/__init__.py", line >>>> 51, >>>> in load_wsgi_environ >>>> result = mapper.routematch(path) >>>> File "/usr/local/lib/python2.7/dist-packages/routes/mapper.py", line >>>> 686, >>>> in routematch >>>> raise RoutesException('URL or environ must be provided') >>>> RoutesException: URL or environ must be provided >>>> >>>> """ >>>> But I don't what URL or environ I should provided to It .. >>>> >>>> can anyone help me ?? >>>> >>>> thanks a lot!! >>>> >>>> _______________________________________________ >>>> Mailing list: https://launchpad.net/~openstack >>>> Post to : openstack@lists.launchpad.net >>>> Unsubscribe : https://launchpad.net/~openstack >>>> More help : https://help.launchpad.net/ListHelp >>>> >>> _______________________________________________ >>> Mailing list: https://launchpad.net/~openstack >>> Post to : openstack@lists.launchpad.net >>> Unsubscribe : https://launchpad.net/~openstack >>> More help : https://help.launchpad.net/ListHelp >> >> I'm using master and getting the same error as I pointed at >> https://bugs.launchpad.net/keystone/+bug/942485 >> >> Bye >> >> >> _______________________________________________ >> Mailing list: https://launchpad.net/~openstack >> Post to : openstack@lists.launchpad.net >> Unsubscribe : https://launchpad.net/~openstack >> More help : https://help.launchpad.net/ListHelp > > _______________________________________________ > Mailing list: https://launchpad.net/~openstack > Post to : openstack@lists.launchpad.net > Unsubscribe : https://launchpad.net/~openstack > More help : https://help.launchpad.net/ListHelp _______________________________________________ Mailing list: https://launchpad.net/~openstack Post to : openstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp