diff --git a/prod_rmq_agents/group_member.py b/prod_rmq_agents/group_member.py index 1f621a04fcf6e5ea26fb1912eb0c2a03a805685c..cda7e5ac0bdf97f4ef953cc4b3fde4951b65143f 100644 --- a/prod_rmq_agents/group_member.py +++ b/prod_rmq_agents/group_member.py @@ -26,26 +26,34 @@ def group_member(ch, method, properties, body): state = msg["state"] try: + if 'remove' in msg["groups"]: + for each_group in msg["groups"]["remove"]: + logger.debug(f'Removing user {username} from group {each_group}') + if str(rcfg.bright_cm_version).split(".")[0] == "8": + grp_remove_user_cmd = f'/cm/local/apps/cmd/bin/cmsh -n -c "group; removefrom {each_group} groupmembers {username}; commit;"' + else: + grp_remove_user_cmd = f'/cm/local/apps/cmd/bin/cmsh -n -c "group; removefrom {each_group} members {username}; commit;"' + + logger.info(f'Running command: {grp_remove_user_cmd}') + proc = Popen(shlex.split(grp_remove_user_cmd), stdout=PIPE, stderr=PIPE) + out,err = proc.communicate() + logger.debug(f'Result: {err}') + logger.info(f'User {username} is removed from {each_group} group') - if action == 'add': - for each_group in msg["groupnames"]: + if 'add' in msg["groups"]: + for each_group in msg["groups"]["add"]: logger.debug(f'Adding user {username} to group {each_group}') - grp_add_user_cmd = f'/cm/local/apps/cmd/bin/cmsh -n -c "group; append {each_group} members {username}; commit;"' - proc = Popen(shlex.split(grp_add_user_cmd), stdout=PIPE, stderr=PIPE) + if str(rcfg.bright_cm_version).split(".")[0] == "8": + grp_add_user_cmd = f'/cm/local/apps/cmd/bin/cmsh -n -c "group; append {each_group} groupmembers {username}; commit;"' + else: + grp_add_user_cmd = f'/cm/local/apps/cmd/bin/cmsh -n -c "group; append {each_group} members {username}; commit;"' + logger.info(f'Running command: {grp_add_user_cmd}') + proc = Popen(shlex.split(grp_add_user_cmd), stdout=PIPE, stderr=PIPE) out,err = proc.communicate() logger.debug(f'Result: {err}') logger.info(f'User {username} is added to {each_group} group') - elif action == 'remove': - for each_group in msg["groupnames"]: - logger.debug(f'Removing user {username} from group {each_group}') - grp_remove_user_cmd = f'/cm/local/apps/cmd/bin/cmsh -n -c "group; removefrom {each_group} members {username}; commit;"' - proc = Popen(shlex.split(grp_remove_user_cmd), stdout=PIPE, stderr=PIPE) - out,err = proc.communicate() - logger.info(f'Running command: {grp_remove_user_cmd}') - logger.debug(f'Result: {err}') - logger.info(f'User {username} is removed from {each_group} group') msg["success"] = True @@ -73,7 +81,7 @@ def group_member(ch, method, properties, body): else: print("Error: no reply_to") - logger.debug(f'User {username} confirmation sent for {action}ing {task}') + logger.debug(f'User {username} confirmation sent from {task}') ch.basic_ack(delivery_tag=method.delivery_tag)