コード例 #1
0
ファイル: transformer.py プロジェクト: charliebr30/vitrage
    def _create_entity_key(self, entity_event):
        if _is_vitrage_alarm(entity_event):
            return entity_event.get(AodhProps.VITRAGE_ID)

        sync_type = entity_event[DSProps.SYNC_TYPE]
        alarm_id = entity_event[AodhProps.ALARM_ID]
        resource_id = entity_event[AodhProps.RESOURCE_ID]
        return (tbase.build_key(
            self._key_values(sync_type, resource_id, alarm_id)) if resource_id
                else tbase.build_key(self._key_values(sync_type, alarm_id)))
コード例 #2
0
ファイル: transformer.py プロジェクト: paperandsoap/vitrage
    def _create_entity_key(self, entity_event):
        if _is_vitrage_alarm(entity_event):
            return entity_event.get(AodhProps.VITRAGE_ID)

        sync_type = entity_event[DSProps.SYNC_TYPE]
        alarm_name = entity_event[AodhProps.NAME]
        resource_id = entity_event[AodhProps.RESOURCE_ID]
        return (tbase.build_key(self._key_values(sync_type,
                                                 resource_id,
                                                 alarm_name)) if resource_id
                else tbase.build_key(self._key_values(sync_type, alarm_name)))
コード例 #3
0
ファイル: transformer.py プロジェクト: JaniceLee567/vitrage
 def _create_entity_key(self, entity_event):
     network_id = 'network_id' if tbase.is_update_event(entity_event) \
         else 'id'
     key_fields = self._key_values(
         NEUTRON_NETWORK_DATASOURCE,
         extract_field_value(entity_event, network_id))
     return tbase.build_key(key_fields)
コード例 #4
0
ファイル: transformer.py プロジェクト: Idandos/vitrage
    def _create_entity_key(self, event):

        instance_id = 'instance_id' if tbase.is_update_event(event) else 'id'
        key_fields = self._key_values(NOVA_INSTANCE_DATASOURCE,
                                      extract_field_value(event,
                                                          instance_id))
        return tbase.build_key(key_fields)
コード例 #5
0
ファイル: transformer.py プロジェクト: ngohoa211/vitrage-1
    def _create_entity_key(self, entity_event):

        entity_type = entity_event[DSProps.ENTITY_TYPE]
        alarm_id = entity_event[CProps.ID]
        resource_name = entity_event[CProps.RESOURCE_NAME]
        return tbase.build_key(
            self._key_values(entity_type, resource_name, alarm_id))
コード例 #6
0
    def test_create_entity_key(self):
        LOG.debug('Test get key from kubernetes transformer')

        # Test setup
        spec_list = mock_sync.simple_k8s_nodes_generators(nodes_num=1,
                                                          snapshot_events=1)

        nodes_events = mock_sync.generate_random_events_list(spec_list)

        kubernetes_transformer = self.transformers[KUBERNETES_DATASOURCE]
        for event in nodes_events:
            # Test action
            observed_key = kubernetes_transformer._create_entity_key(event)

            # Test assertions
            observed_key_fields = observed_key.split(
                TransformerBase.KEY_SEPARATOR)

            self.assertEqual(EntityCategory.RESOURCE, observed_key_fields[0])
            self.assertEqual(
                KUBERNETES_DATASOURCE,
                observed_key_fields[1]
            )

            key_values = kubernetes_transformer._key_values(
                KUBERNETES_DATASOURCE,
                cluster_name)
            expected_key = tbase.build_key(key_values)

            self.assertEqual(expected_key, observed_key)
コード例 #7
0
ファイル: transformer.py プロジェクト: Idandos/vitrage
 def _create_entity_key(self, entity_event):
     network_id = 'network_id' if tbase.is_update_event(entity_event) \
         else 'id'
     key_fields = self._key_values(NEUTRON_NETWORK_DATASOURCE,
                                   extract_field_value(entity_event,
                                                       network_id))
     return tbase.build_key(key_fields)
