Example #1
0
    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)))
Example #2
0
    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)))
Example #3
0
 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)
Example #4
0
    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)
Example #5
0
    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))
    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)
Example #7
0
 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)
Example #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))))
Example #9
0
    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)
Example #10
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(self._key_values(entity_type, alarm_id))
Example #11
0
    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)
Example #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))
Example #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))
Example #14
0
    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))
Example #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)
Example #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))
    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)
Example #18
0
    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)
Example #19
0
    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))
Example #20
0
    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)
Example #21
0
    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)
Example #22
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)
Example #23
0
    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))
Example #24
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(self._key_values(entity_type,
                                                resource_name,
                                                alarm_id))
Example #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)
Example #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)
Example #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))
Example #28
0
    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
    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)
    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)
    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)
Example #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)
Example #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)
Example #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)
Example #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)
Example #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)
    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)
    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)
Example #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))
Example #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)))
Example #41
0
 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)
Example #42
0
 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)
Example #43
0
    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)
 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)
Example #45
0
    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)