Skip to content

Commit 1095c31

Browse files
committed
Fix disk sizes
1 parent 2998e47 commit 1095c31

1 file changed

Lines changed: 29 additions & 10 deletions

File tree

module/sources/openstack/connection.py

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ class OpenStackHandler(SourceBase):
8484
"region": None,
8585
"user_domain": None,
8686
"project_domain": None,
87-
"group_name": "Openstack"
87+
"group_name": "Openstack",
8888
"validate_tls_certs": False,
8989
"cluster_exclude_filter": None,
9090
"cluster_include_filter": None,
@@ -163,6 +163,7 @@ def __init__(self, name=None, settings=None, inventory=None):
163163
self.init_successful = True
164164
self.permitted_clusters = dict()
165165
self.cluster_host_map = dict()
166+
self.volume_map = dict()
166167
self.processed_host_names = dict()
167168
self.processed_vm_names = dict()
168169
self.processed_vm_uuid = list()
@@ -354,14 +355,18 @@ def apply(self):
354355
for availability_zone in availability_zones:
355356
self.add_cluster(availability_zone)
356357

357-
servers = self.session.compute.servers(details=True, all_projects=True)
358-
for server in servers:
359-
self.add_virtual_machine(server)
360-
361358
hypervisors = self.session.compute.hypervisors(details=True)
362359
for hypervisor in hypervisors:
363360
self.add_host(hypervisor)
364361

362+
volumes = self.session.block_storage.volumes(details=True, all_projects=True)
363+
for volume in volumes:
364+
self.add_volume(volume)
365+
366+
servers = self.session.compute.servers(details=True, all_projects=True)
367+
for server in servers:
368+
self.add_virtual_machine(server)
369+
365370
self.update_basic_data()
366371

367372
@staticmethod
@@ -951,7 +956,7 @@ def add_host(self, obj):
951956
if log.level == DEBUG3:
952957
try:
953958
log.info("Cluster data")
954-
dump(obj.service_details)
959+
dump(obj.service_details.to_dict())
955960
except Exception as e:
956961
log.error(e)
957962

@@ -1043,9 +1048,19 @@ def add_host(self, obj):
10431048

10441049
return
10451050

1051+
def add_volume(self, obj):
1052+
"""
1053+
Parse OpenStack volume and store in in a map.
1054+
"""
1055+
1056+
id = obj.id
1057+
size = obj.size
1058+
1059+
self.volume_map[id] = size
1060+
10461061
def add_virtual_machine(self, obj):
10471062
"""
1048-
Parse a OpenStack VM add to NetBox once all data is gathered.
1063+
Parse a OpenStack VM add to NetBox once all data is gathered.
10491064
10501065
Parameters
10511066
----------
@@ -1109,7 +1124,11 @@ def add_virtual_machine(self, obj):
11091124
if platform is not None:
11101125
platform = self.get_object_relation(platform, "vm_platform_relation", fallback=platform)
11111126

1112-
disk = int(obj.flavor["disk"])
1127+
disk = 0
1128+
for volume in obj.attached_volumes:
1129+
volid = volume["id"]
1130+
size = self.volume_map[volid]
1131+
disk += int(size)
11131132

11141133
annotation = None
11151134
if bool(self.skip_vm_comments) is False:
@@ -1145,9 +1164,9 @@ def add_virtual_machine(self, obj):
11451164
nic_ips[network] = list()
11461165
for address in addresses:
11471166
nic_ips[network].append(address["addr"])
1148-
if address["version"] == 4:
1167+
if int(address["version"]) == 4:
11491168
vm_primary_ip4 = address["addr"]
1150-
if address["version"] == 6:
1169+
if int(address["version"]) == 6:
11511170
vm_primary_ip6 = address["addr"]
11521171
full_name = unquote(f"vNIC{count} ({network})")
11531172
vm_nic_data = {

0 commit comments

Comments
 (0)