コード例 #8
0
 def _create_entity_key(self, entity_event):
     return tbase.build_key((ECategory.ALARM,
                             entity_event[DSProps.ENTITY_TYPE],
                             get_label(entity_event,
                                       PAlertLabels.ALERT_NAME),
                             str(entity_event.get(
                                 PDProps.ENTITY_UNIQUE_PROPS))))
コード例 #9
0
ファイル: transformer.py プロジェクト: charliebr30/vitrage
    def _create_entity_key(self, event):

        instance_id = 'instance_id' if tbase.is_update_event(event) else 'id'
        key_fields = self._key_values(NOVA_INSTANCE_DATASOURCE,
                                      extract_field_value(event,
                                                          instance_id))
        return tbase.build_key(key_fields)
コード例 #10
0
ファイル: transformer.py プロジェクト: openstack/vitrage
    def _create_entity_key(self, entity_event):
        if _is_vitrage_alarm(entity_event):
            return entity_event.get(AodhProps.VITRAGE_ID)

        entity_type = entity_event[DSProps.ENTITY_TYPE]
        alarm_id = entity_event[AodhProps.ALARM_ID]
        return tbase.build_key(self._key_values(entity_type, alarm_id))
コード例 #11
0
ファイル: transformer.py プロジェクト: danoffek/vitrage
    def _create_entity_key(self, entity_event):
        event_type = entity_event.get(DSProps.EVENT_TYPE, None)
        network_id = extract_field_value(entity_event,
                                         *self.UPDATE_ID_PROPERTY[event_type])

        key_fields = self._key_values(NEUTRON_NETWORK_DATASOURCE, network_id)
        return tbase.build_key(key_fields)
コード例 #12
0
    def _create_entity_key(self, entity_event):
        if _is_vitrage_alarm(entity_event):
            return entity_event.get(AodhProps.VITRAGE_ID)

        entity_type = entity_event[DSProps.ENTITY_TYPE]
        alarm_id = entity_event[AodhProps.ALARM_ID]
        return tbase.build_key((EntityCategory.ALARM, entity_type, alarm_id))
コード例 #13
0
 def _create_entity_key(self, entity_event):
     """the unique key of this entity"""
     entity_type = entity_event[DSProps.ENTITY_TYPE]
     alarm_id = entity_event[KProps.ID]
     resource_name = entity_event[KProps.RESOURCE_NAME]
     return tbase.build_key(
         (EntityCategory.ALARM, entity_type, resource_name, alarm_id))
コード例 #14
0
ファイル: transformer.py プロジェクト: JaniceLee567/vitrage
    def _create_entity_key(self, entity_event):

        sync_type = entity_event[DSProps.SYNC_TYPE]
        alarm_name = entity_event[NagiosProperties.SERVICE]
        resource_name = entity_event[NagiosProperties.RESOURCE_NAME]
        return tbase.build_key(
            self._key_values(sync_type, resource_name, alarm_name))
コード例 #15
0
    def _validate_host_neighbor(self, neighbor, event):

        host_vertex = neighbor.vertex

        observed_key = host_vertex.vertex_id

        expected_key = tbase.build_key(
            (EntityCategory.RESOURCE, NOVA_HOST_DATASOURCE,
             event[ZabbixProps.RESOURCE_NAME]))
        expected_uuid = \
            TransformerBase.uuid_from_deprecated_vitrage_id(expected_key)

        self.assertEqual(expected_uuid, observed_key)
        self.assertEqual(expected_uuid,
                         host_vertex.properties.get(VProps.VITRAGE_ID))

        self.assertFalse(host_vertex[VProps.VITRAGE_IS_DELETED])
        self.assertTrue(host_vertex[VProps.VITRAGE_IS_PLACEHOLDER])

        self.assertEqual(EntityCategory.RESOURCE,
                         host_vertex[VProps.VITRAGE_CATEGORY])
        self.assertEqual(event[ZabbixProps.RESOURCE_NAME],
                         host_vertex[VProps.ID])
        self.assertEqual(NOVA_HOST_DATASOURCE,
                         host_vertex[VProps.VITRAGE_TYPE])

        edge = neighbor.edge
        self.assertEqual(EdgeLabel.ON, edge.label)

        alarm_key = ZabbixTransformer(self.transformers, self.conf).\
            _create_entity_key(event)
        alarm_uuid = TransformerBase.uuid_from_deprecated_vitrage_id(alarm_key)
        self.assertEqual(alarm_uuid, edge.source_id)
        self.assertEqual(host_vertex.vertex_id, edge.target_id)
