Esempio n. 1
0
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
Esempio n. 2
0
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)
Esempio n. 3
0
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)