Beispiel #1
0
def simple_consistency_generators(consistency_num,
                                  update_events=0,
                                  snap_vals=None,
                                  update_vals=None):
    """A function for returning consistency event generators.

    Returns generators for a given number of consistency events.
    Instances will be distributed across hosts in round-robin style.

    :param update_vals:  number of values from update event
    :param update_events: number of events from update event
    :param consistency_num: number of consistency events
    :param snap_vals: preset vals for ALL snapshot events
    :return: generators for consistency_num consistency events as specified
    """

    test_entity_spec_list = []
    if update_events:
        test_entity_spec_list.append({
            tg.DYNAMIC_INFO_FKEY: tg.DRIVER_CONSISTENCY_UPDATE_D,
            tg.STATIC_INFO_FKEY: None,
            tg.EXTERNAL_INFO_KEY: update_vals,
            tg.MAPPING_KEY: consistency_num,
            tg.NAME_KEY: 'Consistency update generator',
            tg.NUM_EVENTS: update_events
        })
    return tg.get_trace_generators(test_entity_spec_list)
Beispiel #2
0
def simple_nagios_alarm_generators(host_num,
                                   events_num=0,
                                   snap_vals=None):
    """A function for returning Nagios alarm event generators.

    Returns generators for a given number of Nagios alarms.

    :param host_num: number of hosts
    :param events_num: number of snapshot alarms per hosts
    :param snap_vals: preset vals for ALL snapshot events
    :return: generators for zone_num zones as specified
    """

    hosts = ['host-{0}'.format(index) for index in range(host_num)]

    test_entity_spec_list = []
    if events_num:
        test_entity_spec_list.append({
            tg.DYNAMIC_INFO_FKEY: tg.DRIVER_NAGIOS_SNAPSHOT_D,
            tg.STATIC_INFO_FKEY: None,
            tg.EXTERNAL_INFO_KEY: snap_vals,
            tg.MAPPING_KEY: hosts,
            tg.NAME_KEY: 'Nagios alarm generator (alarm on)',
            tg.NUM_EVENTS: max(events_num - len(hosts), 0)
        })
        test_entity_spec_list.append({
            tg.DYNAMIC_INFO_FKEY: tg.DRIVER_NAGIOS_SNAPSHOT_D,
            tg.STATIC_INFO_FKEY: tg.DRIVER_NAGIOS_SNAPSHOT_S,
            tg.EXTERNAL_INFO_KEY: snap_vals,
            tg.MAPPING_KEY: hosts,
            tg.NAME_KEY: 'Nagios alarm generator (alarm off)',
            tg.NUM_EVENTS: len(hosts)
        })

    return tg.get_trace_generators(test_entity_spec_list)
Beispiel #3
0
def simple_aodh_alarm_notification_generators(alarm_num,
                                              update_events=0,
                                              update_vals=None):
    """A function for returning aodh alarm event generators.

    Returns generators for a given number of Aodh alarms.

    :param alarm_num: number of alarms
    :param update_events: number of update alarms
    :param update_vals: preset vals for ALL update events
    :return: generators for alarm_num zones as specified

    Returns generators for a given number of alarms and
    instances.
    """

    alarms = ['alarm-{0}'.format(index) for index in range(alarm_num)]

    test_entity_spec_list = [{
        tg.DYNAMIC_INFO_FKEY: tg.DRIVER_AODH_UPDATE_D,
        tg.STATIC_INFO_FKEY: None,
        tg.MAPPING_KEY: alarms,
        tg.EXTERNAL_INFO_KEY: update_vals,
        tg.NAME_KEY: 'Aodh update generator',
        tg.NUM_EVENTS: update_events
    }]

    return tg.get_trace_generators(test_entity_spec_list)