コード例 #16
0
    def _create_entity_key(self, entity_event):

        entity_type = entity_event[DSProps.ENTITY_TYPE]
        alarm_id = entity_event[ZProps.TRIGGER_ID]
        resource_name = entity_event[ZProps.RESOURCE_NAME]
        return tbase.build_key(
            (EntityCategory.ALARM, entity_type, resource_name, alarm_id))
コード例 #17
0
    def test_create_entity_key(self):
        LOG.debug('Test get key from nova instance transformer')

        # Test setup
        spec_list = mock_sync.simple_instance_generators(host_num=1,
                                                         vm_num=1,
                                                         snapshot_events=1,
                                                         update_events=0)
        instance_events = mock_sync.generate_random_events_list(spec_list)

        instance_transformer = self.transformers[NOVA_INSTANCE_DATASOURCE]
        for event in instance_events:
            # Test action
            observed_key = instance_transformer._create_entity_key(event)

            # Test assertions
            observed_key_fields = observed_key.split(
                TransformerBase.KEY_SEPARATOR)

            self.assertEqual(EntityCategory.RESOURCE, observed_key_fields[0])
            self.assertEqual(NOVA_INSTANCE_DATASOURCE, observed_key_fields[1])

            instance_id = tbase.extract_field_value(event, 'id')

            self.assertEqual(instance_id, observed_key_fields[2])

            key_values = instance_transformer._key_values(
                NOVA_INSTANCE_DATASOURCE, instance_id)
            expected_key = tbase.build_key(key_values)

            self.assertEqual(expected_key, observed_key)
コード例 #18
0
ファイル: topology.py プロジェクト: charliebr30/vitrage
    def _topology_for_unrooted_graph(self, ga, subgraph, root):
        """Finds topology for unrooted subgraph

        1. Finds all the connected component subgraphs in subgraph.
        2. For each component, finds the path from one of the VMs (if exists)
           to the root entity.
        3. Unify all the entities found and return them

        :type ga: NXAlgorithm
        :type subgraph: networkx graph
        :type root: string
        :rtype: list
        """

        entities = []

        if not root:
            root = build_key([EntityCategory.RESOURCE, OPENSTACK_CLUSTER])

        root_vertex = \
            self.entity_graph.get_vertex(root)
        local_connected_component_subgraphs = \
            ga.connected_component_subgraphs(subgraph)

        for component_subgraph in local_connected_component_subgraphs:
            entities += component_subgraph.nodes()
            instance_in_component_subgraph = \
                self._find_instance_in_graph(component_subgraph)
            if instance_in_component_subgraph:
                paths = ga.all_simple_paths(root_vertex.vertex_id,
                                            instance_in_component_subgraph)
                for path in paths:
                    entities += path

        return set(entities)
コード例 #19
0
ファイル: transformer.py プロジェクト: charliebr30/vitrage
    def _create_entity_key(self, entity_event):

        sync_type = entity_event[DSProps.SYNC_TYPE]
        alarm_id = entity_event[ZProps.TRIGGER_ID]
        resource_name = entity_event[ZProps.RESOURCE_NAME]
        return tbase.build_key(
            self._key_values(sync_type, resource_name, alarm_id))
コード例 #20
0
ファイル: transformer.py プロジェクト: paperandsoap/vitrage
    def _create_entity_key(self, entity_event):

        is_update_event = tbase.is_update_event(entity_event)
        id_field_path = 'volume_id' if is_update_event else 'id'
        volume_id = extract_field_value(entity_event, id_field_path)

        key_fields = self._key_values(CINDER_VOLUME_DATASOURCE, volume_id)
        return build_key(key_fields)
