首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得openstacksdk返回的`openstack.compute.v2.server.ServerDetail`数据?

如何获得openstacksdk返回的`openstack.compute.v2.server.ServerDetail`数据?
EN

Stack Overflow用户
提问于 2017-11-29 09:33:45
回答 1查看 467关注 0票数 0

如何获得openstacksdk返回的openstack.compute.v2.server.ServerDetail数据?

下面是openstack.compute.v2.server.ServerDetail实例数据:

代码语言:javascript
复制
[openstack.compute.v2.server.ServerDetail(
OS-EXT-AZ:availability_zone=, 
key_name=None, 
hostId=, 
os-extended-volumes:volumes_attached=[], 
OS-SRV-USG:launched_at=None, 
OS-EXT-STS:vm_state=error, 
flavor={'id': '5c5dca53-9f96-4851-afd4-60de75faf896', 'links': [{'href': 'http://controller:8774/233cf23186bf4c52afc464ee008cdf7f/flavors/5c5dca53-9f96-4851-afd4-60de75faf896', 'rel': 'bookmark'}]}, updated=2017-11-27T10:29:50Z, 
accessIPv4=, 
image={'id': '60f4005e-5daf-4aef-a018-4c6b2ff06b40', 'links': [{'href': 'http://controller:8774/233cf23186bf4c52afc464ee008cdf7f/images/60f4005e-5daf-4aef-a018-4c6b2ff06b40', 'rel': 'bookmark'}]}, 
created=2017-11-27T10:29:49Z, 
metadata={}, 
links=[{'href': 'http://controller:8774/v2.1/233cf23186bf4c52afc464ee008cdf7f/servers/3db46b7b-a641-49ce-97ef-f17c9a11f58a', 'rel': 'self'}, {'href': 'http://controller:8774/233cf23186bf4c52afc464ee008cdf7f/servers/3db46b7b-a641-49ce-97ef-f17c9a11f58a', 'rel': 'bookmark'}], 
OS-DCF:diskConfig=MANUAL, 
id=3db46b7b-a641-49ce-97ef-f17c9a11f58a, user_id=41bb48ee30e449d5868f7af9e6251156, 
OS-SRV-USG:terminated_at=None, 
name=123456, 
config_drive=, 
accessIPv6=, 
OS-EXT-STS:power_state=0, 
addresses={}, 
OS-EXT-STS:task_state=None, 
status=ERROR, 
tenant_id=233cf23186bf4c52afc464ee008cdf7f),]

您知道,我可以使用instance.property来获取值,下面的server_generator是openstack服务器的生成器:

代码语言:javascript
复制
for sd in server_generator:
    print (sd.addresses)

不过,有两点我是不能处理的:

  1. 如何处理OS-EXT-STS:power_state密钥或os-extended-volumes:volumes_attached密钥?
  2. 当我使用sd.hostId时,会报告错误,说没有hostId。
EN

回答 1

Stack Overflow用户

发布于 2018-03-09 04:34:22

您必须首先使用to_dict函数来获取objcet.then,您可以得到想要的东西。

代码语言:javascript
复制
server_dict = server.to_dict()
## get all keys 
print server_dict.keys()
## get volumes_attached 
print server_dict['volumes_attached']
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47549386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档