Beispiel #4
0
def simple_aodh_alarm_generators(alarm_num,
                                 snapshot_events=0, snap_vals=None):
    """A simple function for returning aodh alarm generators.

    Returns generators for a given number of alarms.

    :param alarm_num: number of alarms
    :param snapshot_events: number of snapshot events
    :param snap_vals: values of snapshot
    :return: generators for alarm_num alarms as specified
    """

    mapping = [('alarm-{0}'.format(ind), 'resource-{0}'.format(ind))
               for ind in range(alarm_num)
               ]

    test_entity_spec_list = [
        {tg.DYNAMIC_INFO_FKEY: tg.TRANS_AODH_SNAPSHOT_D,
         tg.DYNAMIC_INFO_FPATH: tg.MOCK_TRANSFORMER_PATH,
         tg.STATIC_INFO_FKEY: None,
         tg.MAPPING_KEY: mapping,
         tg.EXTERNAL_INFO_KEY: snap_vals,
         tg.NAME_KEY: 'Aodh snapshot generator',
         tg.NUM_EVENTS: snapshot_events
         }
    ]
    return tg.get_trace_generators(test_entity_spec_list)
Beispiel #5
0
def simple_zone_generators(zone_num, host_num, snapshot_events=0,
                           snap_vals=None):
    """A function for returning zone event generators.

    Returns generators for a given number of hosts and
    zones. Hosts will be distributed across zones in round-robin style.

    :param zone_num: number of zones
    :param host_num: number of hosts
    :param snapshot_events: number of snapshot events per zone
    :param snap_vals: preset vals for ALL snapshot events
    :return: generators for zone_num zones as specified
    """

    mapping = [('host-{0}'.format(index), 'zone-{0}'.format(index % zone_num))
               for index in range(host_num)
               ]

    test_entity_spec_list = []
    if snapshot_events:
        test_entity_spec_list.append(
            {tg.DYNAMIC_INFO_FKEY: tg.DRIVER_ZONE_SNAPSHOT_D,
             tg.STATIC_INFO_FKEY: None,
             tg.EXTERNAL_INFO_KEY: snap_vals,
             tg.MAPPING_KEY: mapping,
             tg.NAME_KEY: 'Zone snapshot generator',
             tg.NUM_EVENTS: snapshot_events
             }
        )
    return tg.get_trace_generators(test_entity_spec_list)
Beispiel #6
0
def simple_zone_generators(zone_num,
                           host_num,
                           snapshot_events=0,
                           snap_vals=None):
    """A function for returning zone event generators.

    Returns generators for a given number of hosts and
    zones. Hosts will be distributed across zones in round-robin style.

    :param zone_num: number of zones
    :param host_num: number of hosts
    :param snapshot_events: number of snapshot events per zone
    :param snap_vals: preset vals for ALL snapshot events
    :return: generators for zone_num zones as specified
    """

    mapping = [('host-{0}'.format(index), 'zone-{0}'.format(index % zone_num))
               for index in range(host_num)]

    test_entity_spec_list = []
    if snapshot_events:
        test_entity_spec_list.append({
            tg.DYNAMIC_INFO_FKEY: tg.DRIVER_ZONE_SNAPSHOT_D,
            tg.STATIC_INFO_FKEY: None,
            tg.EXTERNAL_INFO_KEY: snap_vals,
            tg.MAPPING_KEY: mapping,
            tg.NAME_KEY: 'Zone snapshot generator',
            tg.NUM_EVENTS: snapshot_events
        })
    return tg.get_trace_generators(test_entity_spec_list)
Beispiel #7
0
def simple_trove_cluster_generators(clust_num,
                                    inst_num,
                                    snapshot_events=0,
                                    snap_vals=None):
    """A function for returning Trove cluster generators.

    Returns generators for a given number of Trove clusters.

    :param clust_num: number of clusters
    :param inst_num: number of instances
    :return: generators for clust_num clusters as specified
    """

    mapping = [('tr-cluster-{0}'.format(idx % clust_num),
                'tr-inst-{0}'.format(idx)) for idx in range(inst_num)]

    test_entity_spec_list = [{
        tg.DYNAMIC_INFO_FKEY: tg.DRIVER_TROVE_CLUSTER_SNAPSHOT_D,
        tg.STATIC_INFO_FKEY: None,
        tg.MAPPING_KEY: mapping,
        tg.EXTERNAL_INFO_KEY: snap_vals,
        tg.NAME_KEY: 'Database cluster snapshot generator',
        tg.NUM_EVENTS: snapshot_events
    }]

    return tg.get_trace_generators(test_entity_spec_list)
