Beispiel #1
0
    def _validate_deduce_alarms(self, alarms, instances):
        """Validate alarm existence """
        self.assertNotEqual(len(alarms), 0, 'The alarms list is empty')
        LOG.info("The alarms list is : " + str(json.dumps(alarms)))

        deduce_alarms_1 = self._filter_list_by_pairs_parameters(
            alarms,
            [VProps.VITRAGE_TYPE, VProps.NAME, 'resource_type', 'resource_id'],
            [
                VITRAGE_DATASOURCE, VITRAGE_ALARM_NAME,
                NOVA_INSTANCE_DATASOURCE,
                utils.uni2str(instances[0].id)
            ])

        deduce_alarms_2 = self._filter_list_by_pairs_parameters(
            alarms,
            [VProps.VITRAGE_TYPE, VProps.NAME, 'resource_type', 'resource_id'],
            [
                VITRAGE_DATASOURCE, VITRAGE_ALARM_NAME,
                NOVA_INSTANCE_DATASOURCE,
                utils.uni2str(instances[1].id)
            ])

        self.assertEqual(3, len(alarms))
        self.assertEqual(1, len(deduce_alarms_1))
        self.assertEqual(1, len(deduce_alarms_2))
Beispiel #2
0
    def _validate_set_state(self, topology, instances):
        self.assertNotEqual(len(topology), 0, 'The topology graph is empty')

        host = self._filter_list_by_pairs_parameters(
            topology,
            [VProps.TYPE, VProps.ID, VProps.VITRAGE_STATE,
             VProps.AGGREGATED_STATE],
            [NOVA_HOST_DATASOURCE,
             self._get_hostname(),
             OperationalResourceState.ERROR,
             OperationalResourceState.ERROR])

        vm1 = self._filter_list_by_pairs_parameters(
            topology,
            [VProps.TYPE, VProps.ID, VProps.VITRAGE_STATE,
             VProps.AGGREGATED_STATE],
            [NOVA_INSTANCE_DATASOURCE,
             utils.uni2str(instances[0].id),
             OperationalResourceState.SUBOPTIMAL,
             OperationalResourceState.SUBOPTIMAL])

        vm2 = self._filter_list_by_pairs_parameters(
            topology,
            [VProps.TYPE, VProps.ID, VProps.VITRAGE_STATE,
             VProps.AGGREGATED_STATE],
            [NOVA_INSTANCE_DATASOURCE,
             utils.uni2str(instances[1].id),
             OperationalResourceState.SUBOPTIMAL,
             OperationalResourceState.SUBOPTIMAL])

        self.assertEqual(len(host), 1)
        self.assertEqual(len(vm1), 1)
        self.assertEqual(len(vm2), 1)
Beispiel #3
0
    def _validate_set_state(self, topology, instances):
        self.assertNotEqual(len(topology), 0, 'The topology graph is empty')

        host = self._filter_list_by_pairs_parameters(topology, [
            VProps.TYPE, VProps.ID, VProps.VITRAGE_STATE,
            VProps.AGGREGATED_STATE
        ], [
            NOVA_HOST_DATASOURCE,
            self._get_hostname(), OperationalResourceState.ERROR,
            OperationalResourceState.ERROR
        ])

        vm1 = self._filter_list_by_pairs_parameters(topology, [
            VProps.TYPE, VProps.ID, VProps.VITRAGE_STATE,
            VProps.AGGREGATED_STATE
        ], [
            NOVA_INSTANCE_DATASOURCE,
            utils.uni2str(
                instances[0].id), OperationalResourceState.SUBOPTIMAL,
            OperationalResourceState.SUBOPTIMAL
        ])

        vm2 = self._filter_list_by_pairs_parameters(topology, [
            VProps.TYPE, VProps.ID, VProps.VITRAGE_STATE,
            VProps.AGGREGATED_STATE
        ], [
            NOVA_INSTANCE_DATASOURCE,
            utils.uni2str(
                instances[1].id), OperationalResourceState.SUBOPTIMAL,
            OperationalResourceState.SUBOPTIMAL
        ])

        self.assertEqual(len(host), 1)
        self.assertEqual(len(vm1), 1)
        self.assertEqual(len(vm2), 1)