コード例 #21
0
ファイル: transformer.py プロジェクト: charliebr30/vitrage
    def _create_entity_key(self, entity_event):

        is_update_event = tbase.is_update_event(entity_event)
        id_field_path = 'volume_id' if is_update_event else 'id'
        volume_id = extract_field_value(entity_event, id_field_path)

        key_fields = self._key_values(CINDER_VOLUME_DATASOURCE, volume_id)
        return build_key(key_fields)
コード例 #22
0
ファイル: transformer.py プロジェクト: openstack/vitrage
    def _create_entity_key(self, entity_event):

        is_update_event = tbase.is_update_event(entity_event)
        id_field_path = 'stack_identity' if is_update_event else 'id'
        volume_id = extract_field_value(entity_event, id_field_path)

        key_fields = self._key_values(HEAT_STACK_DATASOURCE, volume_id)
        return build_key(key_fields)
コード例 #23
0
ファイル: transformer.py プロジェクト: Idandos/vitrage
    def _create_entity_key(self, entity_event):

        sync_type = entity_event[DSProps.SYNC_TYPE]
        alarm_name = entity_event[NagiosProperties.SERVICE]
        resource_name = entity_event[NagiosProperties.RESOURCE_NAME]
        return tbase.build_key(self._key_values(sync_type,
                                                resource_name,
                                                alarm_name))
コード例 #24
0
ファイル: transformer.py プロジェクト: openstack/vitrage
    def _create_entity_key(self, entity_event):

        entity_type = entity_event[DSProps.ENTITY_TYPE]
        alarm_id = entity_event[ZProps.TRIGGER_ID]
        resource_name = entity_event[ZProps.RESOURCE_NAME]
        return tbase.build_key(self._key_values(entity_type,
                                                resource_name,
                                                alarm_id))
コード例 #25
0
    def _create_entity_key(self, entity_event):

        is_update_event = tbase.is_update_event(entity_event)
        id_field_path = 'stack_identity' if is_update_event else 'id'
        volume_id = extract_field_value(entity_event, id_field_path)

        key_fields = self._key_values(HEAT_STACK_DATASOURCE, volume_id)
        return build_key(key_fields)
コード例 #26
0
    def _create_entity_key(self, entity_event):

        is_update_event = tbase.is_update_event(entity_event)
        id_field_path = StackProps.STACK_IDENTITY\
            if is_update_event else StackProps.ID
        volume_id = extract_field_value(entity_event, id_field_path)

        key_fields = self._key_values(HEAT_STACK_DATASOURCE, volume_id)
        return build_key(key_fields)
コード例 #27
0
    def _create_entity_key(self, entity_event):

        entity_type = entity_event[DSProps.ENTITY_TYPE]
        alarm_name = entity_event[NagiosProperties.SERVICE]
        resource_name = entity_event[NagiosProperties.RESOURCE_NAME]
        return tbase.build_key((EntityCategory.ALARM,
                                entity_type,
                                resource_name,
                                alarm_name))
コード例 #28
0
ファイル: transformer.py プロジェクト: wookiist/vitrage
    def _create_entity_key(self, event):
        LOG.debug('Creating key for instance event: %s', event)

        instance_id = self._get_field_extractor(event).entity_id(event)
        key_fields = self._key_values(NOVA_INSTANCE_DATASOURCE, instance_id)
        key = tbase.build_key(key_fields)

        LOG.debug('Created key: %s', key)

        return key
コード例 #29
0
    def test_build_cluster_key(self):
        LOG.debug('Test build cluster key')

        # Test setup
        expected_key = 'RESOURCE:kubernetes:kubernetes'

        instance_transformer = self.transformers[NOVA_INSTANCE_DATASOURCE]
        # Test action
        key_fields = instance_transformer._key_values(KUBERNETES_DATASOURCE,
                                                      cluster_name)

        # Test assertions
        observed_key = tbase.build_key(key_fields)
        self.assertEqual(expected_key, observed_key)