Beispiel #8
0
def simple_consistency_generators(consistency_num, update_events=0,
                                  snap_vals=None, update_vals=None):
    """A function for returning consistency event generators.

    Returns generators for a given number of consistency events.
    Instances will be distributed across hosts in round-robin style.

    :param update_vals:  number of values from update event
    :param update_events: number of events from update event
    :param consistency_num: number of consisteny events
    :param snap_vals: preset vals for ALL snapshot events
    :return: generators for consistency_num consistency events as specified
    """

    test_entity_spec_list = []
    if update_events:
        test_entity_spec_list.append(
            {tg.DYNAMIC_INFO_FKEY: tg.DRIVER_CONSISTENCY_UPDATE_D,
             tg.STATIC_INFO_FKEY: None,
             tg.EXTERNAL_INFO_KEY: update_vals,
             tg.MAPPING_KEY: consistency_num,
             tg.NAME_KEY: 'Consistency update generator',
             tg.NUM_EVENTS: update_events
             }
        )
    return tg.get_trace_generators(test_entity_spec_list)
Beispiel #9
0
def simple_host_generators(zone_num, host_num, snapshot_events=0,
                           snap_vals=None):
    """A simple function for returning vm generators.

    Returns generators for a given number of hosts and
    instances. Instances will be distributed across hosts in round-robin style.

    :param zone_num: number of hosts
    :param host_num: number of vms
    :param snapshot_events: number of snapshot events per instance
    :param snap_vals: number of update events per instance
    :return: generators for vm_num vms as specified
    """

    mapping = [('host-{0}'.format(ind), 'zone-{0}'.format(ind % zone_num))
               for ind in range(host_num)
               ]

    test_entity_spec_list = [
        {tg.DYNAMIC_INFO_FKEY: tg.TRANS_HOST_SNAPSHOT_D,
         tg.STATIC_INFO_FKEY: tg.TRANS_HOST_SNAPSHOT_S,
         tg.MAPPING_KEY: mapping,
         tg.EXTERNAL_INFO_KEY: snap_vals,
         tg.NAME_KEY: 'Host snapshot generator',
         tg.NUM_EVENTS: snapshot_events
         }
    ]

    return tg.get_trace_generators(test_entity_spec_list)
Beispiel #10
0
def simple_aodh_update_alarm_generators(alarm_num,
                                        update_events=0,
                                        update_vals=None):
    """A simple function for returning aodh alarm generators.

    Returns generators for a given number of alarms.

    :param alarm_num: number of alarms
    :param update_events: number of update events
    :param update_vals: values of update
    :return: generators for alarm_num alarms as specified
    """

    mapping = [('alarm-{0}'.format(ind), 'resource-{0}'.format(ind))
               for ind in range(alarm_num)
               ]

    test_entity_spec_list = [
        {tg.DYNAMIC_INFO_FKEY: tg.TRANS_AODH_UPDATE_D,
         tg.DYNAMIC_INFO_FPATH: tg.MOCK_TRANSFORMER_PATH,
         tg.STATIC_INFO_FKEY: None,
         tg.MAPPING_KEY: mapping,
         tg.EXTERNAL_INFO_KEY: update_vals,
         tg.NAME_KEY: 'Aodh update generator',
         tg.NUM_EVENTS: update_events
         }
    ]
    return tg.get_trace_generators(test_entity_spec_list)