Beispiel #4
0
    def _validate_deduce_alarms(self, alarms, resources):
        """Validate alarm existence """
        if not alarms:
            LOG.error("The alarms list is empty")
            return False

        LOG.debug("The alarms list is : %s",
                  json.dumps(alarms))

        deduce_alarms_1 = self._filter_alarms_by_parameter(
            alarms,
            ['type', 'name', 'resource_type', 'resource_id'],
            [VITRAGE_DATASOURCE, VITRAGE_ALARM_NAME,
             NOVA_INSTANCE_DATASOURCE,
             utils.uni2str(resources[0].id)])

        deduce_alarms_2 = self._filter_alarms_by_parameter(
            alarms,
            ['type', 'name', 'resource_type', 'resource_id'],
            [VITRAGE_DATASOURCE, VITRAGE_ALARM_NAME,
             NOVA_INSTANCE_DATASOURCE,
             utils.uni2str(resources[1].id)])

        return (len(deduce_alarms_1) == 1 and
                len(deduce_alarms_2) == 1)
Beispiel #5
0
 def _filter_alarms_by_parameter(alarms_list, keys, values):
     filtered_alarms_list = []
     for item in alarms_list:
         verification = 0
         category = utils.uni2str(item[VertexProperties.CATEGORY])
         for index in range(len(keys)):
             key = utils.uni2str(item[keys[index]])
             if category == EntityCategory.ALARM \
                     and key == values[index]:
                 verification += 1
             else:
                 break
         if verification == len(keys):
             filtered_alarms_list.append(item)
     return filtered_alarms_list
Beispiel #6
0
 def _filter_alarms_by_parameter(alarms_list,
                                 keys, values):
     filtered_alarms_list = []
     for item in alarms_list:
         verification = 0
         category = utils.uni2str(item[VertexProperties.CATEGORY])
         for index in range(len(keys)):
             key = utils.uni2str(item[keys[index]])
             if category == EntityCategory.ALARM \
                     and key == values[index]:
                 verification += 1
             else:
                 break
         if verification == len(keys):
             filtered_alarms_list.append(item)
     return filtered_alarms_list
Beispiel #7
0
    def _get_alarm_id(self, resource_type, alarm_name, unic):
        if resource_type is NOVA_INSTANCE_DATASOURCE:
            resource = self._create_instances(num_instances=1)
            resource_id = utils.uni2str(resource[0].id)
        else:
            resource = self._get_host()
            resource_id = utils.uni2str(resource[VertexProperties.ID])

        self._create_ceilometer_alarm(resource_id=resource_id,
                                      name=alarm_name,
                                      unic=unic)

        list_alarms = self.vitrage_client.alarms.list(vitrage_id=None)
        expected_alarm = self._filter_alarms_by_parameter(
            list_alarms, ['resource_id', 'type'],
            [resource_id, AODH_DATASOURCE])
        return utils.uni2str(expected_alarm[0][VertexProperties.VITRAGE_ID])
Beispiel #8
0
    def _get_alarm_id(self, resource_type, alarm_name, unic):
        if resource_type is NOVA_INSTANCE_DATASOURCE:
            resource = self._create_instances(num_instances=1)
            resource_id = utils.uni2str(resource[0].id)
        else:
            resource = self._get_host()
            resource_id = utils.uni2str(resource[VertexProperties.ID])

        self._create_ceilometer_alarm(resource_id=resource_id,
                                      name=alarm_name, unic=unic)

        list_alarms = self.vitrage_client.alarms.list(vitrage_id=None)
        expected_alarm = self._filter_alarms_by_parameter(
            list_alarms, ['resource_id', 'type'],
            [resource_id, AODH_DATASOURCE])
        return utils.uni2str(
            expected_alarm[0][VertexProperties.VITRAGE_ID])
Beispiel #9
0
 def _filter_list_by_pairs_parameters(origin_list, keys, values):
     filtered_list = []
     for item in origin_list:
         verification = 0
         for index in range(len(keys)):
             if utils.uni2str(item[keys[index]]) == values[index]:
                 verification += 1
             else:
                 break
         if verification == len(keys):
             filtered_list.append(item)
     return filtered_list
Beispiel #10
0
 def _filter_list_by_pairs_parameters(origin_list,
                                      keys, values):
     filtered_list = []
     for item in origin_list:
         verification = 0
         for index in range(len(keys)):
             if utils.uni2str(item[keys[index]]) == values[index]:
                 verification += 1
             else:
                 break
         if verification == len(keys):
             filtered_list.append(item)
     return filtered_list
