Python OpenStack SDK does not return Hypervisor hostname

Anil Jangam anilj.mailing at gmail.com
Tue Jun 23 20:12:22 UTC 2020


I have written a client code as follows.

# Get Hypervisor details
try:
    print(f"+----------------------------------------------------------+")
    print(f"| Hypervisor details                                       |")
    print(f"+----------------------------------------------------------+")
    for hypervisor in conn.list_hypervisors():
        print(f"Hypervisor is: {hypervisor}")
        print(f"Hypervisor status:      {hypervisor.status}")
        print(f"Hypervisor vcpus:       {hypervisor.vcpus_used}")
        print(f"Hypervisor type:        {hypervisor.hypervisor_type}")
        print(f"Hypervisor id:          {hypervisor.id}")
        print(f"Hypervisor state:       {hypervisor.state}")
        print(f"Hypervisor host IP:     {hypervisor.host_ip}")
        print(f"Hypervisor running VMs: {hypervisor.running_vms}")
        print(f"Hypervisor running VMs: {hypervisor.vcpus}")
        print(f"Hypervisor hostname:    {hypervisor.hypervisor_hostname}")

        print(f"")
except EndpointNotFound as exp:
    print("Error: {}".format(exp))
    print(f"")

When I print the 'hypervisor' object itself, most of the values are printed
as shown below, however when I try to access
'hypervisor.hypervisor_hostname', it throws an exception.

+----------------------------------------------------------+
| Hypervisor details                                       |
+----------------------------------------------------------+
Hypervisor is: openstack.compute.v2.hypervisor.Hypervisor(status=enabled,
service={'host': 'cl3-Compute3', 'disabled_reason': None, 'id':
'34db399d-25b9-4004-98b9-2d8bbce7b228'}, vcpus_used=0,
hypervisor_type=QEMU, local_gb_used=0, vcpus=52,
hypervisor_hostname=cl3-Compute3, memory_mb_used=25600, memory_mb=262032,
current_workload=0, state=up, host_ip=192.168.10.116, cpu_info={'arch':
'x86_64', 'model': 'Broadwell', 'vendor': 'Intel', 'features': ['pge',
'avx', 'xsaveopt', 'clflush', 'sep', 'rtm', 'tsc_adjust', 'tsc-deadline',
'dtes64', 'invpcid', 'tsc', 'fsgsbase', 'xsave', 'smap', 'vmx', 'erms',
'xtpr', 'cmov', 'hle', 'smep', 'pcid', 'est', 'pat', 'monitor', 'smx',
'pbe', 'lm', 'msr', 'adx', '3dnowprefetch', 'nx', 'fxsr', 'syscall', 'tm',
'sse4.1', 'pae', 'sse4.2', 'pclmuldq', 'acpi', 'fma', 'vme', 'popcnt',
'mmx', 'osxsave', 'cx8', 'mce', 'de', 'rdtscp', 'ht', 'dca', 'lahf_lm',
'abm', 'rdseed', 'pdcm', 'mca', 'pdpe1gb', 'apic', 'sse', 'f16c', 'pse',
'ds', 'invtsc', 'pni', 'tm2', 'avx2', 'aes', 'sse2', 'ss', 'ds_cpl',
'arat', 'bmi1', 'bmi2', 'ssse3', 'fpu', 'cx16', 'pse36', 'mtrr', 'movbe',
'rdrand', 'x2apic'], 'topology': {'cores': 14, 'cells': 2, 'threads': 2,
'sockets': 1}}, running_vms=0, free_disk_gb=852,
hypervisor_version=2012000, disk_available_least=849, local_gb=852,
free_ram_mb=236432, id=1130407d-5afd-41f9-bc0c-2d7babda3ce7,
location=Munch({'cloud': 'defaults', 'region_name': 'RegionOne', 'zone':
None, 'project': Munch({'id': '6d4f1b107bbf4b94832f7ef72df61ef2', 'name':
'5g', 'domain_id': None, 'domain_name': 'default'})}))
Hypervisor status: enabled
Hypervisor vcpus: 0
Hypervisor type:     QEMU
Hypervisor id: 1130407d-5afd-41f9-bc0c-2d7babda3ce7
Hypervisor state: up
Hypervisor host IP: 192.168.10.116
Hypervisor running VMs: 0
Hypervisor running VMs: 52
Traceback (most recent call last):
  File "/Users/workspace/testprogs/python/opsviz/ops_worker.py", line 321,
in <module>
    main()
  File "/Users/workspace/testprogs/python/opsviz/ops_worker.py", line 317,
in main
    print_servers()
  File "/Users/workspace/testprogs/python/opsviz/ops_worker.py", line 115,
in print_servers
    print(f"Hypervisor hostname: {hypervisor.hypervisor_hostname}")
  File
"/Users/inventory/lib/python3.7/site-packages/openstack/resource.py", line
588, in __getattribute__
    raise e
  File
"/Users/inventory/lib/python3.7/site-packages/openstack/resource.py", line
582, in __getattribute__
    return object.__getattribute__(self, name)
AttributeError: 'Hypervisor' object has no attribute 'hypervisor_hostname'

Is there anything wrong with the use of the API? How do I get the
hypervisor hostname in my application code?

Thank you.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-discuss/attachments/20200623/21af1e15/attachment.html>


More information about the openstack-discuss mailing list