def simple_host_generators(zone_num, host_num, snapshot_events=0,
                           snap_vals=None):
    """A simple function for returning vm generators.

    Returns generators for a given number of hosts and
    instances. Instances will be distributed across hosts in round-robin style.

    :param zone_num: number of hosts
    :param host_num: number of vms
    :param snapshot_events: number of snapshot events per instance
    :param update_events: number of update events per instance
    :return: generators for vm_num vms as specified
    """

    mapping = [('host-{0}'.format(ind), 'zone-{0}'.format(ind % zone_num))
               for ind in range(host_num)
               ]

    test_entity_spec_list = [
        {tg.DYNAMIC_INFO_FKEY: tg.TRANS_HOST_SNAPSHOT_D,
         tg.STATIC_INFO_FKEY: tg.TRANS_HOST_SNAPSHOT_S,
         tg.MAPPING_KEY: mapping,
         tg.EXTERNAL_INFO_KEY: snap_vals,
         tg.NAME_KEY: 'Host snapshot generator',
         tg.NUM_EVENTS: snapshot_events
         }
    ]

    return tg.get_trace_generators(test_entity_spec_list)
Beispiel #12
0
def simple_zabbix_alarm_generators(host_num,
                                   events_num=0,
                                   snap_vals=None):
    """A function for returning Zabbix alarm event generators.

    Returns generators for a given number of Zabbix alarms.

    :param host_num: number of hosts
    :param events_num: number of snapshot alarms per hosts
    :param snap_vals: preset vals for ALL snapshot events
    :return: generators for zone_num zones as specified
    """

    hosts = ['host-{0}'.format(index) for index in range(host_num)]

    test_entity_spec_list = []
    if events_num:
        test_entity_spec_list.append({
            tg.DYNAMIC_INFO_FKEY: tg.DRIVER_ZABBIX_SNAPSHOT_D,
            tg.STATIC_INFO_FKEY: None,
            tg.EXTERNAL_INFO_KEY: snap_vals,
            tg.MAPPING_KEY: hosts,
            tg.NAME_KEY: 'Zabbix alarm generator (alarm on)',
            tg.NUM_EVENTS: max(events_num - len(hosts), 0)
        })
        test_entity_spec_list.append({
            tg.DYNAMIC_INFO_FKEY: tg.DRIVER_ZABBIX_SNAPSHOT_D,
            tg.STATIC_INFO_FKEY: None,
            tg.EXTERNAL_INFO_KEY: snap_vals,
            tg.MAPPING_KEY: hosts,
            tg.NAME_KEY: 'Zabbix alarm generator (alarm off)',
            tg.NUM_EVENTS: len(hosts)
        })

    return tg.get_trace_generators(test_entity_spec_list)
Beispiel #13
0
def simple_static_generators(switch_num=2,
                             host_num=10,
                             snapshot_events=0,
                             snap_vals=None,
                             update_events=0,
                             update_vals=None):
    """A function for returning static datasource events generators.

    Returns generators for a given number of routers, switches and hosts.
    Hosts will be distributed across switches in round-robin style.
    Switches are interconnected in a line.

    :param switch_num: number of zones
    :param host_num: number of hosts
    :param snapshot_events: number of snapshot events per zone
    :param snap_vals: preset values for ALL snapshot events
    :param update_events: number of values from update event
    :param update_vals: preset values for update event

    :return: generators for static datasource events
    """

    # TODO(yujunz) mock routers which connects all switches
    mapping = [(host_index, host_index % switch_num)
               for host_index in range(host_num)]

    test_entity_spec_list = []
    if snapshot_events > 0:
        if snap_vals is None:
            snap_vals = {}
        snap_vals.update({
            DSProps.DATASOURCE_ACTION: DatasourceAction.SNAPSHOT,
            DSProps.SAMPLE_DATE: str(utcnow())
        })
        test_entity_spec_list.append({
            tg.DYNAMIC_INFO_FKEY: tg.DRIVER_STATIC_SNAPSHOT_D,
            tg.STATIC_INFO_FKEY: tg.DRIVER_STATIC_SNAPSHOT_S,
            tg.EXTERNAL_INFO_KEY: snap_vals,
            tg.MAPPING_KEY: mapping,
            tg.NAME_KEY: 'Static snapshot generator',
            tg.NUM_EVENTS: snapshot_events
        })
    if update_events > 0:
        if update_vals is None:
            update_vals = {}
        update_vals.update({
            DSProps.DATASOURCE_ACTION: DatasourceAction.UPDATE,
            DSProps.SAMPLE_DATE: str(utcnow())
        })
        test_entity_spec_list.append({
            tg.DYNAMIC_INFO_FKEY: tg.DRIVER_STATIC_SNAPSHOT_D,
            tg.STATIC_INFO_FKEY: None,
            tg.EXTERNAL_INFO_KEY: update_vals,
            tg.MAPPING_KEY: mapping,
            tg.NAME_KEY: 'Static update generator',
            tg.NUM_EVENTS: update_events
        })
    return tg.get_trace_generators(test_entity_spec_list)
