using curl to debug ironic(2)

本文详细介绍了如何使用curl调试REST API,包括打印JSON和XML数据,并展示了如何通过curl获取ironic服务的数据,以及如何利用python-mjson.tool进行数据格式化输出。此外,还解释了如何通过keystone获取认证令牌并访问服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用curl来调试rest是十分方便高效的

http://www.cnblogs.com/gbyukg/p/3326825.html

这篇文章不错

使用curl打印出来的格式看起来比较乱,这个时候使用

http://blog.youkuaiyun.com/caomiao2006/article/details/19923509

使用 curl http://xxx | python -m json.tool 格式化输出

将打印出来的json和xml数据格式化的显示


要访问某一个服务,比如ironic需要拿到对应token,token是会过期的,24小时


第一步,拿到一个token,也包含该tenant对应tenantid

curl -d '{"auth": {"tenantName": "admin", "passwordCredentials": {"username": "admin", "password": "xxx"}}}' -H "Content-type: application/json" http://xxx:5000/v2.0/tokens | python -m json.tool

更多的信息可以参照上面curl教程中所述,加入更多的参数。


返回的数据中包含:

  "token": {
            "audit_ids": [
                "2fZjgJTlR5ynzgciJBYptQ"
            ],
            "expires": "2015-03-19T10:03:12Z",
            "id": "f3df359ca33f40af9990aceb82574f71",
            "issued_at": "2015-03-19T09:03:12.550554",
            "tenant": {
                "description": "admin tenant",
                "enabled": true,
                "id": "d63f0cca2367489780c2e29e1034c02b",
                "name": "admin"
            }
        },

第二步,拿着这个token去访问ironic对应的服务:

 curl -H "X-Auth-Token:f3df359ca33f40af9990aceb82574f71" http://xxx:6385/v1/ports/detail | python -m json.tool

输出为:

{
    "ports": [
        {
            "address": "00:90:fa:6c:7d:7c",
            "created_at": "2015-03-19T04:46:03+00:00",
            "extra": {},
            "links": [
                {
                    "href": "http://xxx:6385/v1/ports/9f10c0b8-4400-4e04-8db0-e42c7f689425",
                    "rel": "self"
                },
                {
                    "href": "http://xxx:6385/ports/9f10c0b8-4400-4e04-8db0-e42c7f689425",
                    "rel": "bookmark"
                }
            ],
            "node_uuid": "8cdc7750-9d66-4353-ab3e-99fe82e739e2",
            "updated_at": null,
            "uuid": "9f10c0b8-4400-4e04-8db0-e42c7f689425"
        }
    ]
}

新的keystone直接在拿token的时候舒服tenantname,比原来的keystone需要先拿到unscoped的tenant的token再拿scoped的token方便。如果没记错的话:)

ps:

对于ironic使用pecan,方法

def get_all(self, node_uuid=None, address=None, marker=None, limit=None,sort_key='id', sort_dir='asc'):

对应的rest call是:

 curl -H "X-Auth-Token:791d6350c9f74d6f8d1fdce28e9c768a" http://xxxx:6385/v1/ports/?node_uuid=8cdc7750-9d66-4353-ab3e-99fe82e739e2 | python -m json.tool

方法 def get_one(self, port_uuid): 对应rest call是:

curl -H "X-Auth-Token:791d6350c9f74d6f8d1fdce28e9c768a" http://xxxx:6385/v1/ports/9f10c0b8-4400-4e04-8db0-e42c7f689425 | python -m json.tool



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值