13.0.0
This commit is contained in:
@@ -19,13 +19,12 @@ class decort_bservice(DecortController):
|
||||
|
||||
validated_acc_id = 0
|
||||
validated_rg_id = 0
|
||||
self.bservice_info = None
|
||||
self.is_bservice_stopped_or_will_be_stopped: None | bool = None
|
||||
if arg_amodule.params['name'] == "" and arg_amodule.params['id'] == 0:
|
||||
self.result['failed'] = True
|
||||
self.result['changed'] = False
|
||||
self.result['msg'] = "Cannot manage Basic Services when its ID is 0 and name is empty."
|
||||
self.fail_json(**self.result)
|
||||
self.amodule.fail_json(**self.result)
|
||||
if not arg_amodule.params['id']:
|
||||
if not arg_amodule.params['rg_id']: # RG ID is not set -> locate RG by name -> need account ID
|
||||
validated_acc_id, self._acc_info = self.account_find(arg_amodule.params['account_name'],
|
||||
@@ -36,7 +35,7 @@ class decort_bservice(DecortController):
|
||||
self.result['msg'] = ("Current user does not have access to the account ID {} / "
|
||||
"name '{}' or non-existent account specified.").format(arg_amodule.params['account_id'],
|
||||
arg_amodule.params['account_name'])
|
||||
self.fail_json(**self.result)
|
||||
self.amodule.fail_json(**self.result)
|
||||
# fail the module -> exit
|
||||
# now validate RG
|
||||
validated_rg_id, validated_rg_model = self.rg_find(
|
||||
@@ -55,14 +54,27 @@ class decort_bservice(DecortController):
|
||||
arg_amodule.params['rg_name'] = validated_rg_model.name
|
||||
validated_acc_id = validated_rg_model.account_id
|
||||
|
||||
self.bservice_id, self.bservice_info = self.bservice_find(
|
||||
validated_acc_id,
|
||||
validated_rg_id,
|
||||
arg_amodule.params['name'],
|
||||
arg_amodule.params['id']
|
||||
self.bservice_id, self._bservice_info = self.bservice_find(
|
||||
account_id=validated_acc_id,
|
||||
rg_id=validated_rg_id,
|
||||
bservice_name=arg_amodule.params['name'],
|
||||
bservice_id=arg_amodule.params['id'],
|
||||
fail_if_not_found=False,
|
||||
)
|
||||
|
||||
self.acc_id = validated_acc_id or self.bservice_info['accountId']
|
||||
if arg_amodule.params['id'] and self.bservice_id == 0:
|
||||
if arg_amodule.params['state'] == 'absent':
|
||||
self.exit()
|
||||
else:
|
||||
self.message(
|
||||
self.MESSAGES.obj_not_found(
|
||||
obj='bservice',
|
||||
id=arg_amodule.params['id'],
|
||||
)
|
||||
)
|
||||
self.exit(fail=True)
|
||||
|
||||
self.acc_id = validated_acc_id or self.bservice_info['account_id']
|
||||
|
||||
if self.bservice_id and self.bservice_info['status'] != 'DESTROYED':
|
||||
self.bservice_should_exist = True
|
||||
@@ -92,8 +104,8 @@ class decort_bservice(DecortController):
|
||||
self.result['changed'] = False
|
||||
if self.bservice_id:
|
||||
self.result['msg'] = ("Invalid target state '{}' requested for B-service ID {} in the "
|
||||
"current status '{}'.").format(self.bservice_id,
|
||||
self.amodule.params['state'],
|
||||
"current status '{}'.").format(self.amodule.params['state'],
|
||||
self.bservice_id,
|
||||
self.bservice_info['status'])
|
||||
else:
|
||||
self.result['msg'] = ("Invalid target state '{}' requested for non-existent B-service name '{}' "
|
||||
@@ -112,7 +124,7 @@ class decort_bservice(DecortController):
|
||||
zone_id=self.aparams['zone_id'],
|
||||
)
|
||||
if self.bservice_id:
|
||||
_, self.bservice_info = self.bservice_get_by_id(self.bservice_id)
|
||||
self._bservice_info = self.bservice_get_by_id(self.bservice_id)
|
||||
self.bservice_state(self.bservice_info, self.aparams['state'])
|
||||
|
||||
self.bservice_should_exist = True
|
||||
@@ -122,9 +134,9 @@ class decort_bservice(DecortController):
|
||||
self.bservice_state(self.bservice_info,d_state)
|
||||
|
||||
aparam_zone_id = self.aparams['zone_id']
|
||||
if aparam_zone_id is not None and aparam_zone_id != self.bservice_info['zoneId']:
|
||||
self.bservice_migrate_to_zone(
|
||||
bs_id=self.bservice_id,
|
||||
if aparam_zone_id is not None and aparam_zone_id != self.bservice_info['zone_id']:
|
||||
self.sdk_checkmode(self.api.cloudapi.bservice.migrate_to_zone)(
|
||||
bservice_id=self.bservice_id,
|
||||
zone_id=aparam_zone_id,
|
||||
)
|
||||
return
|
||||
@@ -155,18 +167,9 @@ class decort_bservice(DecortController):
|
||||
)
|
||||
|
||||
if check_mode:
|
||||
# in check mode return immediately with the default values
|
||||
return ret_dict
|
||||
|
||||
ret_dict['id'] = self.bservice_info['id']
|
||||
ret_dict['name'] = self.bservice_info['name']
|
||||
ret_dict['techStatus'] = self.bservice_info['techStatus']
|
||||
ret_dict['state'] = self.bservice_info['status']
|
||||
ret_dict['rg_id'] = self.bservice_info['rgId']
|
||||
ret_dict['account_id'] = self.bservice_info['accountId']
|
||||
ret_dict['groups'] = self.bservice_info['groups']
|
||||
ret_dict['zone_id'] = self.bservice_info['zoneId']
|
||||
return ret_dict
|
||||
return self.bservice_info
|
||||
|
||||
@property
|
||||
def amodule_init_args(self) -> dict:
|
||||
@@ -228,14 +231,14 @@ class decort_bservice(DecortController):
|
||||
|
||||
self.is_bservice_stopped_or_will_be_stopped = (
|
||||
(
|
||||
self.bservice_info['techStatus'] == 'STOPPED'
|
||||
self.bservice_info['tech_status'] == 'STOPPED'
|
||||
and (
|
||||
self.aparams['state'] is None
|
||||
or self.aparams['state'] in ('present', 'stopped')
|
||||
)
|
||||
)
|
||||
or (
|
||||
self.bservice_info['techStatus'] != 'STOPPED'
|
||||
self.bservice_info['tech_status'] != 'STOPPED'
|
||||
and self.aparams['state'] == 'stopped'
|
||||
)
|
||||
)
|
||||
@@ -244,7 +247,7 @@ class decort_bservice(DecortController):
|
||||
check_errors = True
|
||||
if (
|
||||
self.aparams['zone_id'] is not None
|
||||
and self.aparams['zone_id'] != self.bservice_info['zoneId']
|
||||
and self.aparams['zone_id'] != self.bservice_info['zone_id']
|
||||
and not self.is_bservice_stopped_or_will_be_stopped
|
||||
):
|
||||
check_errors = True
|
||||
@@ -270,7 +273,10 @@ class decort_bservice(DecortController):
|
||||
|
||||
if self.amodule.check_mode:
|
||||
self.result['changed'] = False
|
||||
if self.bservice_id:
|
||||
if (
|
||||
self.bservice_id
|
||||
or (self.aparams['rg_id'] and self.aparams['name'])
|
||||
):
|
||||
self.result['failed'] = False
|
||||
self.result['facts'] = self.package_facts(amodule.check_mode)
|
||||
amodule.exit_json(**self.result)
|
||||
@@ -309,10 +315,12 @@ class decort_bservice(DecortController):
|
||||
else:
|
||||
self.action(amodule.params['state'])
|
||||
elif self.bservice_info['status'] == "DESTROYED":
|
||||
if amodule.params['state'] in ('present','enabled'):
|
||||
if amodule.params['state'] == 'present':
|
||||
self.create()
|
||||
self.action(amodule.params['state'])
|
||||
if amodule.params['state'] == 'absent':
|
||||
elif amodule.params['state'] in ['enabled', 'disabled']:
|
||||
self.error()
|
||||
elif amodule.params['state'] == 'absent':
|
||||
self.nop()
|
||||
else:
|
||||
state = amodule.params['state']
|
||||
@@ -329,7 +337,9 @@ class decort_bservice(DecortController):
|
||||
amodule.fail_json(**self.result)
|
||||
else:
|
||||
if self.bservice_should_exist:
|
||||
_, self.bservice_info = self.bservice_get_by_id(self.bservice_id)
|
||||
self._bservice_info = self.bservice_get_by_id(
|
||||
self.bservice_id
|
||||
)
|
||||
self.result['facts'] = self.package_facts(amodule.check_mode)
|
||||
amodule.exit_json(**self.result)
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user