in runner.py [0:0]
def perform_action(self, api_connector, action, kwargs):
"""
Performs offboarding actions selected from the Web UI form.
:param api_connector: string of the API connector to use
:param action: name of action to be performed
:return: msg log for action performed, along with status
Note: action item must match function names of the equivalent API class.
"""
msg = ""
if self.is_valid_user:
if self.is_suspended_user and action not in NO_SUSPEND_ACTIONS:
self.suspend_user(False)
connector = getattr(self, api_connector)
result = getattr(connector, action)(self.user_email, **kwargs)
if type(result) is dict:
results = []
for k, v in result.items():
if v is True:
results.append("<span class='text-success'>%s</span>" % k)
elif v is False:
results.append("<span class='text-danger'>%s</span>" % k)
else:
results.append(k)
if not results:
results = "<span class='text-success'>SUCCESS</span>"
msg = "<p>%s: %s</p>" % (action.replace("_", " ").upper(), results)
else:
if result is False:
msg_color = "danger"
msg_text = "FAILED"
elif result is True:
msg_color = "success"
msg_text = "SUCCESS"
elif result is None:
msg_color = "danger"
msg_text = "FAILED (EMPTY RESULT)"
else:
msg_color = "success"
msg_text = "SUCCESS"
msg = ("<p>%s: <span class=\"text-%s\">%s</span></p>" %
(action.replace("_", " ").upper(), msg_color, msg_text))
else:
msg = "<p><span class=\"text-danger\">FAILED - INVALID USER</span></p>"
log.info(msg)
return msg