From 7998046cfb911cf733b359d8c3157fd1fa85ec15 Mon Sep 17 00:00:00 2001 From: Dmitriy Smirnov Date: Mon, 10 Jun 2024 16:02:19 +0300 Subject: [PATCH 1/7] Fix return value for DecortController.group_provision method. --- module_utils/decort_utils.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/module_utils/decort_utils.py b/module_utils/decort_utils.py index 073c2c8..18675f1 100644 --- a/module_utils/decort_utils.py +++ b/module_utils/decort_utils.py @@ -4006,10 +4006,11 @@ class DecortController(object): vinses = list_vins, timeoutStart = arg_timeout ) - self.decort_api_call(requests.post, api_url, api_params) + api_resp = self.decort_api_call(requests.post, api_url, api_params) + new_bsgroup_id = int(api_resp.text) self.result['failed'] = False self.result['changed'] = True - return + return new_bsgroup_id def group_delete(self,bs_id,gr_id): From 27e7c2749f7bc868b8c5866f51d26f91fbb61744 Mon Sep 17 00:00:00 2001 From: Dmitriy Smirnov Date: Mon, 10 Jun 2024 17:01:41 +0300 Subject: [PATCH 2/7] Fix adding networks logic in DecortController.group_provision method --- module_utils/decort_utils.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/module_utils/decort_utils.py b/module_utils/decort_utils.py index 18675f1..9a18a5c 100644 --- a/module_utils/decort_utils.py +++ b/module_utils/decort_utils.py @@ -3987,11 +3987,7 @@ class DecortController(object): ): self.result['waypoints'] = "{} -> {}".format(self.result['waypoints'], "group_provision") - - list_vins= list() - for net in arg_network: - if net['type'] == 'VINS': - list_vins.append(net['id']) + api_url = "/restmachine/cloudapi/bservice/groupAdd" api_params = dict( serviceId = bs_id, @@ -4003,7 +3999,8 @@ class DecortController(object): imageId = arg_image_id, driver = arg_driver, role = arg_role, - vinses = list_vins, + vinses = [n['id'] for n in arg_network if n['type'] == 'VINS'], + extnets = [n['id'] for n in arg_network if n['type'] == 'EXTNET'], timeoutStart = arg_timeout ) api_resp = self.decort_api_call(requests.post, api_url, api_params) From 3a2d9904cf663a32150ab54dbc3972b93cc81f38 Mon Sep 17 00:00:00 2001 From: Dmitriy Smirnov Date: Tue, 11 Jun 2024 12:46:57 +0300 Subject: [PATCH 3/7] Update DecortController.group_find method logic for >=3.8.6 Dynamix version. --- module_utils/decort_utils.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/module_utils/decort_utils.py b/module_utils/decort_utils.py index 9a18a5c..9290b37 100644 --- a/module_utils/decort_utils.py +++ b/module_utils/decort_utils.py @@ -3868,11 +3868,12 @@ class DecortController(object): self.result['waypoints'] = "{} -> {}".format(self.result['waypoints'], "group_find") if group_id == 0: - try: - i = bs_info['groupsName'].index(group_name) - except: - return 0,None - group_id = int(bs_info['groups'][i]) + for group in bs_info['groups']: + if group['name'] == group_name: + return self._group_get_by_id(bs_id=bs_id, + g_id=group['id']) + return 0, None + return self._group_get_by_id(bs_id,group_id) def group_state(self,bs_id,gr_id,desired_state): From f22be4fe08755f8e05b176032142e5e1b9563b23 Mon Sep 17 00:00:00 2001 From: Dmitriy Smirnov Date: Tue, 11 Jun 2024 14:16:23 +0300 Subject: [PATCH 4/7] Add default value '' for 'role' parameter in decort_group module. --- library/decort_group.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/decort_group.py b/library/decort_group.py index 8162f0d..f8a1f9a 100644 --- a/library/decort_group.py +++ b/library/decort_group.py @@ -206,7 +206,7 @@ class decort_group(DecortController): bservice_id=dict(type='int', required=True), count=dict(type='int', required=True), timeoutStart=dict(type='int', required=False), - role=dict(type='str', required=False), + role=dict(type='str', required=False, default=''), cpu=dict(type='int', required=False), ram=dict(type='int', required=False), networks=dict(type='list', default=[], required=False), From 190a1d302c710c83f94abf7a15d7cea0b158da9e Mon Sep 17 00:00:00 2001 From: Dmitriy Smirnov Date: Tue, 11 Jun 2024 16:16:35 +0300 Subject: [PATCH 5/7] Add sub-elements specification for 'networks' parameter of decort_group module --- library/decort_group.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/library/decort_group.py b/library/decort_group.py index f8a1f9a..129c7cd 100644 --- a/library/decort_group.py +++ b/library/decort_group.py @@ -209,7 +209,20 @@ class decort_group(DecortController): role=dict(type='str', required=False, default=''), cpu=dict(type='int', required=False), ram=dict(type='int', required=False), - networks=dict(type='list', default=[], required=False), + networks=dict( + type='list', default=[], elements='dict', + options=dict( + type=dict( + type='str', + required=True, + choices=['VINS', 'EXTNET'] + ), + id=dict( + type='int', + required=True + ) + ) + ), description=dict(type='str', default="Created by decort ansible module"), verify_ssl=dict(type='bool', required=False, default=True), workflow_callback=dict(type='str', required=False), From 825ce068c8717ac2999df2fc91e40d7cbf8ad433 Mon Sep 17 00:00:00 2001 From: Dmitriy Smirnov Date: Tue, 11 Jun 2024 17:30:23 +0300 Subject: [PATCH 6/7] Fix logic of decort_group.destroy method --- library/decort_group.py | 1 + 1 file changed, 1 insertion(+) diff --git a/library/decort_group.py b/library/decort_group.py index 129c7cd..9c29ff8 100644 --- a/library/decort_group.py +++ b/library/decort_group.py @@ -132,6 +132,7 @@ class decort_group(DecortController): self.bservice_id, self.group_id ) + self.group_should_exist = False return From b51136b711aafe9c070cb0390108a141341d4b78 Mon Sep 17 00:00:00 2001 From: Dmitriy Smirnov Date: Fri, 14 Jun 2024 15:26:23 +0300 Subject: [PATCH 7/7] Fix ViNS list comparison in DecortController.group_update_net method --- module_utils/decort_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module_utils/decort_utils.py b/module_utils/decort_utils.py index 9290b37..197c3a9 100644 --- a/module_utils/decort_utils.py +++ b/module_utils/decort_utils.py @@ -3967,7 +3967,7 @@ class DecortController(object): else: list_extnet.append(net['id']) - if gr_dict['vinses'] != list_vins: + if sorted(gr_dict['vinses']) != sorted(list_vins): api_url = "/restmachine/cloudapi/bservice/groupUpdateVins" api_params = dict( serviceId=bs_id,