<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p><font size="+1">Hi Guys:</font></p>
<p><font size="+1">My openstack version is Mitaka. I want to use curl to call openstack API , but I met a issue. Can you help me ?
<br>
</font></p>
<p><font size="+1">[root@ospp9-ctrl1 site-packages(keystone_demo)]# source ~/keystonerc_admin<br>
<br>
[root@ospp9-ctrl1 site-packages(keystone_admin)]# curl -s -X POST $OS_AUTH_URL/tokens -H "Content-Type: application/json" -d '{"auth": {"tenantName": "", "passwordCredentials": {"username": "'"$OS_USERNAME"'", "password": "'"$OS_PASSWORD"'"}}}' | python
-m json.tool<br>
{<br>
"access": {<br>
"metadata": {<br>
"is_admin": 0,<br>
"roles": []<br>
},<br>
"serviceCatalog": [],<br>
"token": {<br>
"audit_ids": [<br>
"RJrDyNfIShyKTmXu5IWZUw"<br>
],<br>
"expires": "2016-12-10T13:12:15Z",<br>
"id": "80b3d146c5614c149ccf983b21d93055",<br>
"issued_at": "2016-12-10T12:12:15.171884Z"<br>
},<br>
"user": {<br>
"id": "ae11a07ef07e47bba4a91d1c3516ac01",<br>
"name": "admin",<br>
"roles": [],<br>
"roles_links": [],<br>
"username": "admin"<br>
}<br>
}<br>
}<br>
[root@ospp9-ctrl1 site-packages(keystone_admin)]# export OS_TOKEN=80b3d146c5614c149ccf983b21d93055<br>
[root@ospp9-ctrl1 site-packages(keystone_admin)]# export OS_PROJECT_ID=e5ec75ca491049b2b3d6758269aad07c<br>
[root@ospp9-ctrl1 site-packages(keystone_admin)]# curl -s -H "X-Auth-Token:$OS_TOKEN"
<a class="moz-txt-link-freetext" href="http://192.168.122.64:8774/v2/e5ec75ca491049b2b3d6758269aad07c/flavors">
http://192.168.122.64:8774/v2/e5ec75ca491049b2b3d6758269aad07c/flavors</a> | python -m json.tool
<br>
{<br>
"badRequest": {<br>
"code": 400,<br>
"message": "Malformed request URL: URL's project_id 'e5ec75ca491049b2b3d6758269aad07c' doesn't match Context's project_id 'None'"<br>
}<br>
}<br>
<br>
[root@ospp9-ctrl1 site-packages(keystone_admin)]# openstack catalog show nova<br>
+-----------+-------------------------------------------------------------------------------+<br>
| Field | Value |<br>
+-----------+-------------------------------------------------------------------------------+<br>
| endpoints | RegionOne |<br>
| | publicURL: <a class="moz-txt-link-freetext" href="http://192.168.122.64:8774/v2/e5ec75ca491049b2b3d6758269aad07c">
http://192.168.122.64:8774/v2/e5ec75ca491049b2b3d6758269aad07c</a> |<br>
| | internalURL: <a class="moz-txt-link-freetext" href="http://192.168.122.64:8774/v2/e5ec75ca491049b2b3d6758269aad07c">
http://192.168.122.64:8774/v2/e5ec75ca491049b2b3d6758269aad07c</a> |<br>
| | adminURL: <a class="moz-txt-link-freetext" href="http://192.168.122.64:8774/v2/e5ec75ca491049b2b3d6758269aad07c">
http://192.168.122.64:8774/v2/e5ec75ca491049b2b3d6758269aad07c</a> |<br>
| | |<br>
| name | nova |<br>
| type | compute |<br>
+-----------+-------------------------------------------------------------------------------+<br>
</font></p>
<p><font size="+1">1. After I deep into the code, and have a question : How to get/set the
</font><font size="+1"><font size="+1">context.project_id? <br>
</font></font></p>
<p><br>
</p>
<p><font size="+1">[root@ospp9-ctrl1 site-packages(keystone_admin)]# vim nova/api/openstack/wsgi.py +721<br>
```python<br>
project_id = action_args.pop("project_id", None)<br>
context = request.environ.get('nova.context')<br>
if (context and project_id and (project_id != context.project_id)):<br>
msg = _("Malformed request URL: URL's project_id '%(project_id)s'"<br>
" doesn't match Context's project_id"<br>
" '%(context_project_id)s'") % \<br>
{'project_id': project_id,<br>
'context_project_id': context.project_id}<br>
return Fault(webob.exc.HTTPBadRequest(explanation=msg))<br>
```<br>
</font></p>
<p>2. Why got empty SeviceCatalog <font size="+1">"serviceCatalog": []" but it is not in official docs
<br>
</font></p>
<a class="moz-txt-link-freetext" href="http://developer.openstack.org/api-guide/quick-start/api-quick-start.html#openstack-api-quick-guide">http://developer.openstack.org/api-guide/quick-start/api-quick-start.html#openstack-api-quick-guide</a><br>
<br>
<pre class="moz-signature" cols="72">--
----------------------------------------------------
Margin Hu
Love Open Source Software.
Mobile: (86) 186-8035-6499
email : <a class="moz-txt-link-abbreviated" href="mailto:jhu_com@outlook.com">jhu_com@outlook.com</a>
github: <a class="moz-txt-link-freetext" href="http://github.com/todaygood">http://github.com/todaygood</a>
---------------------------------------------------</pre>
</body>
</html>