Beispiel #11
0
    def _validate_deduce_alarms(self, alarms, resources):
        """Validate alarm existence """
        if not alarms:
            LOG.error("The alarms list is empty")
            return False

        LOG.debug("The alarms list is : %s", json.dumps(alarms))

        deduce_alarms_1 = self._filter_alarms_by_parameter(
            alarms, ['type', 'name', 'resource_type', 'resource_id'], [
                VITRAGE_DATASOURCE, VITRAGE_ALARM_NAME,
                NOVA_INSTANCE_DATASOURCE,
                utils.uni2str(resources[0].id)
            ])

        deduce_alarms_2 = self._filter_alarms_by_parameter(
            alarms, ['type', 'name', 'resource_type', 'resource_id'], [
                VITRAGE_DATASOURCE, VITRAGE_ALARM_NAME,
                NOVA_INSTANCE_DATASOURCE,
                utils.uni2str(resources[1].id)
            ])

        return (len(deduce_alarms_1) == 1 and len(deduce_alarms_2) == 1)
Beispiel #12
0
    def _validate_deduce_alarms(self, alarms, instances):
        """Validate alarm existence """
        self.assertNotEqual(len(alarms), 0, 'The alarms list is empty')
        LOG.debug("The alarms list is : %s",
                  json.dumps(alarms))

        deduce_alarms_1 = self._filter_list_by_pairs_parameters(
            alarms,
            [VProps.TYPE, VProps.NAME, 'resource_type', 'resource_id'],
            [VITRAGE_TYPE, VITRAGE_ALARM_NAME,
             NOVA_INSTANCE_DATASOURCE,
             utils.uni2str(instances[0].id)])

        deduce_alarms_2 = self._filter_list_by_pairs_parameters(
            alarms,
            [VProps.TYPE, VProps.NAME, 'resource_type', 'resource_id'],
            [VITRAGE_TYPE, VITRAGE_ALARM_NAME,
             NOVA_INSTANCE_DATASOURCE,
             utils.uni2str(instances[1].id)])

        self.assertEqual(len(alarms), 3)
        self.assertEqual(len(deduce_alarms_1), 1)
        self.assertEqual(len(deduce_alarms_2), 1)
Beispiel #13
0
    def test_compare_cli_vs_api_alarms(self):
        """Wrapper that returns a test graph."""
        try:
            resources = self._create_instances(num_instances=1)
            self._create_ceilometer_alarm(resource_id=resources[0].id,
                                          name='tempest_aodh_test')

            api_alarms = self.vitrage_client.alarms.list(vitrage_id=None)
            cli_alarms = utils.run_vitrage_command(
                'vitrage alarms list', self.conf)
            self.assertTrue(self._compare_alarms_lists(
                api_alarms, cli_alarms, AODH_DATASOURCE,
                utils.uni2str(resources[0].id)))

        finally:
            self._delete_ceilometer_alarms()
            self._delete_instances()
Beispiel #14
0
    def test_compare_cli_vs_api_alarms(self):
        """Wrapper that returns a test graph."""
        try:
            instances = self._create_instances(num_instances=1)
            self.assertNotEqual(len(instances), 0,
                                'The instances list is empty')
            self._create_ceilometer_alarm(resource_id=instances[0].id,
                                          name='tempest_aodh_test')

            api_alarms = self.vitrage_client.alarms.list(vitrage_id=None)
            cli_alarms = utils.run_vitrage_command('vitrage alarm list',
                                                   self.conf)
            self._compare_alarms_lists(api_alarms, cli_alarms, AODH_DATASOURCE,
                                       utils.uni2str(instances[0].id))

        finally:
            self._delete_ceilometer_alarms()
            self._delete_instances()
Beispiel #15
0
    def test_compare_cli_vs_api_alarms(self):
        """Wrapper that returns a test graph."""
        try:
            instances = self._create_instances(num_instances=1)
            self.assertNotEqual(len(instances), 0,
                                'The instances list is empty')
            self._create_ceilometer_alarm(resource_id=instances[0].id,
                                          name='tempest_aodh_test')

            api_alarms = self.vitrage_client.alarms.list(vitrage_id=None)
            cli_alarms = utils.run_vitrage_command(
                'vitrage alarm list', self.conf)
            self._compare_alarms_lists(
                api_alarms, cli_alarms, AODH_DATASOURCE,
                utils.uni2str(instances[0].id))
        except Exception as e:
            LOG.exception(e)
            raise e
        finally:
            self._delete_ceilometer_alarms()
            self._delete_instances()
Beispiel #16
0
 def _get_value(item, key):
     return utils.uni2str(item[key])
Beispiel #17
0
 def _get_value(item, key):
     return utils.uni2str(item[key])