Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit 05cfbdb4 authored by fandrem's avatar fandrem
Browse files

Feature #28491 - sid_user.py script

parent 3f2c359f
No related branches found
No related tags found
No related merge requests found
......@@ -379,20 +379,22 @@ def sid_update_user_exlude_approver_scheduler_change_management(diego, dfqdn, re
else:
print("removed " + user + " from " + typeExclude)
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):
def sid_create_update_user_approver_scheduler_change_management(diego, dfqdn, res_rw_user, user, uid, typeAdd, need_to_update, context_uid=666000002, verify=True):
create = True
results = diego.diegoGetObject(uid)
ty = []
ty2 = []
if 'objects' in results :
for typ in results['objects'] :
ty.append(typ['type'])
#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(results) 666060597
if 'has as act' in results['properties'] :
if (isinstance(results['properties']['has as act'], list)):
for act in results['properties']['has as act'] :
ty.append(act['name'])
else :
ty.append(results['properties']['has as act']['name'])
if typeAdd not in ty :
ty.append(typeAdd)
#new relation to workaround Polymorphism
if create :
block_to_update = {
'uid': uid,
......@@ -402,6 +404,16 @@ def sid_create_update_user_approver_scheduler_change_management(diego, dfqdn, re
'is a specialization of' : typeAdd,
'type': typeAdd,
}
#new version "has as act"
block_to_update = {
'uid': uid,
'name': user,
'context': 666000002,
'type': 'user',
'properties': {'has as act': ty}
}
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)]))
......@@ -409,8 +421,9 @@ def sid_create_update_user_approver_scheduler_change_management(diego, dfqdn, re
''' 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(block_to_update, Full=True)
#(scrat_json, scratres) = scrat_inst.scratQuery(scratter, Full=True)
(scrat_json, scratres) = scrat_inst.scratUpdate(block_to_update, overwrite_mode='exclusive', line_only=False, Full=True)
if str(scratres) != '200':
'''Scrat add new user relation in diferent context'''
to_print = pformat(block_to_update)
......@@ -904,7 +917,7 @@ def main():
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.')
logger.error('dry run, user not add/update from the scheduler role in "has as act"')
continue
......@@ -939,7 +952,7 @@ def main():
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.')
logger.error('dry run, user not add/update from the approver role in "has as act".')
continue
'''
* scrat department
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment