Esempio n. 1
0
 def _create_mock_events():
     gen_list = mock_sync.simple_zone_generators(
         2,
         4,
         snapshot_events=2,
         snap_vals={
             DatasourceProperties.DATASOURCE_ACTION:
             DatasourceAction.INIT_SNAPSHOT
         })
     gen_list += mock_sync.simple_host_generators(
         2,
         4,
         4,
         snap_vals={
             DatasourceProperties.DATASOURCE_ACTION:
             DatasourceAction.INIT_SNAPSHOT
         })
     gen_list += mock_sync.simple_instance_generators(
         4,
         15,
         15,
         snap_vals={
             DatasourceProperties.DATASOURCE_ACTION:
             DatasourceAction.INIT_SNAPSHOT
         })
     return mock_sync.generate_sequential_events_list(gen_list)
    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)
    def test_snapshot_event_transform(self):
        LOG.debug('Test tactual transform action for '
                  'snapshot and snapshot init events')

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

        for event in instance_events:
            # Test action
            wrapper = self.transformers[NOVA_INSTANCE_DATASOURCE].transform(
                event)

            # Test assertions
            self._validate_vertex_props(wrapper.vertex, event)

            self.assertEqual(1,
                             len(wrapper.neighbors),
                             'Instance has only one host neighbor')
            host_neighbor = wrapper.neighbors[0]
            self._validate_host_neighbor(host_neighbor, event)

            datasource_action = event[DSProps.DATASOURCE_ACTION]
            if datasource_action == DatasourceAction.INIT_SNAPSHOT:
                self.assertEqual(GraphAction.CREATE_ENTITY, wrapper.action)
            elif datasource_action == DatasourceAction.SNAPSHOT:
                self.assertEqual(GraphAction.UPDATE_ENTITY, wrapper.action)
Esempio n. 4
0
    def test_snapshot_event_transform(self):
        LOG.debug('Test tactual transform action for '
                  'snapshot and snapshot init events')

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

        for event in instance_events:
            # Test action
            wrapper = self.transformers[NOVA_INSTANCE_DATASOURCE].transform(
                event)

            # Test assertions
            self._validate_vertex_props(wrapper.vertex, event)

            self.assertEqual(1,
                             len(wrapper.neighbors),
                             'Instance has only one host neighbor')
            host_neighbor = wrapper.neighbors[0]
            self._validate_host_neighbor(host_neighbor, event)

            datasource_action = event[DSProps.DATASOURCE_ACTION]
            if datasource_action == DatasourceAction.INIT_SNAPSHOT:
                self.assertEqual(GraphAction.CREATE_ENTITY, wrapper.action)
            elif datasource_action == DatasourceAction.SNAPSHOT:
                self.assertEqual(GraphAction.UPDATE_ENTITY, wrapper.action)
    def test_update_event_transform(self):
        LOG.debug('Test tactual transform action for update events')

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

        for event in instance_events:
            # Test action
            wrapper = self.transformers[NOVA_INSTANCE_DATASOURCE].transform(
                event)

            # Test assertions
            self._validate_vertex_props(wrapper.vertex, event)

            # Validate the neighbors: only one  valid host neighbor
            neighbors = wrapper.neighbors
            self.assertEqual(1, len(neighbors))
            self._validate_host_neighbor(neighbors[0], event)

            event_type = event[DSProps.EVENT_TYPE]
            if event_type == 'compute.instance.delete.end':
                self.assertEqual(GraphAction.DELETE_ENTITY, wrapper.action)
            elif event_type == 'compute.instance.create.start':
                self.assertEqual(GraphAction.CREATE_ENTITY, wrapper.action)
            else:
                self.assertEqual(GraphAction.UPDATE_ENTITY, wrapper.action)
Esempio n. 6
0
    def _create_events():
        spec_list = mock_sync.simple_instance_generators(
            host_num=1, vm_num=1, update_events=1,
            use_nova_versioned_format=True
        )
        update_versioned_event = \
            mock_sync.generate_random_events_list(spec_list)[0]

        spec_list = mock_sync.simple_instance_generators(
            host_num=1, vm_num=1, update_events=1,
            use_nova_versioned_format=False
        )
        update_legacy_event = \
            mock_sync.generate_random_events_list(spec_list)[0]

        return update_versioned_event, update_legacy_event
Esempio n. 7
0
    def test_update_event_transform(self):
        LOG.debug('Test tactual transform action for update events')

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

        for event in instance_events:
            # Test action
            wrapper = self.transformers[NOVA_INSTANCE_DATASOURCE].transform(
                event)

            # Test assertions
            self._validate_vertex_props(wrapper.vertex, event)

            # Validate the neighbors: only one  valid host neighbor
            neighbors = wrapper.neighbors
            self.assertEqual(1, len(neighbors))
            self._validate_host_neighbor(neighbors[0], event)

            event_type = event[DSProps.EVENT_TYPE]
            if event_type == 'compute.instance.delete.end':
                self.assertEqual(GraphAction.DELETE_ENTITY, wrapper.action)
            elif event_type == 'compute.instance.create.start':
                self.assertEqual(GraphAction.CREATE_ENTITY, wrapper.action)
            else:
                self.assertEqual(GraphAction.UPDATE_ENTITY, wrapper.action)
Esempio n. 8
0
 def _create_mock_events():
     gen_list = mock_sync.simple_zone_generators(
         2, 4, snapshot_events=2, snap_vals={'sync_mode': 'init_snapshot'})
     gen_list += mock_sync.simple_host_generators(
         2, 4, 4, snap_vals={'sync_mode': 'init_snapshot'})
     gen_list += mock_sync.simple_instance_generators(
         4, 15, 15, snap_vals={'sync_mode': 'init_snapshot'})
     return mock_sync.generate_sequential_events_list(gen_list)
    def test_update_event_transform(self):
        LOG.debug('Test actual transform action for update events')

        # Test setup
        spec_list = mock_sync.simple_instance_generators(
            host_num=1, vm_num=1, update_events=10,
            use_nova_versioned_format=False
        )
        instance_events = mock_sync.generate_random_events_list(spec_list)

        self._test_update_event_transform(instance_events)
Esempio n. 10
0
 def _create_mock_events(self):
     gen_list = mock_driver.simple_zone_generators(
         self.NUM_ZONES,
         self.NUM_HOSTS,
         snapshot_events=self.NUM_ZONES,
         snap_vals={DSProps.SYNC_MODE: SyncMode.INIT_SNAPSHOT})
     gen_list += mock_driver.simple_host_generators(
         self.NUM_ZONES,
         self.NUM_HOSTS,
         self.NUM_HOSTS,
         snap_vals={DSProps.SYNC_MODE: SyncMode.INIT_SNAPSHOT})
     gen_list += mock_driver.simple_instance_generators(
         self.NUM_HOSTS,
         self.NUM_INSTANCES,
         self.NUM_INSTANCES,
         snap_vals={DSProps.SYNC_MODE: SyncMode.INIT_SNAPSHOT})
     return mock_driver.generate_sequential_events_list(gen_list)
Esempio n. 11
0
 def _create_mock_events(self):
     gen_list = mock_sync.simple_zone_generators(
         self.NUM_ZONES,
         self.NUM_HOSTS,
         snapshot_events=self.NUM_ZONES,
         snap_vals={DSProps.SYNC_MODE: SyncMode.INIT_SNAPSHOT})
     gen_list += mock_sync.simple_host_generators(
         self.NUM_ZONES,
         self.NUM_HOSTS,
         self.NUM_HOSTS,
         snap_vals={DSProps.SYNC_MODE: SyncMode.INIT_SNAPSHOT})
     gen_list += mock_sync.simple_instance_generators(
         self.NUM_HOSTS,
         self.NUM_INSTANCES,
         self.NUM_INSTANCES,
         snap_vals={DSProps.SYNC_MODE: SyncMode.INIT_SNAPSHOT})
     return mock_sync.generate_sequential_events_list(gen_list)