コード例 #30
0
    def test_build_instance_key(self):
        LOG.debug('Test build instance key')

        # Test setup
        instance_id = '456'
        expected_key = 'RESOURCE:nova.instance:%s' % instance_id

        instance_transformer = self.transformers[NOVA_INSTANCE_DATASOURCE]
        # Test action
        key_fields = instance_transformer._key_values(NOVA_INSTANCE_DATASOURCE,
                                                      instance_id)

        # Test assertions
        observed_key = tbase.build_key(key_fields)
        self.assertEqual(expected_key, observed_key)
コード例 #31
0
    def test_build_instance_key(self):
        LOG.debug('Test build instance key')

        # Test setup
        instance_id = '456'
        expected_key = 'RESOURCE:nova.instance:%s' % instance_id

        instance_transformer = self.transformers[NOVA_INSTANCE_DATASOURCE]
        # Test action
        key_fields = instance_transformer._key_values(
            NOVA_INSTANCE_DATASOURCE,
            instance_id)

        # Test assertions
        observed_key = tbase.build_key(key_fields)
        self.assertEqual(expected_key, observed_key)
コード例 #32
0
    def create_placeholder_vertex(self, **kwargs):
        if VProps.TYPE not in kwargs:
            LOG.error("Can't create placeholder vertex. Missing property TYPE")
            raise ValueError('Missing property TYPE')

        if VProps.ID not in kwargs:
            LOG.error("Can't create placeholder vertex. Missing property ID")
            raise ValueError('Missing property ID')

        key_fields = self._key_values(kwargs[VProps.TYPE], kwargs[VProps.ID])

        return graph_utils.create_vertex(
            tbase.build_key(key_fields),
            entity_id=kwargs[VProps.ID],
            entity_category=EntityCategory.RESOURCE,
            entity_type=kwargs[VProps.TYPE],
            sample_timestamp=kwargs[VProps.SAMPLE_TIMESTAMP],
            is_placeholder=True)
コード例 #33
0
    def test_create_placeholder_vertex(self):

        LOG.debug('Static Physical transformer test: Create placeholder '
                  'vertex')

        # Test setup
        switch_type = STATIC_PHYSICAL_DATASOURCE
        switch_name = 'switch-1'
        timestamp = datetime.datetime.utcnow()
        static_transformer = self.transformers[STATIC_PHYSICAL_DATASOURCE]

        # Test action
        properties = {
            VProps.VITRAGE_TYPE: switch_type,
            VProps.ID: switch_name,
            VProps.VITRAGE_CATEGORY: EntityCategory.RESOURCE,
            VProps.VITRAGE_SAMPLE_TIMESTAMP: timestamp
        }
        placeholder = \
            static_transformer.create_neighbor_placeholder_vertex(**properties)

        # Test assertions
        observed_uuid = placeholder.vertex_id
        expected_key = tbase.build_key(static_transformer._key_values(
            switch_type, switch_name))
        expected_uuid = \
            TransformerBase.uuid_from_deprecated_vitrage_id(expected_key)
        self.assertEqual(expected_uuid, observed_uuid)

        observed_time = placeholder.get(VProps.VITRAGE_SAMPLE_TIMESTAMP)
        self.assertEqual(timestamp, observed_time)

        observed_subtype = placeholder.get(VProps.VITRAGE_TYPE)
        self.assertEqual(switch_type, observed_subtype)

        observed_entity_id = placeholder.get(VProps.ID)
        self.assertEqual(switch_name, observed_entity_id)

        observed_vitrage_category = placeholder.get(VProps.VITRAGE_CATEGORY)
        self.assertEqual(EntityCategory.RESOURCE, observed_vitrage_category)

        vitrage_is_placeholder = placeholder.get(VProps.VITRAGE_IS_PLACEHOLDER)
        self.assertTrue(vitrage_is_placeholder)
