<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>