Как сериализовать openstack.compute.v2.server.ServerDetail?

Как сериализовать openstack.compute.v2.server.ServerDetail?

Я использую openstacksdk для разработки собственного приложения openstack.

Но когда я получу генератор моего соединения:

user_conn = UserOpenstackConn()
openstack_servers_gen = user_conn.conn.compute.servers()

Я могу использовать list() для преобразования openstack_servers_gen в список:

: [openstack.compute.v2.server.ServerDetail (OS-EXT-AZ: доступность_зоны =, имя_ключа = нет, hostId=, os-extended-объемы: volume_attached=[], OS-SRV-USG:launch_at= нет, ОС -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 '}]}, обновлено = 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 '' bookmark '' 'bookmark', 'bookmark' rel ', bookmark' bookmark '' ' }, создан =2017-11-27T10:29:49Z, метаданные ={}, ссылки = [{'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 ' bookmark ' rel 'rel' rel '}], OS-DCF:diskConfig=MANUAL, id=3db46b7b-a641-49ce-97ef-f17c9a11f58a, user_id=41bb48ee30e449d5868f7af9e6251156, OS-SRV-USG:terminated_at= нет, имя =123456, config_drive=, accessIPv6=, OS-EXT-STS:power_state=0, адреса = power_state = 0, адреса = power_state = 0, адреса = power_state = 0, адреса = power_state = 0, адреса = power_state = 0, адреса = power_state = 0, адреса = power_state = 0, адреса = power_state = 0, адреса = power_state = 0, адреса = power_state = 0, address = {{}, address = { -STS: task_state = Нет, статус = ОШИБКА, tenant_id = 233cf23186bf4c52afc464ee008cdf7f), openstack.compute.v2.server.ServerDetail (OS-EXT-AZ: Availability_zone=, имя_ключа = нет, тома hostId =, тома host_d =, тома хоста: тома: расширенные тома: расширенные объемы: [], OS-SRV-USG: launch_at= Нет, OS-EXT-STS:vm_state= ошибка, flavor = {'id': '5c5dca53-9f96-4851-afd4-60de75faf896', 'links': [{'href ':' http://controller:8774/233cf23186bf4c52afc464ee008cdf7f/flavors/5c5dca53-9f96-4851-afd4-60de75faf896 ',' rel ':' bookmark '}]}, обновлено = 2017-11-27T10: 27: 42Z, accessIPv4 =, image = {'id': '60f4005e-5daf-4aef-a018-4c6b2ff06b40', 'links': [{'href': ' http://controller:8774/233cf23186bf4c52afc464ee008cdf7f/images/60f4005e-5daf-4aef-a018-4c6b2ff06b40 ',' rel ':' bookmark '}]}, созданный =2017-11-27T10:27:41Z, метаданные ={}, ссылки = [{' href ':' http: // controller: 8774 / v2.1 / 233cf231 http://controller:8774/v2.1/233cf23186bf4c52afc464ee008cdf7f/servers/721467ac-440f-4784-b825-f6155c65abee ',' rel ':' self '}, {' href ':' http://controller:8774/233cf23186bf4c52afc464ee008.......

Но как я могу сделать его сериализуемым в моем проекте?

Например, если я пишу Сериализатор, чтобы отобразить его, я не знаю, что делать с нижним ключом:

os-extended-volumes:volumes_attached

РЕДАКТИРОВАТЬ-1 х

Я открываю еще один пост, который может быть связан с этим постом:

Как сериализовать openstack.compute.v2.server.ServerDetail?

1 ответ

Когда я слышу сериализатор в Python, я сразу думаю о рассоле, но, возможно, есть другой способ. Раньше это было с SDK, который вы могли бы повторно воспроизвести, возразить и воссоздать его с этим. Я не уверен, что это все еще работает, должно. Другая вещь, которая приходит на ум, это просто преобразование в json, но в этом случае вы можете потерять некоторые данные, которые будут в URL. Это зависит от того, что вам нужно на другой стороне.

Другие вопросы по тегам