コード例 #34
0
    def test_create_placeholder_vertex(self):

        LOG.debug('Zone transformer test: create placeholder vertex')

        # Test setup
        zone_name = 'zone123'
        timestamp = datetime.datetime.utcnow()
        zone_transformer = self.transformers[NOVA_ZONE_DATASOURCE]

        # Test action
        properties = {
            VProps.ID: zone_name,
            VProps.VITRAGE_TYPE: NOVA_ZONE_DATASOURCE,
            VProps.VITRAGE_CATEGORY: EntityCategory.RESOURCE,
            VProps.VITRAGE_SAMPLE_TIMESTAMP: timestamp
        }
        placeholder = \
            zone_transformer.create_neighbor_placeholder_vertex(**properties)

        # Test assertions
        observed_uuid = placeholder.vertex_id
        expected_key = tbase.build_key(zone_transformer._key_values(
            NOVA_ZONE_DATASOURCE,
            zone_name))
        expected_uuid = \
            zone_transformer.uuid_from_deprecated_vitrage_id(expected_key)
        self.assertEqual(expected_uuid, observed_uuid)

        observed_time = placeholder.get(VProps.VITRAGE_SAMPLE_TIMESTAMP)
        self.assertEqual(timestamp, observed_time)

        observed_subtype = placeholder.get(VProps.VITRAGE_TYPE)
        self.assertEqual(NOVA_ZONE_DATASOURCE, observed_subtype)

        observed_entity_id = placeholder.get(VProps.ID)
        self.assertEqual(zone_name, observed_entity_id)

        observed_vitrage_category = placeholder.get(VProps.VITRAGE_CATEGORY)
        self.assertEqual(EntityCategory.RESOURCE, observed_vitrage_category)

        vitrage_is_placeholder = placeholder.get(VProps.VITRAGE_IS_PLACEHOLDER)
        self.assertTrue(vitrage_is_placeholder)
コード例 #35
0
    def test_create_placeholder_vertex(self):
        LOG.debug('Cetus pod transformer test: Test create placeholder '
                  'vertex')

        # Test setup
        pod_id = "pod123"
        timestamp = datetime.datetime.utcnow()
        pod_transformer = self.transformers[CETUS_POD_DATASOURCE]

        # Test action
        properties = {
            VProps.ID: pod_id,
            VProps.VITRAGE_TYPE: CETUS_POD_DATASOURCE,
            VProps.VITRAGE_CATEGORY: EntityCategory.RESOURCE,
            VProps.VITRAGE_SAMPLE_TIMESTAMP: timestamp
        }
        placeholder = \
            pod_transformer.create_neighbor_placeholder_vertex(**properties)

        # Test assertions
        observed_uuid = placeholder.vertex_id
        expected_key = tbase.build_key(
            pod_transformer._key_values(CETUS_POD_DATASOURCE, pod_id))
        expected_uuid = \
            TransformerBase.uuid_from_deprecated_vitrage_id(expected_key)
        self.assertEqual(expected_uuid, observed_uuid)

        observed_time = placeholder.get(VProps.VITRAGE_SAMPLE_TIMESTAMP)
        self.assertEqual(timestamp, observed_time)

        observed_subtype = placeholder.get(VProps.VITRAGE_TYPE)
        self.assertEqual(CETUS_POD_DATASOURCE, observed_subtype)

        observed_entity_id = placeholder.get(VProps.ID)
        self.assertEqual(pod_id, observed_entity_id)

        observed_vitrage_category = placeholder.get(VProps.VITRAGE_CATEGORY)
        self.assertEqual(EntityCategory.RESOURCE, observed_vitrage_category)

        vitrage_is_placeholder = placeholder.get(VProps.VITRAGE_IS_PLACEHOLDER)
        self.assertTrue(vitrage_is_placeholder)
