k8s provision update

fix */list
5.2.5.1
Alex_geth 2 years ago
parent e94faef2ad
commit 9222fdd866

@ -80,13 +80,13 @@ class decort_k8s(DecortController):
self.result['failed'] = True self.result['failed'] = True
self.result['changed'] = False self.result['changed'] = False
self.result['msg'] = "At least one worker group must be present" self.result['msg'] = "At least one worker group must be present"
self.fail_json(**self.result) self.amodule.fail_json(**self.result)
if arg_amodule.params['name'] == "" and arg_amodule.params['id'] == 0: if arg_amodule.params['name'] == "" and arg_amodule.params['id'] == 0:
self.result['failed'] = True self.result['failed'] = True
self.result['changed'] = False self.result['changed'] = False
self.result['msg'] = "Cannot manage k8s cluster when its ID is 0 and name is empty." self.result['msg'] = "Cannot manage k8s cluster 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['id']:
@ -99,17 +99,17 @@ class decort_k8s(DecortController):
self.result['msg'] = ("Current user does not have access to the account ID {} / " 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'], "name '{}' or non-existent account specified.").format(arg_amodule.params['account_id'],
arg_amodule.params['account_name']) arg_amodule.params['account_name'])
self.fail_json(**self.result) self.amodule.fail_json(**self.result)
# fail the module -> exit # fail the module -> exit
# now validate RG # now validate RG
validated_rg_id, validated_rg_facts = self.rg_find(validated_acc_id, validated_rg_id, validated_rg_facts = self.rg_find(validated_acc_id,
arg_amodule.params['rg_id'],) arg_amodule.params['rg_id'],)
if not validated_rg_id: if not validated_rg_id:
self.result['failed'] = True self.result['failed'] = True
self.result['changed'] = False self.result['changed'] = False
self.result['msg'] = "Cannot find RG ID {} / name '{}'.".format(arg_amodule.params['rg_id'], self.result['msg'] = "Cannot find RG ID {} / name '{}'.".format(arg_amodule.params['rg_id'],
arg_amodule.params['rg_name']) arg_amodule.params['rg_name'])
self.fail_json(**self.result) self.amodule.fail_json(**self.result)
# fail the module - exit # fail the module - exit
@ -120,7 +120,7 @@ class decort_k8s(DecortController):
self.result['failed'] = True self.result['failed'] = True
self.result['changed'] = False self.result['changed'] = False
self.result['msg'] = "Cannot find K8CI ID {}.".format(arg_amodule.params['k8ci_id']) self.result['msg'] = "Cannot find K8CI ID {}.".format(arg_amodule.params['k8ci_id'])
self.fail_json(**self.result) self.amodule.fail_json(**self.result)
self.rg_id = validated_rg_id self.rg_id = validated_rg_id
arg_amodule.params['rg_id'] = validated_rg_id arg_amodule.params['rg_id'] = validated_rg_id
@ -203,7 +203,7 @@ class decort_k8s(DecortController):
return return
def create(self): def create(self):
self.k8s_provision(self.amodule.params['name'], k8s_id = self.k8s_provision(self.amodule.params['name'],
self.amodule.params['k8ci_id'], self.amodule.params['k8ci_id'],
self.amodule.params['rg_id'], self.amodule.params['rg_id'],
self.amodule.params['network_plugin'], self.amodule.params['network_plugin'],
@ -211,12 +211,18 @@ class decort_k8s(DecortController):
self.amodule.params['master_cpu'], self.amodule.params['master_cpu'],
self.amodule.params['master_ram'], self.amodule.params['master_ram'],
self.amodule.params['master_disk'], self.amodule.params['master_disk'],
self.amodule.params['master_sepid'],
self.amodule.params['master_pool'],
self.amodule.params['workers'][0], self.amodule.params['workers'][0],
self.amodule.params['extnet_id'], self.amodule.params['extnet_id'],
self.amodule.params['with_lb'], self.amodule.params['with_lb'],
self.amodule.params['description'],) self.amodule.params['description'],)
self.k8s_id,self.k8s_info = self.k8s_find(k8s_id=self.amodule.params['id'], if not k8s_id:
self.result['failed'] = True
self.amodule.fail_json(**self.result)
self.k8s_id,self.k8s_info = self.k8s_find(k8s_id=k8s_id,
k8s_name=self.amodule.params['name'], k8s_name=self.amodule.params['name'],
rg_id=self.rg_id, rg_id=self.rg_id,
check_state=False) check_state=False)
@ -284,7 +290,7 @@ class decort_k8s(DecortController):
user=dict(type='str', user=dict(type='str',
required=False, required=False,
fallback=(env_fallback, ['DECORT_USER'])), fallback=(env_fallback, ['DECORT_USER'])),
name=dict(type='str', required=True), name=dict(type='str', required=False, default=""),
id=dict(type='int', required=False, default=0), id=dict(type='int', required=False, default=0),
getConfig=dict(type='bool',required=False, default=False), getConfig=dict(type='bool',required=False, default=False),
rg_id=dict(type='int', default=0), rg_id=dict(type='int', default=0),
@ -296,6 +302,8 @@ class decort_k8s(DecortController):
master_cpu=dict(type='int', default=2), master_cpu=dict(type='int', default=2),
master_ram=dict(type='int', default=2048), master_ram=dict(type='int', default=2048),
master_disk=dict(type='int', default=10), master_disk=dict(type='int', default=10),
master_sepid=dict(type='int', required=False, default=None),
master_pool=dict(type='str', required=False, default=None),
worker_count=dict(type='int', default=1), worker_count=dict(type='int', default=1),
worker_cpu=dict(type='int', default=1), worker_cpu=dict(type='int', default=1),
worker_ram_mb=dict(type='int', default=1024), worker_ram_mb=dict(type='int', default=1024),