Beispiel #14
0
def simple_k8s_nodes_generators(nodes_num, snapshot_events=0):
    mapping = ['vm-{0}'.format(index) for index in range(nodes_num)]

    test_entity_spec_list = []
    if snapshot_events:
        test_entity_spec_list.append({
            tg.DYNAMIC_INFO_FKEY: tg.DRIVER_KUBE_SNAPSHOT_D,
            tg.STATIC_INFO_FKEY: tg.DRIVER_INST_SNAPSHOT_S,
            tg.MAPPING_KEY: mapping,
            tg.NAME_KEY: 'Nodes snapshot generator',
            tg.NUM_EVENTS: snapshot_events
        })
    return tg.get_trace_generators(test_entity_spec_list)
Beispiel #15
0
def simple_instance_generators(host_num,
                               vm_num,
                               snapshot_events=0,
                               update_events=0,
                               use_nova_versioned_format=True,
                               snap_vals=None,
                               update_vals=None):
    """A function for returning vm event generators.

    Returns generators for a given number of hosts and
    instances. Instances will be distributed across hosts in round-robin style.

    :param host_num: number of hosts
    :param vm_num: number of vms
    :param snapshot_events: number of snapshot events per instance
    :param update_events: number of update events per instance
    :param use_nova_versioned_format: use the format of Nova versioned
           notifications for the update events
    :param snap_vals: preset vals for ALL snapshot events
    :param update_vals: preset vals for ALL update events
    :return: generators for vm_num vms as specified
    """

    mapping = [('vm-{0}'.format(index), 'host-{0}'.format(index % host_num))
               for index in range(vm_num)]

    test_entity_spec_list = []
    if snapshot_events:
        test_entity_spec_list.append({
            tg.DYNAMIC_INFO_FKEY: tg.DRIVER_INST_SNAPSHOT_D,
            tg.STATIC_INFO_FKEY: tg.DRIVER_INST_SNAPSHOT_S,
            tg.EXTERNAL_INFO_KEY: snap_vals,
            tg.MAPPING_KEY: mapping,
            tg.NAME_KEY: 'Instance (vm) snapshot generator',
            tg.NUM_EVENTS: snapshot_events
        })

    dynamic_info = tg.DRIVER_INST_UPDATE_VERSIONED_D \
        if use_nova_versioned_format else tg.DRIVER_INST_UPDATE_LEGACY_D

    if update_events:
        test_entity_spec_list.append({
            tg.DYNAMIC_INFO_FKEY: dynamic_info,
            tg.STATIC_INFO_FKEY: None,
            tg.EXTERNAL_INFO_KEY: update_vals,
            tg.MAPPING_KEY: mapping,
            tg.NAME_KEY: 'Instance (vm) update generator',
            tg.NUM_EVENTS: update_events
        })

    return tg.get_trace_generators(test_entity_spec_list)
