From de0ced8d130b50e26ee68bd1f35d1d37daa77587 Mon Sep 17 00:00:00 2001
From: fandrem <none@none>
Date: Wed, 18 May 2022 09:02:12 +0200
Subject: [PATCH] Feature #28491 - sid_user.py script

---
 bin/sid_user.py | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/bin/sid_user.py b/bin/sid_user.py
index 656baaf..bdf135d 100755
--- a/bin/sid_user.py
+++ b/bin/sid_user.py
@@ -368,6 +368,8 @@ def sid_update_user_exlude_approver_scheduler_change_management(diego, dfqdn, re
         'properties': {'is a': typeExclude}
     }
     to_print = pformat(block_to_update)
+    #print(block_to_update)
+    #pass
     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)]))
 
@@ -415,6 +417,8 @@ def sid_create_update_user_approver_scheduler_change_management(diego, dfqdn, re
         }
 
         to_print = pformat(block_to_update)
+        #print(to_print)
+        #pass
         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)]))
 
@@ -474,7 +478,7 @@ def main():
         fqdn = socket.getfqdn()
 
     elif args.env == 'prod':
-        fqdn = '10.226.41.24:45789'
+        fqdn = 'vworker0-lu.snmc.cec.eu.int'
         verify = False
 
     elif args.env == 'acc':
@@ -699,8 +703,8 @@ def main():
         block_to_update['properties']['has as status'] = 'active'
 
         block_to_update['properties']['has e-mail address'] = ec_results['users'][user]['mail']
-
-        block_to_update['properties']['has telephone number'] = ec_results['users'][user]['ecInternationalTelephoneNumber']
+        if 'ecInternationalTelephoneNumber' in ec_results['users'][user] : 
+            block_to_update['properties']['has telephone number'] = ec_results['users'][user]['ecInternationalTelephoneNumber']
 
         if 'departmentNumber' in ec_results['users'][user] :
             block_to_update['properties']['is a member of'] = ec_results['users'][user]['departmentNumber']
@@ -884,7 +888,6 @@ def main():
             to_print = pformat(block_to_update)
             for i in list(range(0, int(round(len(to_print) / 250)) + 1)):
                 logger.info('scrat %s cmd: %s' % (str(i), to_print[250 * i:250 * (i + 1)]))
-
     params = {}
     sid_s_results = diego.diego_run_dieget_by_name('sid_sheduler_check', params)
     for user in sid_s_results[1]:
@@ -893,7 +896,8 @@ def main():
         if user not in sid_need_scheduler or user not in approver_scheduler_list:
             logger.error('SID user ' + user + ' should not be an scheduler.')
             if not dryrun:
-                sid_update_user_exlude_approver_scheduler_change_management(diego, fqdn, res_rw_user, user, sid_results[1][user]['uid'], 'scheduler')
+                if user in sid_results[1] : 
+                    sid_update_user_exlude_approver_scheduler_change_management(diego, fqdn, res_rw_user, user, sid_results[1][user]['uid'], 'scheduler')
                 #pass
             else:
                 logger.error('dry run, user not removed from the scheduler role.')
@@ -913,7 +917,7 @@ def main():
             logger.debug('SID user ' + user + ' should be addded to scheduler.')
             #create the relation if not exists
         
-        if not dryrun:
+        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
         else:
@@ -928,8 +932,9 @@ def main():
             continue
         if user not in sid_need_approver or user not in approver_scheduler_list:
             logger.error('SID user ' + user + ' should not be an approver.')
-            if not dryrun:
-                sid_update_user_exlude_approver_scheduler_change_management(diego, fqdn, res_rw_user, user, sid_results[1][user]['uid'], 'approver')
+            if not dryrun :
+                if user in  sid_results[1] :
+                    sid_update_user_exlude_approver_scheduler_change_management(diego, fqdn, res_rw_user, user, sid_results[1][user]['uid'], 'approver')
                 #pass
             else:
                 logger.error('dry run, user not removed from the approver role.')
-- 
GitLab