Skip to content

Commit 41b393f

Browse files
authored
Merge pull request #113 from lhhyung/master
Ensure proper serialization of Azure VM Scale Set objects
2 parents e779d54 + a77b5e1 commit 41b393f

File tree

2 files changed

+27
-26
lines changed

2 files changed

+27
-26
lines changed

src/plugin/manager/base.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,8 @@ def convert_nested_dictionary(
234234
cloud_svc_dict[key] = value_list
235235
elif isinstance(value, datetime.datetime):
236236
cloud_svc_dict[key] = utils.datetime_to_iso8601(value)
237+
elif isinstance(value, datetime.timedelta):
238+
cloud_svc_dict[key] = str(value)
237239

238240
return cloud_svc_dict
239241

src/plugin/manager/vm_scale_sets/scale_set_manager.py

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -360,31 +360,29 @@ def list_auto_scale_settings(
360360
return auto_scale_settings_list
361361

362362
def get_autoscale_profiles_list(self, autoscale_setting):
363-
profiles_list = list()
364-
for profile in autoscale_setting.profiles:
365-
profile_dict = self.convert_nested_dictionary(profile)
366-
profiles_list.append(profile_dict)
363+
profiles_list = []
364+
365+
profiles = autoscale_setting.get("profiles", [])
366+
367+
if profiles:
368+
for profile in profiles:
369+
profile_dict = self.convert_nested_dictionary(profile)
370+
profiles_list.append(profile_dict)
367371

368372
return profiles_list
369373

370374
def list_virtual_machine_scale_set_power_state(self, autoscale_obj_list):
371-
power_state_dict = dict()
372-
power_state_list = list()
373-
375+
power_state_list = []
374376
for autoscale_setting in autoscale_obj_list:
375-
power_state_dict.update(
376-
{
377-
"location": autoscale_setting.location,
378-
"profiles": self.get_autoscale_profiles_list(
379-
autoscale_setting
380-
), # profiles_list
381-
"enabled": autoscale_setting.enabled,
382-
"name": autoscale_setting.name,
383-
"notifications": autoscale_setting.notifications,
384-
"target_resource_uri": autoscale_setting.target_resource_uri,
385-
"tags": autoscale_setting.tags,
386-
}
387-
)
377+
power_state_dict = {
378+
"location": autoscale_setting.get("location"),
379+
"profiles": self.get_autoscale_profiles_list(autoscale_setting),
380+
"enabled": autoscale_setting.get("enabled"),
381+
"name": autoscale_setting.get("name"),
382+
"notifications": autoscale_setting.get("notifications"),
383+
"target_resource_uri": autoscale_setting.get("target_resource_uri"),
384+
"tags": autoscale_setting.get("tags"),
385+
}
388386

389387
if power_state_dict.get("profiles") is not None:
390388
power_state_dict.update(
@@ -395,6 +393,7 @@ def list_virtual_machine_scale_set_power_state(self, autoscale_obj_list):
395393
}
396394
)
397395
power_state_list.append(power_state_dict)
396+
398397
return power_state_list
399398

400399
@staticmethod
@@ -445,12 +444,10 @@ def get_primary_vnet(network_interface_configurations):
445444

446445
return vnet_id
447446

448-
@staticmethod
449447
def list_auto_scale_settings_obj(
450-
vm_scale_sets_conn, resource_group_name, vm_scale_set_id
448+
self, vm_scale_sets_conn, resource_group_name, vm_scale_set_id
451449
):
452-
auto_scale_settings_obj_list = list()
453-
# all List of the Auto scaling Rules in this resource group
450+
auto_scale_settings_list = []
454451
auto_scale_settings_obj = vm_scale_sets_conn.list_auto_scale_settings(
455452
resource_group=resource_group_name
456453
)
@@ -460,9 +457,11 @@ def list_auto_scale_settings_obj(
460457
auto_scale_setting.target_resource_uri.lower()
461458
== vm_scale_set_id.lower()
462459
):
463-
auto_scale_settings_obj_list.append(auto_scale_setting)
460+
auto_scale_settings_list.append(
461+
self.convert_nested_dictionary(auto_scale_setting)
462+
)
464463

465-
return auto_scale_settings_obj_list
464+
return auto_scale_settings_list
466465

467466
@staticmethod
468467
def get_autoscale_profiles_display(power_state_profiles):

0 commit comments

Comments
 (0)