Beispiel #16
0
def simple_switch_generators(switch_num,
                             host_num,
                             snapshot_events=0,
                             snap_vals=None,
                             update_events=0,
                             update_vals=None):
    """A function for returning switch events generators.

    Returns generators for a given number of switches and hosts.
    Hosts will be distributed across switches in round-robin style.
    Switches are interconnected in a line.

    :param update_vals:  number of events from update event
    :param update_events: number of values from update event
    :param switch_num: number of zones
    :param host_num: number of hosts
    :param snapshot_events: number of snapshot events per zone
    :param snap_vals: preset values for ALL snapshot events
    :return: generators for switch events as specified
    """

    mapping = [('host-{0}'.format(index),
                'switch-{0}'.format(index % switch_num))
               for index in range(host_num)]

    test_entity_spec_list = []
    if snapshot_events:
        test_entity_spec_list.append({
            tg.DYNAMIC_INFO_FKEY: tg.DRIVER_SWITCH_SNAPSHOT_D,
            tg.STATIC_INFO_FKEY: None,
            tg.EXTERNAL_INFO_KEY: snap_vals,
            tg.MAPPING_KEY: mapping,
            tg.NAME_KEY: 'Switch snapshot generator',
            tg.NUM_EVENTS: snapshot_events
        })
    if update_events:
        update_vals = {} if not update_vals else update_vals
        update_vals[DSProps.DATASOURCE_ACTION] = \
            DatasourceAction.UPDATE
        test_entity_spec_list.append({
            tg.DYNAMIC_INFO_FKEY: tg.DRIVER_SWITCH_SNAPSHOT_D,
            tg.STATIC_INFO_FKEY: None,
            tg.EXTERNAL_INFO_KEY: update_vals,
            tg.MAPPING_KEY: mapping,
            tg.NAME_KEY: 'Switch update generator',
            tg.NUM_EVENTS: update_events
        })
    return tg.get_trace_generators(test_entity_spec_list)
Beispiel #17
0
def simple_switch_generators(switch_num, host_num,
                             snapshot_events=0, snap_vals=None,
                             update_events=0, update_vals=None):
    """A function for returning switch event generators.

    Returns generators for a given number of switches and hosts.
    Hosts will be distributed across switches in round-robin style.
    Switches are interconnected in a line.

    :param update_vals:  number of events from update event
    :param update_events: number of values from update event
    :param switch_num: number of zones
    :param host_num: number of hosts
    :param snapshot_events: number of snapshot events per zone
    :param snap_vals: preset vals for ALL snapshot events
    :return: generators for zone_num zones as specified
    """

    mapping = [('host-{0}'.format(index), 'switch-{0}'.format(index %
                                                              switch_num))
               for index in range(host_num)
               ]

    test_entity_spec_list = []
    if snapshot_events:
        test_entity_spec_list.append(
            {tg.DYNAMIC_INFO_FKEY: tg.DRIVER_SWITCH_SNAPSHOT_D,
             tg.STATIC_INFO_FKEY: None,
             tg.EXTERNAL_INFO_KEY: snap_vals,
             tg.MAPPING_KEY: mapping,
             tg.NAME_KEY: 'Switch snapshot generator',
             tg.NUM_EVENTS: snapshot_events
             }
        )
    if update_events:
        update_vals = {} if not update_vals else update_vals
        update_vals['vitrage_datasource_action'] = 'update'
        test_entity_spec_list.append(
            {tg.DYNAMIC_INFO_FKEY: tg.DRIVER_SWITCH_SNAPSHOT_D,
             tg.STATIC_INFO_FKEY: None,
             tg.EXTERNAL_INFO_KEY: update_vals,
             tg.MAPPING_KEY: mapping,
             tg.NAME_KEY: 'Switch update generator',
             tg.NUM_EVENTS: update_events
             }
        )
    return tg.get_trace_generators(test_entity_spec_list)
