def cli(env, date_min, date_max, obj_event, obj_id, obj_type, utc_offset, metadata, limit): """Get Event Logs Example: slcli event-log get -d 01/01/2019 -D 02/01/2019 -t User -l 10 """ columns = ['Event', 'Object', 'Type', 'Date', 'Username'] event_mgr = SoftLayer.EventLogManager(env.client) user_mgr = SoftLayer.UserManager(env.client) request_filter = event_mgr.build_filter(date_min, date_max, obj_event, obj_id, obj_type, utc_offset) logs = event_mgr.get_event_logs(request_filter) log_time = "%Y-%m-%dT%H:%M:%S.%f%z" user_data = {} if metadata: columns.append('Metadata') row_count = 0 click.secho(", ".join(columns)) for log in logs: if isinstance(log, str) or log is None: click.secho('No logs available for filter %s.' % request_filter, fg='red') return user = log['userType'] label = log.get('label', '') if user == "CUSTOMER": username = user_data.get(log['userId']) if username is None: username = user_mgr.get_user(log['userId'], "mask[username]")['username'] user_data[log['userId']] = username user = username if metadata: metadata_data = log['metaData'].strip("\n\t") click.secho("'{0}','{1}','{2}','{3}','{4}','{5}'".format( log['eventName'], label, log['objectName'], utils.clean_time(log['eventCreateDate'], in_format=log_time), user, metadata_data)) else: click.secho("'{0}','{1}','{2}','{3}','{4}'".format( log['eventName'], label, log['objectName'], utils.clean_time(log['eventCreateDate'], in_format=log_time), user)) row_count = row_count + 1 if row_count >= limit and limit != -1: return
def cli(env): """Get Event Log Types""" mgr = SoftLayer.EventLogManager(env.client) event_log_types = mgr.get_event_log_types() table = formatting.Table(COLUMNS) for event_log_type in event_log_types: table.add_row([event_log_type]) env.fout(table)
def cli(env, date_min, date_max, obj_event, obj_id, obj_type, utc_offset, metadata): """Get Event Logs""" mgr = SoftLayer.EventLogManager(env.client) usrmgr = SoftLayer.UserManager(env.client) request_filter = mgr.build_filter(date_min, date_max, obj_event, obj_id, obj_type, utc_offset) logs = mgr.get_event_logs(request_filter) if logs is None: env.fout('None available.') return if metadata and 'metadata' not in COLUMNS: COLUMNS.append('metadata') table = formatting.Table(COLUMNS) if metadata: table.align['metadata'] = "l" for log in logs: user = log['userType'] if user == "CUSTOMER": user = usrmgr.get_user(log['userId'], "mask[username]")['username'] if metadata: try: metadata_data = json.dumps(json.loads(log['metaData']), indent=4, sort_keys=True) if env.format == "table": metadata_data = metadata_data.strip("{}\n\t") except ValueError: metadata_data = log['metaData'] table.add_row([log['eventName'], log['label'], log['objectName'], log['eventCreateDate'], user, metadata_data]) else: table.add_row([log['eventName'], log['label'], log['objectName'], log['eventCreateDate'], user]) env.fout(table)
def set_up(self): self.event_log = SoftLayer.EventLogManager(self.client)