Openstack梯形失真问题

我有keystone问题,keystoneconfiguration了用户nova,一目了然和pipe理员用户,他们的终点也被定义。 表演时

keystone token-get 

它显示的是令牌,但对于像

 keystone user-list 

其显示

 No handlers could be found for logger "keystoneclient.client" Unable to communicate with identity service: 404 Not Found The resource could not be found. . (HTTP 404) 

但设置这些envvariables后它工作

 export SERVICE_ENDPOINT=http://192.168.10.15:35357/v2.0 export SERVICE_TOKEN=token 

但之后为keystone令牌 – 得到它的显示

 'Client' object has no attribute 'service_catalog' 

为什么会这样呢?如何解决任何想法

好的,这是一个潜在的答案。 可能不是答案。

但是,听起来像你遇到的问题是一个连接问题的Keystone的“pipe理”API。

Keystone客户端通常会通过从“服务”API获取令牌来开始查询。 该API默认为端口5000,可在keystone conf文件中configuration。 它也将获取一个服务目录,用来查找pipe理API端点。

然后执行pipe理function,它将查询“pipe理”API。 该API默认为35357,可在keystone conf文件中configuration。

因此,如果“pipe理员”API不可用,则会显示您所看到的行为。

有两种方法可以validation您的“Admin”API是否存在连接问题。

最有用的方法是为keystone客户端设置debugging标志。 它会提出有关正在进行的查询的额外信息。