@ -1367,7 +1367,7 @@ class DecortController(object):
api_resp = self.decort_api_call(requests.post, "/restmachine/cloudapi/image/list", api_params) api_resp = self.decort_api_call(requests.post, "/restmachine/cloudapi/image/list", api_params)
# On success the above call will return here. On error it will abort execution by calling fail_json. # On success the above call will return here. On error it will abort execution by calling fail_json.
images_list = json.loads(api_resp.content.decode('utf8')) images_list = json.loads(api_resp.content.decode('utf8'))
for image_record in images_list: for image_record in images_list['data']:
if image_record['name'] == image_name and image_record['status'] == "CREATED": if image_record['name'] == image_name and image_record['status'] == "CREATED":
if sepid == 0 and pool == "": if sepid == 0 and pool == "":
# if no filtering by SEP ID or pool name is requested, return the first match # if no filtering by SEP ID or pool name is requested, return the first match
@ -3414,10 +3414,18 @@ class DecortController(object):
return return
def k8s_provision(self, k8s_name, def k8s_provision(self, k8s_name,
k8ci_id,rg_id,plugin,master_count, k8ci_id,rg_id,
master_cpu, master_ram, plugin,
master_disk, default_worker, extnet_id, master_count,
with_lb, annotation, ): master_cpu,
master_ram,
master_disk,
master_sepid,
master_pool,
default_worker,
extnet_id,
with_lb,
annotation, ):
self.result['waypoints'] = "{} -> {}".format(self.result['waypoints'], "k8s_provision") self.result['waypoints'] = "{} -> {}".format(self.result['waypoints'], "k8s_provision")
@ -3431,6 +3439,8 @@ class DecortController(object):
def_wg_cpu = default_worker['cpu'] def_wg_cpu = default_worker['cpu']
def_wg_ram = default_worker['ram'] def_wg_ram = default_worker['ram']
def_wg_disk = default_worker['disk'] def_wg_disk = default_worker['disk']
def_wg_sepid = default_worker['sep_id']
def_wg_pool = default_worker['pool']
def_wg_lab = default_worker['labels'] if "labels" in default_worker else None def_wg_lab = default_worker['labels'] if "labels" in default_worker else None
def_wg_taints = default_worker['taints'] if "taints" in default_worker else None def_wg_taints = default_worker['taints'] if "taints" in default_worker else None
def_wg_ann = default_worker['annotations'] if "annotations" in default_worker else None def_wg_ann = default_worker['annotations'] if "annotations" in default_worker else None
@ -3445,10 +3455,14 @@ class DecortController(object):
masterCpu=master_cpu, masterCpu=master_cpu,
masterRam=master_ram, masterRam=master_ram,
masterDisk=master_disk, masterDisk=master_disk,
masterSepId=master_sepid,
masterSepPool=master_pool,
workerNum=def_wg_count, workerNum=def_wg_count,
workerCpu=def_wg_cpu, workerCpu=def_wg_cpu,
workerRam=def_wg_ram, workerRam=def_wg_ram,
workerDisk=def_wg_disk, workerDisk=def_wg_disk,
workerSepId=def_wg_sepid,
workerSepPool=def_wg_pool,
labels=def_wg_lab, labels=def_wg_lab,
taints=def_wg_taints, taints=def_wg_taints,
annotations=def_wg_ann, annotations=def_wg_ann,
@ -3472,8 +3486,8 @@ class DecortController(object):
self.result['failed'] = False self.result['failed'] = False
time.sleep(30) time.sleep(30)
elif ret_info['status'] == "ERROR": elif ret_info['status'] == "ERROR":
self.result['msg'] = ("k8s_provision(): Can't create cluster") self.result['msg'] = f"k8s_provision(): {ret_info['error']}"
self.result['failed'] = True self.result['changed'] = False
return return
elif ret_info['status'] == "OK": elif ret_info['status'] == "OK":
k8s_id = ret_info['result'] k8s_id = ret_info['result']
@ -3493,7 +3507,6 @@ class DecortController(object):
self.result['failed'] = True self.result['failed'] = True
self.result['changed'] = False self.result['changed'] = False
self.fail_json(**self.result)
return return
def k8s_workers_modify(self,arg_k8swg,arg_modwg): def k8s_workers_modify(self,arg_k8swg,arg_modwg):
@ -3546,6 +3559,8 @@ class DecortController(object):
workerCpu=wg['cpu'], workerCpu=wg['cpu'],
workerRam=wg['ram'], workerRam=wg['ram'],
workerDisk=wg['disk'], workerDisk=wg['disk'],
workerSepId=wg['sep_id'] if "sep_id" in wg else None,
workerSepPool=wg['pool'] if "pool" in wg else None,
labels=wg['labels'] if "labels" in wg else None, labels=wg['labels'] if "labels" in wg else None,
taints=wg['taints'] if "taints" in wg else None, taints=wg['taints'] if "taints" in wg else None,
annotations=wg['annotations'] if "annotations" in wg else None, annotations=wg['annotations'] if "annotations" in wg else None,

Loading…
Cancel
Save