Beispiel #18
0
def simple_stack_generators(stack_num, instance_and_volume_num,
                            snapshot_events=0, update_events=0,
                            snap_vals=None, update_vals=None):
    """A function for returning vm event generators.

    Returns generators for a given number of stacks, instances and
    volumes. Instances and Volumes will be distributed across stacks in
    round-robin style.

    :param update_vals:  number of values from update event
    :param update_events: number of events from update event
    :param stack_num: number of stacks
    :param volume_num: number of volumes
    :param instance_num: number of instances
    :param snapshot_events: number of snapshot events per host
    :param snap_vals: preset vals for ALL snapshot events
    :return: generators for volume_num volumes as specified
    """

    mapping = [('stack-{0}'.format(index % stack_num),
                'stack-vm-{0}'.format(index),
                'stack-volume-{0}')
               for index in range(instance_and_volume_num)
               ]

    test_entity_spec_list = []
    if snapshot_events:
        test_entity_spec_list.append(
            {tg.DYNAMIC_INFO_FKEY: tg.DRIVER_STACK_SNAPSHOT_D,
             tg.STATIC_INFO_FKEY: None,
             tg.EXTERNAL_INFO_KEY: snap_vals,
             tg.MAPPING_KEY: mapping,
             tg.NAME_KEY: 'Stack snapshot generator',
             tg.NUM_EVENTS: snapshot_events
             }
        )
    if update_events:
        test_entity_spec_list.append(
            {tg.DYNAMIC_INFO_FKEY: tg.DRIVER_STACK_UPDATE_D,
             tg.STATIC_INFO_FKEY: None,
             tg.EXTERNAL_INFO_KEY: update_vals,
             tg.MAPPING_KEY: mapping,
             tg.NAME_KEY: 'Stack update generator',
             tg.NUM_EVENTS: update_events
             }
        )
    return tg.get_trace_generators(test_entity_spec_list)
Beispiel #19
0
def simple_stack_generators(stack_num,
                            instance_and_volume_num,
                            snapshot_events=0,
                            update_events=0,
                            snap_vals=None,
                            update_vals=None):
    """A function for returning vm event generators.

    Returns generators for a given number of stacks, instances and
    volumes. Instances and Volumes will be distributed across stacks in
    round-robin style.

    :param update_vals:  number of values from update event
    :param update_events: number of events from update event
    :param stack_num: number of stacks
    :param volume_num: number of volumes
    :param instance_num: number of instances
    :param snapshot_events: number of snapshot events per host
    :param snap_vals: preset vals for ALL snapshot events
    :return: generators for volume_num volumes as specified
    """

    mapping = [('stack-{0}'.format(index % stack_num),
                'stack-vm-{0}'.format(index), 'stack-volume-{0}')
               for index in range(instance_and_volume_num)]

    test_entity_spec_list = []
    if snapshot_events:
        test_entity_spec_list.append({
            tg.DYNAMIC_INFO_FKEY: tg.DRIVER_STACK_SNAPSHOT_D,
            tg.STATIC_INFO_FKEY: None,
            tg.EXTERNAL_INFO_KEY: snap_vals,
            tg.MAPPING_KEY: mapping,
            tg.NAME_KEY: 'Stack snapshot generator',
            tg.NUM_EVENTS: snapshot_events
        })
    if update_events:
        test_entity_spec_list.append({
            tg.DYNAMIC_INFO_FKEY: tg.DRIVER_STACK_UPDATE_D,
            tg.STATIC_INFO_FKEY: None,
            tg.EXTERNAL_INFO_KEY: update_vals,
            tg.MAPPING_KEY: mapping,
            tg.NAME_KEY: 'Stack update generator',
            tg.NUM_EVENTS: update_events
        })
    return tg.get_trace_generators(test_entity_spec_list)