例子(从扔掉的devstack):

 stack@devstack:~/devstack$ keystone --debug user-list REQ: curl -i http://192.168.122.236:5000/v2.0/tokens -X POST -H "Content-Type: application/json" -H "User-Agent: python-keystoneclient" REQ BODY: {"auth": {"tenantName": "demo", "passwordCredentials": {"username": "admin", "password": "stack"}}} RESP: [200] {'date': 'Wed, 20 Mar 2013 23:25:09 GMT', 'content-type': 'application/json', 'content-length': '5983', 'vary': 'X-Auth-Token'} RESP BODY: {"access": {"token": {"issued_at": "2013-03-20T23:25:09.917153", "expires": "2013-03-21T23:25:09Z", "id": "MIIKjAYJKoZIhvcNAQcCoIIKfTCCCnkCAQExCTAHBgUrDgMCGjCCCWUGCSqGSIb-zCB-AIBATBcMFcxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIEwVVbnNldDEOMAwGA1UEBxMFVW5zZXQxDjAMBgNVBAoTBVVuc2V0MRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20CAQEwBwYFKw4DAhowDQYJKoZIhvcNAQEBBQAEgYB1E4lLmIkSot4Yggwjs3p71EXg9vMan0wX4SM5sFgsH6GrJBwJ4LPzG7HQX8wNMYaa6qMN5EWowx6+RktGHYiBOjGxGFPpWIEUcU0loAINa8QkrPMUfDfIvJDuaXR0eTEQQsaujmgqqjD9N5KuZ+t30i324T2dowD8ihdqEjGJKQ==", "tenant": {"description": null, "enabled": true, "id": "45e7cd57b9ef4871891f53e75aeb5727", "name": "demo"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://192.168.122.236:8774/v2/45e7cd57b9ef4871891f53e75aeb5727", "region": "RegionOne", "internalURL": "http://192.168.122.236:8774/v2/45e7cd57b9ef4871891f53e75aeb5727", "id": "56f826e61af94daa88a2dbf8c9cd07cb", "publicURL": "http://192.168.122.236:8774/v2/45e7cd57b9ef4871891f53e75aeb5727"}], "endpoints_links": [], "type": "compute", "name": "nova"}, {"endpoints": [{"adminURL": "http://192.168.122.236:3333", "region": "RegionOne", "internalURL": "http://192.168.122.236:3333", "id": "666e71bd93f04b1c9ac081db03750fcb", "publicURL": "http://192.168.122.236:3333"}], "endpoints_links": [], "type": "s3", "name": "s3"}, {"endpoints": [{"adminURL": "http://192.168.122.236:9292", "region": "RegionOne", "internalURL": "http://192.168.122.236:9292", "id": "5d1d026917254d5ab5b9d4d556e6800e", "publicURL": "http://192.168.122.236:9292"}], "endpoints_links": [], "type": "image", "name": "glance"}, {"endpoints": [{"adminURL": "http://192.168.122.236:8776/v1/45e7cd57b9ef4871891f53e75aeb5727", "region": "RegionOne", "internalURL": "http://192.168.122.236:8776/v1/45e7cd57b9ef4871891f53e75aeb5727", "id": "02cbbdcbcea748679ffa90305ff96e19", "publicURL": "http://192.168.122.236:8776/v1/45e7cd57b9ef4871891f53e75aeb5727"}], "endpoints_links": [], "type": "volume", "name": "cinder"}, {"endpoints": [{"adminURL": "http://192.168.122.236:8773/services/Admin", "region": "RegionOne", "internalURL": "http://192.168.122.236:8773/services/Cloud", "id": "6234f3763c5f48eaa0f41156ace90ea2", "publicURL": "http://192.168.122.236:8773/services/Cloud"}], "endpoints_links": [], "type": "ec2", "name": "ec2"}, {"endpoints": [{"adminURL": "http://192.168.122.236:35357/v2.0", "region": "RegionOne", "internalURL": "http://192.168.122.236:5000/v2.0", "id": "0831b45f2f4b4a80ada0782372258b8c", "publicURL": "http://192.168.122.236:5000/v2.0"}], "endpoints_links": [], "type": "identity", "name": "keystone"}], "user": {"username": "admin", "roles_links": [], "id": "71b6e3604b744b90bdbb948b80a3e678", "roles": [{"name": "admin"}], "name": "admin"}, "metadata": {"is_admin": 0, "roles": ["07ac476e82904c5dbe1dd82f1987f019"]}}} REQ: curl -i http://192.168.122.236:35357/v2.0/users -X GET -H "User-Agent: python-keystoneclient" -H "X-Auth-Token: MIIKjAYJKoZIhvcNAQcCoIIKfTCCCnkCAQExCTAHBgUrDgMCGjCCCWUGCSqGSIb-zCB-AIBATBcMFcxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIEwVVbnNldDEOMAwGA1UEBxMFVW5zZXQxDjAMBgNVBAoTBVVuc2V0MRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20CAQEwBwYFKw4DAhowDQYJKoZIhvcNAQEBBQAEgYB1E4lLmIkSot4Yggwjs3p71EXg9vMan0wX4SM5sFgsH6GrJBwJ4LPzG7HQX8wNMYaa6qMN5EWowx6+RktGHYiBOjGxGFPpWIEUcU0loAINa8QkrPMUfDfIvJDuaXR0eTEQQsaujmgqqjD9N5KuZ+t30i324T2dowD8ihdqEjGJKQ==" RESP: [200] {'date': 'Wed, 20 Mar 2013 23:25:09 GMT', 'content-type': 'application/json', 'content-length': '863', 'vary': 'X-Auth-Token'} RESP BODY: {"users": [{"name": "alt_demo", "id": "00f1ffdaa14f448da11630edc3503e92", "tenantId": null, "enabled": true, "email": "[email protected]"}, {"name": "demo", "id": "445391568d1d4b619e7919462deeab63", "tenantId": null, "enabled": true, "email": "[email protected]"}, {"name": "admin", "id": "71b6e3604b744b90bdbb948b80a3e678", "tenantId": null, "enabled": true, "email": "[email protected]"}, {"name": "glance", "id": "7971cdee1ac0496499ea87828a24309b", "tenantId": "a5c7110f23ac495e805d4ebeefeff0b6", "enabled": true, "email": "[email protected]"}, {"name": "nova", "id": "a2dda6286156444fa44308b43c934c89", "tenantId": "a5c7110f23ac495e805d4ebeefeff0b6", "enabled": true, "email": "[email protected]"}, {"name": "cinder", "id": "c5340dffe39d4ae4b17e2441bf1392d5", "tenantId": "a5c7110f23ac495e805d4ebeefeff0b6", "enabled": true, "email": "[email protected]"}]} +----------------------------------+----------+---------+----------------------+ | id | name | enabled | email | +----------------------------------+----------+---------+----------------------+ | 71b6e3604b744b90bdbb948b80a3e678 | admin | True | [email protected] | | 00f1ffdaa14f448da11630edc3503e92 | alt_demo | True | [email protected] | | c5340dffe39d4ae4b17e2441bf1392d5 | cinder | True | [email protected] | | 445391568d1d4b619e7919462deeab63 | demo | True | [email protected] | | 7971cdee1ac0496499ea87828a24309b | glance | True | [email protected] | | a2dda6286156444fa44308b43c934c89 | nova | True | [email protected] | +----------------------------------+----------+---------+----------------------+ 

这里的好处是你会看到它试图连接到pipe理API的地方。 在为pipe理APIselectAPI端点时,它将查询服务API的服务目录。 因此,请确保您的服务目录将人员指向适用于keystone Admin API的正确API端点。

或者,您可以简单地strace梯形客户端查询。

有关Keystone提供的服务和pipe理API之间的function差异的更多信息:

http://docs.openstack.org/developer/keystone/api_curl_examples.html

 root@sc9200mit7-kvm:/etc/keystone# keystone --os-username=admin --os-password=Chennai123 --os-auth-url=http://<IPADDRESS>:35357/v2.0 token-get 'Client' object has no attribute 'service_catalog' 

重新启动keystone服务,修复如下问题

 root@sc9200mit7-kvm:~# service keystone restart keystone stop/waiting keystone start/running, process 14423 root@sc9200mit7-kvm:~# keystone --os-username=admin --os-password=Chennai123 --os-tenant-name=chennai --os-auth-url=http://<IPADDRESS>:35357/v2.0 token-get +-----------+----------------------------------+ | Property | Value | +-----------+----------------------------------+ | expires | 2013-11-10T12:22:50Z | | id | d355c0aeadc2419e929d4d50fcc9b354 | | tenant_id | a600776ea11a41f2acf4a03e5d3baea0 | | user_id | a8490f832d7243b9a40d576d9c649fa8 | +-----------+----------------------------------+