Skip to content
Snippets Groups Projects
Commit 854fac2e authored by Bo-Chun Chen's avatar Bo-Chun Chen
Browse files

Update group member agent to record in database

parent 51504d48
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/env python #!/usr/bin/env python
import dataset
import json import json
import pika import pika
import shlex import shlex
import rc_util import rc_util
from datetime import datetime
from subprocess import Popen, PIPE from subprocess import Popen, PIPE
from rc_rmq import RCRMQ from rc_rmq import RCRMQ
import rabbit_config as rcfg import rabbit_config as rcfg
...@@ -12,10 +14,34 @@ task = "group_member" ...@@ -12,10 +14,34 @@ task = "group_member"
args = rc_util.get_args() args = rc_util.get_args()
logger = rc_util.get_logger(args) logger = rc_util.get_logger(args)
# Initialize db
db = dataset.connect(f"sqlite:///{rcfg.db_path}/user_reg.db")
table = db["groups"]
# Instantiate rabbitmq object # Instantiate rabbitmq object
rc_rmq = RCRMQ({"exchange": rcfg.Exchange, "exchange_type": "topic"}) rc_rmq = RCRMQ({"exchange": rcfg.Exchange, "exchange_type": "topic"})
def insert_db(operation, groupname, msg):
if operation == "remove":
op = 0
elif operation == "add":
op = 1
# SQL insert
table.insert(
{
"user": msg["username"],
"group": groupname,
"operation": op,
"date": datetime.now(),
"host": msg["host"],
"executed_by": msg["executed_by"],
"interface": msg["interface"],
}
)
def group_member(ch, method, properties, body): def group_member(ch, method, properties, body):
msg = json.loads(body) msg = json.loads(body)
username = msg["username"] username = msg["username"]
...@@ -47,6 +73,7 @@ def group_member(ch, method, properties, body): ...@@ -47,6 +73,7 @@ def group_member(ch, method, properties, body):
logger.info( logger.info(
f"User {username} is removed from {each_group} group" f"User {username} is removed from {each_group} group"
) )
insert_db("remove", each_group, msg)
if "add" in msg["groups"]: if "add" in msg["groups"]:
for each_group in msg["groups"]["add"]: for each_group in msg["groups"]["add"]:
...@@ -69,6 +96,7 @@ def group_member(ch, method, properties, body): ...@@ -69,6 +96,7 @@ def group_member(ch, method, properties, body):
out, err = proc.communicate() out, err = proc.communicate()
logger.debug(f"Result: {err}") logger.debug(f"Result: {err}")
logger.info(f"User {username} is added to {each_group} group") logger.info(f"User {username} is added to {each_group} group")
insert_db("add", each_group, msg)
msg["success"] = True msg["success"] = True
......
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