From f01eb35218ab9c561a7fe5a4065d5c8165b966df Mon Sep 17 00:00:00 2001 From: fandrem <none@none> Date: Wed, 11 May 2022 12:22:48 +0200 Subject: [PATCH] Feature #28491 - sid_user.py script --- bin/sid_user.py | 93 +++++++++++++++++++++++-------------------------- 1 file changed, 44 insertions(+), 49 deletions(-) diff --git a/bin/sid_user.py b/bin/sid_user.py index 4d289bc..a010da7 100755 --- a/bin/sid_user.py +++ b/bin/sid_user.py @@ -382,62 +382,57 @@ def sid_update_user_exlude_approver_scheduler_change_management(diego, dfqdn, re def sid_create_update_user_approver_scheduler_change_management(diego, dfqdn, res_rw_user, user, uid, typeAdd, need_to_update, context_uid=778000000, verify=True): create = True results = diego.diegoGetObject(uid) - print(need_to_update) - print(results['objects']) ty = [] ty2 = [] if 'objects' in results : for typ in results['objects'] : ty.append(typ['type']) - if typ['type'] == typeAdd and need_to_update : + #if is one of that create -> TODO : just support one by context! + if typ['type'] in ['approver', 'scheduler'] : create = False ty2 = ty ty2.append(typeAdd) - #print(ty2) - #exit(1) - #logger.debug(results) - block_to_update = { - 'name': user, - 'context': context_uid, - 'type': typeAdd, - 'properties': { - 'is a' : typeAdd + if create : + block_to_update = { + 'uid': uid, + 'name': user, + 'context': 778000000, + "is applicable in the context of" : 778000000, + 'is a specialization of' : typeAdd, + 'type': typeAdd, } - } - - block_to_update = { - 'uid': uid, - 'name': user, - 'context': context_uid, - 'type': typeAdd, - 'properties': { - "is a" : [{'type': 'user', 'context': 666000002}, {'type': 'approver', 'context': 778000000}, {'type' : typeAdd, 'context': 778000000}], - } - } - - to_print = pformat(block_to_update) - for i in list(range(0, int(round(len(to_print) / 250)) + 1)): - logger.info('scrat %s update cmd: %s' % (str(i), to_print[250 * i:250 * (i + 1)])) - - ''' delete: need to check the line exist if not 409''' - scrat_inst = Scrat(res_rw_user, '', fqdn=dfqdn, version=2, verify=verify) - (scrat_json, scratres) = scrat_inst.scratUpdate(block_to_update, overwrite_mode=True, line_only=True, Full=True) - #(scratres) = scrat_inst.scratQuery(block_to_update, 'creation') - if str(scratres) != '200': to_print = pformat(block_to_update) for i in list(range(0, int(round(len(to_print) / 250)) + 1)): - logger.error('scrat %s creating cmd: %s' % (str(i), to_print[250 * i:250 * (i + 1)])) - for i in list(range(0, int(round(len(to_print) / 250)) + 1)): - logger.error('scrat %s creating failed: %s' % (str(i), to_print[250 * i:250 * (i + 1)])) - # print('scrat %s update failed: %s' % (str(i), to_print[250 * i:250 * (i + 1)])) - else: - to_print = pformat(block_to_update) - for i in list(range(0, int(round(len(to_print) / 250)) + 1)): - logger.debug('scrat %s creating cmd: %s' % (str(i), to_print[250 * i:250 * (i + 1)])) + logger.info('scrat %s update cmd: %s' % (str(i), to_print[250 * i:250 * (i + 1)])) - print("STOP!") - exit(1) + ''' delete: need to check the line exist if not 409''' + scrat_inst = Scrat(res_rw_user, '', fqdn=dfqdn, version=2, verify=verify) + #(scrat_json, scratres) = scrat_inst.scratUpdate(block_to_update, overwrite_mode=True, line_only=True, Full=True) + (scrat_json, scratres) = scrat_inst.scratQuery(block_to_update, Full=True) + #(scrat_json, scratres) = scrat_inst.scratQuery(scratter, Full=True) + if str(scratres) != '200': + '''Scrat add new user relation in diferent context''' + to_print = pformat(block_to_update) + for i in list(range(0, int(round(len(to_print) / 250)) + 1)): + logger.info('scrat %s update cmd: %s' % (str(i), to_print[250 * i:250 * (i + 1)])) + + to_print = pformat(block_to_update) + for i in list(range(0, int(round(len(to_print) / 250)) + 1)): + logger.error('scrat %s update cmd: %s' % (str(i), to_print[250 * i:250 * (i + 1)])) + # print('scrat %s update cmd: %s' % (str(i), to_print[250 * i:250 * (i + 1)])) + to_print = '%s: %s' % (str(scratres), str(scrat_json)) + for i in list(range(0, int(round(len(to_print) / 250)) + 1)): + logger.error('scrat %s update failed: %s' % (str(i), to_print[250 * i:250 * (i + 1)])) + # print('scrat %s update failed: %s' % (str(i), to_print[250 * i:250 * (i + 1)])) + else: + to_print = pformat(block_to_update) + for i in list(range(0, int(round(len(to_print) / 250)) + 1)): + logger.debug('scrat %s update cmd: %s' % (str(i), to_print[250 * i:250 * (i + 1)])) + # print('scrat %s update cmd: %s' % (str(i), to_print[250 * i:250 * (i + 1)])) + else : + logger.error('the ' + typeAdd + ' role. is already defined for this user') + pass def main(): @@ -905,9 +900,9 @@ def main(): logger.debug('SID user ' + user + ' should be addded to scheduler.') #create the relation if not exists - if not dryrun: - #sid_create_update_user_approver_scheduler_change_management(diego, fqdn, res_rw_user, user, sid_results[1][user]['uid'], 'scheduler', need_to_update) - pass + if not dryrun or True: + sid_create_update_user_approver_scheduler_change_management(diego, fqdn, res_rw_user, user, sid_results[1][user]['uid'], 'scheduler', need_to_update) + #pass else: logger.error('dry run, user not add/update from the scheduler role.') continue @@ -940,9 +935,9 @@ def main(): need_to_create = True logger.debug('SID user ' + user + ' should be addded to approver.') #create the relation if not exists - if not dryrun: - #sid_create_update_user_approver_scheduler_change_management(diego, fqdn, res_rw_user, user, sid_results[1][user]['uid'], 'approver', need_to_update) - pass + if not dryrun or True: + sid_create_update_user_approver_scheduler_change_management(diego, fqdn, res_rw_user, user, sid_results[1][user]['uid'], 'approver', need_to_update) + #pass else: logger.error('dry run, user not add/update from the approver role.') continue -- GitLab