Esempio n. 12
0
    def _create_event(spec_type=None, sync_mode=None,
                      event_type=None, properties=None):
        # generate event
        spec_list = mock_sync.simple_instance_generators(1, 1, 1)
        events_list = mock_sync.generate_random_events_list(
            spec_list)

        # update properties
        if sync_mode is not None:
            events_list[0][DSProps.SYNC_MODE] = sync_mode

        if event_type is not None:
            events_list[0][DSProps.EVENT_TYPE] = event_type

        if properties is not None:
            for key, value in properties.items():
                events_list[0][key] = value

        return events_list[0]
Esempio n. 13
0
 def _create_mock_events(self):
     gen_list = mock_sync.simple_zone_generators(
         self.NUM_ZONES,
         self.NUM_HOSTS,
         snapshot_events=self.NUM_ZONES,
         snap_vals={DSProps.DATASOURCE_ACTION:
                    DatasourceAction.INIT_SNAPSHOT})
     gen_list += mock_sync.simple_host_generators(
         self.NUM_ZONES,
         self.NUM_HOSTS,
         self.NUM_HOSTS,
         snap_vals={DSProps.DATASOURCE_ACTION:
                    DatasourceAction.INIT_SNAPSHOT})
     gen_list += mock_sync.simple_instance_generators(
         self.NUM_HOSTS,
         self.NUM_INSTANCES,
         self.NUM_INSTANCES,
         snap_vals={DSProps.DATASOURCE_ACTION:
                    DatasourceAction.INIT_SNAPSHOT})
     return mock_sync.generate_sequential_events_list(gen_list)
Esempio n. 14
0
    def _create_event(spec_type=None,
                      datasource_action=None,
                      event_type=None,
                      properties=None):
        # generate event
        spec_list = mock_sync.simple_instance_generators(1, 1, 1)
        events_list = mock_sync.generate_random_events_list(spec_list)

        # update properties
        if datasource_action is not None:
            events_list[0][DSProps.DATASOURCE_ACTION] = datasource_action

        if event_type is not None:
            events_list[0][DSProps.EVENT_TYPE] = event_type

        if properties is not None:
            for key, value in properties.items():
                events_list[0][key] = value

        return events_list[0]
Esempio n. 15
0
    def _create_event(spec_type=None,
                      sync_mode=None,
                      event_type=None,
                      properties=None):
        # generate event
        spec_list = mock_sync.simple_instance_generators(1, 1, 1)
        events_list = mock_sync.generate_random_events_list(spec_list)

        # update properties
        if sync_mode is not None:
            events_list[0][DSProps.SYNC_MODE] = sync_mode

        if event_type is not None:
            events_list[0][DSProps.EVENT_TYPE] = event_type

        if properties is not None:
            for key, value in properties.items():
                events_list[0][key] = value

        return events_list[0]
Esempio n. 16
0
 def _create_mock_events(self):
     gen_list = mock_driver.simple_zone_generators(
         self.NUM_ZONES,
         self.NUM_HOSTS,
         snapshot_events=self.NUM_ZONES,
         snap_vals={DSProps.DATASOURCE_ACTION:
                    DatasourceAction.INIT_SNAPSHOT})
     gen_list += mock_driver.simple_host_generators(
         self.NUM_ZONES,
         self.NUM_HOSTS,
         self.NUM_HOSTS,
         snap_vals={DSProps.DATASOURCE_ACTION:
                    DatasourceAction.INIT_SNAPSHOT})
     gen_list += mock_driver.simple_instance_generators(
         self.NUM_HOSTS,
         self.NUM_INSTANCES,
         self.NUM_INSTANCES,
         snap_vals={DSProps.DATASOURCE_ACTION:
                    DatasourceAction.INIT_SNAPSHOT})
     return mock_driver.generate_sequential_events_list(gen_list)
Esempio n. 17
0
    def _create_event(spec_type=None,
                      datasource_action=None,
                      event_type=None,
                      properties=None):
        # generate event
        spec_list = mock_sync.simple_instance_generators(1, 1, 1)
        events_list = mock_sync.generate_random_events_list(
            spec_list)

        # update properties
        if datasource_action is not None:
            events_list[0][DSProps.DATASOURCE_ACTION] = datasource_action

        if event_type is not None:
            events_list[0][DSProps.EVENT_TYPE] = event_type

        if properties is not None:
            for key, value in properties.items():
                events_list[0][key] = value

        return events_list[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)