コード例 #36
0
    def test_create_placeholder_vertex(self):
        LOG.debug('Cinder Volume transformer test: Create placeholder '
                  'vertex')

        # Tests setup
        volume_id = 'Instance123'
        timestamp = datetime.datetime.utcnow()
        properties = {
            VProps.ID: volume_id,
            VProps.VITRAGE_TYPE: CINDER_VOLUME_DATASOURCE,
            VProps.VITRAGE_CATEGORY: EntityCategory.RESOURCE,
            VProps.VITRAGE_SAMPLE_TIMESTAMP: timestamp
        }
        transformer = self.transformers[CINDER_VOLUME_DATASOURCE]

        # Test action
        placeholder = \
            transformer.create_neighbor_placeholder_vertex(**properties)

        # Test assertions)
        expected_key = \
            tbase.build_key(transformer._key_values(CINDER_VOLUME_DATASOURCE,
                                                    volume_id))
        expected_uuid = \
            TransformerBase.uuid_from_deprecated_vitrage_id(expected_key)
        self.assertEqual(expected_uuid, placeholder.vertex_id)

        observed_time = placeholder.get(VProps.VITRAGE_SAMPLE_TIMESTAMP)
        self.assertEqual(timestamp, observed_time)

        observed_type = placeholder.get(VProps.VITRAGE_TYPE)
        self.assertEqual(CINDER_VOLUME_DATASOURCE, observed_type)

        observed_entity_id = placeholder.get(VProps.ID)
        self.assertEqual(volume_id, observed_entity_id)

        observed_vitrage_category = placeholder.get(VProps.VITRAGE_CATEGORY)
        self.assertEqual(EntityCategory.RESOURCE, observed_vitrage_category)

        vitrage_is_placeholder = placeholder.get(VProps.VITRAGE_IS_PLACEHOLDER)
        self.assertTrue(vitrage_is_placeholder)
コード例 #37
0
    def test_create_placeholder_vertex(self):
        LOG.debug('Heat Stack transformer test: Create placeholder vertex')

        # Tests setup
        stack_id = 'Stack123'
        timestamp = datetime.datetime.utcnow()
        properties = {
            VProps.ID: stack_id,
            VProps.VITRAGE_TYPE: HEAT_STACK_DATASOURCE,
            VProps.VITRAGE_CATEGORY: EntityCategory.RESOURCE,
            VProps.VITRAGE_SAMPLE_TIMESTAMP: timestamp
        }
        transformer = self.transformers[HEAT_STACK_DATASOURCE]

        # Test action
        placeholder = \
            transformer.create_neighbor_placeholder_vertex(**properties)

        # Test assertions
        observed_uuid = placeholder.vertex_id
        expected_key = tbase.build_key(
            transformer._key_values(HEAT_STACK_DATASOURCE, stack_id))
        expected_uuid = \
            TransformerBase.uuid_from_deprecated_vitrage_id(expected_key)
        self.assertEqual(expected_uuid, observed_uuid)

        observed_time = placeholder.get(VProps.VITRAGE_SAMPLE_TIMESTAMP)
        self.assertEqual(timestamp, observed_time)

        observed_type = placeholder.get(VProps.VITRAGE_TYPE)
        self.assertEqual(HEAT_STACK_DATASOURCE, observed_type)

        observed_entity_id = placeholder.get(VProps.ID)
        self.assertEqual(stack_id, observed_entity_id)

        observed_vitrage_category = placeholder.get(VProps.VITRAGE_CATEGORY)
        self.assertEqual(EntityCategory.RESOURCE, observed_vitrage_category)

        vitrage_is_placeholder = placeholder.get(VProps.VITRAGE_IS_PLACEHOLDER)
        self.assertTrue(vitrage_is_placeholder)
コード例 #38
0
    def test_extract_key(self):
        LOG.debug('Test get key from nova instance transformer')

        # Test setup
        spec_list = mock_sync.simple_instance_generators(
            host_num=1,
            vm_num=1,
            snapshot_events=1,
            update_events=0
        )
        instance_events = mock_sync.generate_random_events_list(spec_list)

        instance_transformer = self.transformers[NOVA_INSTANCE_DATASOURCE]
        for event in instance_events:
            # Test action
            observed_key = instance_transformer._create_entity_key(event)

            # Test assertions
            observed_key_fields = observed_key.split(
                TransformerBase.KEY_SEPARATOR)

            self.assertEqual(EntityCategory.RESOURCE, observed_key_fields[0])
            self.assertEqual(
                NOVA_INSTANCE_DATASOURCE,
                observed_key_fields[1]
            )

            instance_id = tbase.extract_field_value(event, 'id')

            self.assertEqual(instance_id, observed_key_fields[2])

            key_values = instance_transformer._key_values(
                NOVA_INSTANCE_DATASOURCE,
                instance_id)
            expected_key = tbase.build_key(key_values)

            self.assertEqual(expected_key, observed_key)
