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.