先拿到project id, 也被称为tenant id:
$ openstack project list --user cranuser8
+----------------------------------+-------+
| ID | Name |
+----------------------------------+-------+
| 6bcb7e7677a5449196fd56565f68fc7f | cran8 |
+----------------------------------+-------+
然后拿到stack name:
$ openstack stack list --property tenant=6bcb7e7677a5449196fd56565f68fc7f --short
+--------------------------------------+--------------------------+----------------------------------+-----------------+
| ID | Stack Name | Project | Stack Status |
+--------------------------------------+--------------------------+----------------------------------+-----------------+
| 6580a49e-d751-4737-baeb-cf9c16744ca2 | cranuser8_rcpautoinstall | 6bcb7e7677a5449196fd56565f68fc7f | CREATE_COMPLETE |
+--------------------------------------+--------------------------+----------------------------------+-----------------+
通常我们用下面命令来删除stack:
openstack stack delete cranuser8_rcpautoinstall
但是,我们今天不这样做,我们来分析一下openstack stack delete
这条命令背后做了什么?
首先,这条命令背后肯定是用到了openstack的restful api。我们可以先用--debug
来看一下。
openstack --debug stack delete cranuser8_rcpautoinstall
然后我们用api来重现一下这条命令:
1 拿令牌
curl -i -d '
{
"auth": {
"identity": {
"methods": ["password"],
"password": {
"user": {
"domain": {"name": "Default"},
"name": "cranuser8",
"password": "systeM!23"
}
}
}
}
}' -H "Content-type: application/json" "http://192.168.54.5:5000/v3/auth/tokens"
令牌在X-Subject-Token中:
HTTP/1.1 201 Created
...
X-Subject-Token: gAAAAABcY8MBRKLwy0cCuAADC926-SDw1tz1RWVG6LJkKWx22gkk5SPfby_oAJDRwtfvEXIXfWPVM_QT9WacmSH6J9W8CTw3_iyqldMDcDXTULfgh4pYZyqCrJBdrCimA4deamsleQRXRCLSZoRbvH7EBn_jhJySf-rLKiIwmiEGJOUcpOi03ZU
...
2 删掉stack
curl -g -i -L -X DELETE http://192.168.54.5:8004/v1/6bcb7e7677a5449196fd56565f68fc7f/stacks/cranuser8_rcpautoinstall -H "Accept: application/json" -H "X-Auth-Token: gAAAAABcY8MBRKLwy0cCuAADC926-SDw1tz1RWVG6LJkKWx22gkk5SPfby_oAJDRwtfvEXIXfWPVM_QT9WacmSH6J9W8CTw3_iyqldMDcDXTULfgh4pYZyqCrJBdrCimA4deamsleQRXRCLSZoRbvH7EBn_jhJySf-rLKiIwmiEGJOUcpOi03ZU"
HTTP/1.1 302 Found
Location: http://192.168.54.5:8004/v1/6bcb7e7677a5449196fd56565f68fc7f/stacks/cranuser8_rcpautoinstall/28d5828f-0d16-4fd6-9891-c97e73724b7c
Content-Length: 401
Content-Type: application/json
x-openstack-request-id: req-ef7d6e2e-3c6c-4f2f-bd19-ef2c57267077
X-Frame-Options: SAMEORIGIN
Strict-Transport-Security: max-age=15768000
HTTP/1.1 204 No Content
x-openstack-request-id: req-c27749cf-a94d-4abd-8b64-8e9a761f55b0
X-Frame-Options: SAMEORIGIN
Strict-Transport-Security: max-age=15768000
通过下面命令可以看到删除已经开始了:
$ openstack stack list --property tenant=6bcb7e7677a5449196fd56565f68fc7f --short
+--------------------------------------+--------------------------+----------------------------------+--------------------+
| ID | Stack Name | Project | Stack Status |
+--------------------------------------+--------------------------+----------------------------------+--------------------+
| 28d5828f-0d16-4fd6-9891-c97e73724b7c | cranuser8_rcpautoinstall | 6bcb7e7677a5449196fd56565f68fc7f | DELETE_IN_PROGRESS |
+--------------------------------------+--------------------------+----------------------------------+--------------------+
网友评论