コード例 #39
0
    def test_create_placeholder_vertex(self):
        # Tests setup
        cluster_id = 'tr-cluster-0'
        timestamp = datetime.datetime.utcnow()

        properties = {
            VProps.ID: cluster_id,
            VProps.VITRAGE_TYPE: TROVE_CLUSTER_DATASOURCE,
            VProps.VITRAGE_CATEGORY: EntityCategory.RESOURCE,
            VProps.VITRAGE_SAMPLE_TIMESTAMP: timestamp
        }

        transformer = self.transformers[TROVE_CLUSTER_DATASOURCE]

        # Test action
        placeholder = transformer.create_neighbor_placeholder_vertex(
            **properties)

        # Test assertions
        expected_key = tb.build_key(
            transformer._key_values(TROVE_CLUSTER_DATASOURCE, cluster_id))
        expected_uuid = TransformerBase.uuid_from_deprecated_vitrage_id(
            expected_key)
        self.assertEqual(expected_uuid, placeholder.vertex_id)

        self.assertEqual(timestamp,
                         placeholder.get(VProps.VITRAGE_SAMPLE_TIMESTAMP))

        self.assertEqual(TROVE_CLUSTER_DATASOURCE,
                         placeholder.get(VProps.VITRAGE_TYPE))

        self.assertEqual(cluster_id, placeholder.get(VProps.ID))

        self.assertEqual(EntityCategory.RESOURCE,
                         placeholder.get(VProps.VITRAGE_CATEGORY))

        self.assertTrue(placeholder.get(VProps.VITRAGE_IS_PLACEHOLDER))
コード例 #40
0
 def _create_entity_key(self, entity_event):
     return tbase.build_key(
         (EntityCategory.ALARM, entity_event[DSProps.ENTITY_TYPE],
          entity_event[EventProps.TYPE],
          get_detail(entity_event, DoctorDetails.HOSTNAME)))
コード例 #41
0
ファイル: transformer.py プロジェクト: Idandos/vitrage
 def _create_entity_key(self, entity_event):
     key_fields = self._key_values(NEUTRON_PORT_DATASOURCE,
                                   extract_field_value(entity_event, 'id'))
     return tbase.build_key(key_fields)
コード例 #42
0
ファイル: transformer.py プロジェクト: paperandsoap/vitrage
 def _create_entity_key(self, entity_event):
     entity_id = entity_event[VProps.ID]
     sync_type = entity_event[VProps.TYPE]
     key_fields = self._key_values(sync_type, entity_id)
     return transformer_base.build_key(key_fields)
コード例 #43
0
ファイル: transformer.py プロジェクト: paperandsoap/vitrage
    def _create_entity_key(self, entity_event):

        host_name = extract_field_value(entity_event, '_info', 'host_name')

        key_fields = self._key_values(NOVA_HOST_DATASOURCE, host_name)
        return transformer_base.build_key(key_fields)
コード例 #44
0
 def _create_entity_key(self, event):
     key_fields = self._key_values(event[TFields.ALARM_NAME],
                                   event[TFields.TARGET])
     return transformer_base.build_key(key_fields)
コード例 #45
0
ファイル: transformer.py プロジェクト: paperandsoap/vitrage
    def _create_entity_key(self, entity_event):

        zone_name = extract_field_value(entity_event, 'zoneName')

        key_fields = self._key_values(NOVA_ZONE_DATASOURCE, zone_name)
        return tbase.build_key(key_fields)