Beispiel #20
0
def simple_instance_generators(host_num, vm_num,
                               snapshot_events=0, update_events=0,
                               snap_vals=None, update_vals=None):
    """A function for returning vm event generators.

    Returns generators for a given number of hosts and
    instances. Instances will be distributed across hosts in round-robin style.

    :param host_num: number of hosts
    :param vm_num: number of vms
    :param snapshot_events: number of snapshot events per instance
    :param update_events: number of update events per instance
    :param snap_vals: preset vals for ALL snapshot events
    :param update_vals: preset vals for ALL update events
    :return: generators for vm_num vms as specified
    """

    mapping = [('vm-{0}'.format(index), 'host-{0}'.format(index % host_num))
               for index in range(vm_num)
               ]

    test_entity_spec_list = []
    if snapshot_events:
        test_entity_spec_list.append(
            {tg.DYNAMIC_INFO_FKEY: tg.DRIVER_INST_SNAPSHOT_D,
             tg.STATIC_INFO_FKEY: tg.DRIVER_INST_SNAPSHOT_S,
             tg.EXTERNAL_INFO_KEY: snap_vals,
             tg.MAPPING_KEY: mapping,
             tg.NAME_KEY: 'Instance (vm) snapshot generator',
             tg.NUM_EVENTS: snapshot_events
             }
        )
    if update_events:
        test_entity_spec_list.append(
            {tg.DYNAMIC_INFO_FKEY: tg.DRIVER_INST_UPDATE_D,
             tg.STATIC_INFO_FKEY: None,
             tg.EXTERNAL_INFO_KEY: update_vals,
             tg.MAPPING_KEY: mapping,
             tg.NAME_KEY: 'Instance (vm) update generator',
             tg.NUM_EVENTS: update_events
             }
        )
    return tg.get_trace_generators(test_entity_spec_list)
Beispiel #21
0
def simple_kapacitor_alarm_generators(update_vals=None):
    """A function for returning Kapacitor alarm event generators.

    Returns generators for a given number of Collectd alarms.

    :param update_vals: preset values for ALL update events
    :return: generators for alarms as specified
    """

    test_entity_spec_list = [({
        tg.DYNAMIC_INFO_FKEY: tg.DRIVER_KAPACITOR_UPDATE_D,
        tg.STATIC_INFO_FKEY: None,
        tg.EXTERNAL_INFO_KEY: update_vals,
        tg.MAPPING_KEY: None,
        tg.NAME_KEY: 'Kapacitor alarm generator',
        tg.NUM_EVENTS: 1
    })]

    return tg.get_trace_generators(test_entity_spec_list)
Beispiel #22
0
def _simple_alarm_generators(datasource, sample_file, update_vals):
    """A function for returning alarm event generators.

    Returns generators for a given number of alarms.

    :param update_vals: preset values for ALL update events
    :return: generators for alarms as specified
    """

    test_entity_spec_list = [({
        tg.DYNAMIC_INFO_FKEY: sample_file,
        tg.DYNAMIC_INFO_FPATH: tg.MOCK_TRANSFORMER_PATH,
        tg.STATIC_INFO_FKEY: None,
        tg.EXTERNAL_INFO_KEY: update_vals,
        tg.MAPPING_KEY: None,
        tg.NAME_KEY: datasource + ' alarm generator',
        tg.NUM_EVENTS: 1
    })]

    return tg.get_trace_generators(test_entity_spec_list)
Beispiel #23
0
def simple_collectd_alarm_generators(update_vals=None):
    """A function for returning Collectd alarm event generators.

    Returns generators for a given number of Collectd alarms.

    :param update_vals: preset values for ALL update events
    :return: generators for alarms as specified
    """

    test_entity_spec_list = [({
        tg.DYNAMIC_INFO_FKEY: tg.TRANS_COLLECTD_UPDATE_D,
        tg.DYNAMIC_INFO_FPATH: tg.MOCK_TRANSFORMER_PATH,
        tg.STATIC_INFO_FKEY: None,
        tg.EXTERNAL_INFO_KEY: update_vals,
        tg.MAPPING_KEY: None,
        tg.NAME_KEY: 'Collectd alarm generator',
        tg.NUM_EVENTS: 1
    })]

    return tg.get_trace_generators(test_entity_spec_list)