Esempio n. 1
0
    def setUp(self):
        super(TestBasicConsolidation, self).setUp()
        # fake metrics
        self.fake_metrics = faker_metrics_collector.FakerMetricsCollector()
        # fake cluster
        self.fake_cluster = faker_cluster_state.FakerModelCollector()

        p_osc = mock.patch.object(clients, "OpenStackClients")
        self.m_osc = p_osc.start()
        self.addCleanup(p_osc.stop)

        p_model = mock.patch.object(strategies.BasicConsolidation,
                                    "compute_model",
                                    new_callable=mock.PropertyMock)
        self.m_model = p_model.start()
        self.addCleanup(p_model.stop)

        p_ceilometer = mock.patch.object(strategies.BasicConsolidation,
                                         "ceilometer",
                                         new_callable=mock.PropertyMock)
        self.m_ceilometer = p_ceilometer.start()
        self.addCleanup(p_ceilometer.stop)

        p_audit_scope = mock.patch.object(strategies.BasicConsolidation,
                                          "audit_scope",
                                          new_callable=mock.PropertyMock)
        self.m_audit_scope = p_audit_scope.start()
        self.addCleanup(p_audit_scope.stop)

        self.m_audit_scope.return_value = mock.Mock()

        self.m_model.return_value = model_root.ModelRoot()
        self.m_ceilometer.return_value = mock.Mock(
            statistic_aggregation=self.fake_metrics.mock_get_statistics)
        self.strategy = strategies.BasicConsolidation(config=mock.Mock())
Esempio n. 2
0
    def test_trigger_audit_state_succeeded(self, m_collector):
        m_collector.return_value = faker.FakerModelCollector()
        audit_handler = oneshot.OneShotAuditHandler()
        audit_handler.execute(self.audit, self.context)
        audit = objects.audit.Audit.get_by_uuid(self.context, self.audit.uuid)
        self.assertEqual(objects.audit.State.SUCCEEDED, audit.state)

        expected_calls = [
            mock.call(self.context,
                      self.audit,
                      action=objects.fields.NotificationAction.STRATEGY,
                      phase=objects.fields.NotificationPhase.START),
            mock.call(self.context,
                      self.audit,
                      action=objects.fields.NotificationAction.STRATEGY,
                      phase=objects.fields.NotificationPhase.END),
            mock.call(self.context,
                      self.audit,
                      action=objects.fields.NotificationAction.PLANNER,
                      phase=objects.fields.NotificationPhase.START),
            mock.call(self.context,
                      self.audit,
                      action=objects.fields.NotificationAction.PLANNER,
                      phase=objects.fields.NotificationPhase.END)
        ]

        self.assertEqual(
            expected_calls,
            self.m_audit_notifications.send_action_notification.call_args_list)
Esempio n. 3
0
    def test_execute_sync_job_fails(self, m_start, m_list_available, m_load,
                                    m_list, m_save):
        fake_config = mock.Mock(period=.01)
        fake_collector = faker_cluster_state.FakerModelCollector(
            config=fake_config)
        fake_collector.synchronize = mock.Mock(
            side_effect=lambda: eventlet.sleep(.5))
        m_list_available.return_value = {
            'fake': faker_cluster_state.FakerModelCollector
        }
        m_load.return_value = fake_collector

        scheduler = scheduling.DecisionEngineSchedulingService()

        scheduler.start()

        m_start.assert_called_once_with(scheduler)
        jobs = scheduler.get_jobs()
        self.assertEqual(2, len(jobs))

        job = jobs[0]
        job.func()
        self.assertFalse(bool(fake_collector.cluster_data_model))

        self.assertIsInstance(job.trigger, interval_trigger.IntervalTrigger)
Esempio n. 4
0
    def test_trigger_audit_without_errors(self, m_collector):
        m_collector.return_value = faker.FakerModelCollector()
        audit_handler = oneshot.OneShotAuditHandler()
        audit_handler.execute(self.audit, self.context)

        expected_calls = [
            mock.call(self.context,
                      self.audit,
                      action=objects.fields.NotificationAction.STRATEGY,
                      phase=objects.fields.NotificationPhase.START),
            mock.call(self.context,
                      self.audit,
                      action=objects.fields.NotificationAction.STRATEGY,
                      phase=objects.fields.NotificationPhase.END),
            mock.call(self.context,
                      self.audit,
                      action=objects.fields.NotificationAction.PLANNER,
                      phase=objects.fields.NotificationPhase.START),
            mock.call(self.context,
                      self.audit,
                      action=objects.fields.NotificationAction.PLANNER,
                      phase=objects.fields.NotificationPhase.END)
        ]

        self.assertEqual(
            expected_calls,
            self.m_audit_notifications.send_action_notification.call_args_list)
Esempio n. 5
0
    def setUp(self):
        super(TestOutletTempControl, self).setUp()
        # fake metrics
        self.fake_metrics = faker_metrics_collector.FakerMetricsCollector()
        # fake cluster
        self.fake_cluster = faker_cluster_state.FakerModelCollector()

        p_model = mock.patch.object(strategies.OutletTempControl,
                                    "compute_model",
                                    new_callable=mock.PropertyMock)
        self.m_model = p_model.start()
        self.addCleanup(p_model.stop)

        p_ceilometer = mock.patch.object(strategies.OutletTempControl,
                                         "ceilometer",
                                         new_callable=mock.PropertyMock)
        self.m_ceilometer = p_ceilometer.start()
        self.addCleanup(p_ceilometer.stop)

        p_audit_scope = mock.patch.object(strategies.OutletTempControl,
                                          "audit_scope",
                                          new_callable=mock.PropertyMock)
        self.m_audit_scope = p_audit_scope.start()
        self.addCleanup(p_audit_scope.stop)

        self.m_audit_scope.return_value = mock.Mock()

        self.m_model.return_value = model_root.ModelRoot()
        self.m_ceilometer.return_value = mock.Mock(
            statistic_aggregation=self.fake_metrics.mock_get_statistics)
        self.strategy = strategies.OutletTempControl(config=mock.Mock())

        self.strategy.input_parameters = utils.Struct()
        self.strategy.input_parameters.update({'threshold': 34.3})
        self.strategy.threshold = 34.3
Esempio n. 6
0
    def __init__(self):
        self.api_version = self.API_VERSION
        self.service_name = None

        # fake cluster instead on Nova CDM
        self.fake_cdmc = faker_cluster_state.FakerModelCollector()

        self.publisher_id = 'test_publisher_id'
        self.conductor_topic = 'test_conductor_topic'
        self.status_topic = 'test_status_topic'
        self.notification_topics = ['nova']

        self.conductor_endpoints = []  # Disable audit endpoint
        self.status_endpoints = []

        self.notification_endpoints = [
            novanotification.ServiceUpdated(self.fake_cdmc),
            novanotification.InstanceCreated(self.fake_cdmc),
            novanotification.InstanceUpdated(self.fake_cdmc),
            novanotification.InstanceDeletedEnd(self.fake_cdmc),
            novanotification.LegacyInstanceCreatedEnd(self.fake_cdmc),
            novanotification.LegacyInstanceUpdated(self.fake_cdmc),
            novanotification.LegacyLiveMigratedEnd(self.fake_cdmc),
            novanotification.LegacyInstanceDeletedEnd(self.fake_cdmc),
        ]
Esempio n. 7
0
    def test_build_model_from_xml(self):
        fake_cluster = faker_cluster_state.FakerModelCollector()

        expected_model = fake_cluster.generate_scenario_1()
        struct_str = self.load_data('scenario_1.xml')

        model = model_root.ModelRoot.from_xml(struct_str)
        self.assertEqual(expected_model.to_string(), model.to_string())
Esempio n. 8
0
 def build():
     metrics = fake.FakerMetricsCollector()
     current_state_cluster = faker_cluster_state.FakerModelCollector()
     sercon = strategies.BasicConsolidation(config=mock.Mock())
     sercon._compute_model = current_state_cluster.generate_scenario_1()
     sercon.ceilometer = mock.MagicMock(
         get_statistics=metrics.mock_get_statistics)
     return sercon.execute()
Esempio n. 9
0
    def test_get_node_free_resources(self):
        fake_cluster = faker_cluster_state.FakerModelCollector()
        model = fake_cluster.generate_scenario_1()
        node = model.get_node_by_uuid("Node_0")
        resources_free = model.get_node_free_resources(node)

        self.assertEqual(20, resources_free.get('vcpu'))
        self.assertEqual(128, resources_free.get('memory'))
        self.assertEqual(210, resources_free.get('disk'))
Esempio n. 10
0
    def test_get_node_used_resources(self):
        fake_cluster = faker_cluster_state.FakerModelCollector()
        model = fake_cluster.generate_scenario_1()
        node = element.ComputeNode(uuid="Node_0")
        resources_used = model.get_node_used_resources(node)

        self.assertEqual(20, resources_used.get('vcpu'))
        self.assertEqual(4, resources_used.get('memory'))
        self.assertEqual(40, resources_used.get('disk'))
Esempio n. 11
0
    def test_get_node_instances(self):
        fake_cluster = faker_cluster_state.FakerModelCollector()
        model = fake_cluster.generate_scenario_1()
        node = element.ComputeNode(uuid="Node_0")
        instance0 = model.get_instance_by_uuid("INSTANCE_0")
        instance1 = model.get_instance_by_uuid("INSTANCE_1")
        instances = model.get_node_instances(node)

        self.assertEqual(2, len(instances))
        self.assertIn(instance0, instances)
        self.assertIn(instance1, instances)
Esempio n. 12
0
    def test_launch_audits_periodically(self, mock_list, mock_jobs, m_add_job,
                                        m_collector):
        audit_handler = continuous.ContinuousAuditHandler(mock.MagicMock())
        mock_list.return_value = self.audits
        mock_jobs.return_value = mock.MagicMock()
        m_add_job.return_value = audit_handler.execute_audit(
            self.audits[0], self.context)
        m_collector.return_value = faker.FakerModelCollector()

        audit_handler.launch_audits_periodically()
        m_add_job.assert_called()
Esempio n. 13
0
    def test_model_structure(self):
        fake_cluster = faker_cluster_state.FakerModelCollector()
        model1 = fake_cluster.build_scenario_1()

        self.assertEqual(5, len(model1.get_all_compute_nodes()))
        self.assertEqual(35, len(model1.get_all_instances()))
        self.assertEqual(8, len(model1.edges()))

        expected_struct_str = self.load_data('scenario_1.xml')
        model2 = model_root.ModelRoot.from_xml(expected_struct_str)

        self.assertTrue(model_root.ModelRoot.is_isomorphic(model2, model1))
Esempio n. 14
0
    def test_do_trigger_audit(self, mock_collector):
        mock_collector.return_value = faker_cluster_state.FakerModelCollector()

        audit_handler = oneshot_handler.OneShotAuditHandler(mock.MagicMock())
        endpoint = audit_endpoint.AuditEndpoint(audit_handler)

        with mock.patch.object(oneshot_handler.OneShotAuditHandler,
                               'execute') as mock_call:
            mock_call.return_value = 0
            endpoint.do_trigger_audit(self.context, self.audit.uuid)

        self.assertEqual(mock_call.call_count, 1)
Esempio n. 15
0
    def setUp(self):
        super(TestDummyWithScorer, self).setUp()
        # fake cluster
        self.fake_cluster = faker_cluster_state.FakerModelCollector()

        p_model = mock.patch.object(strategies.DummyWithScorer,
                                    "compute_model",
                                    new_callable=mock.PropertyMock)
        self.m_model = p_model.start()
        self.addCleanup(p_model.stop)

        self.m_model.return_value = model_root.ModelRoot()
        self.strategy = strategies.DummyWithScorer(config=mock.Mock())
Esempio n. 16
0
    def test_trigger_audit(self, mock_collector, mock_handler):
        mock_collector.return_value = faker_cluster_state.FakerModelCollector()

        audit_handler = oneshot_handler.OneShotAuditHandler
        endpoint = audit_endpoint.AuditEndpoint(audit_handler)

        with mock.patch.object(endpoint.executor, 'submit') as mock_call:
            mock_execute = mock.call(endpoint.do_trigger_audit, self.context,
                                     self.audit.uuid)
            endpoint.trigger_audit(self.context, self.audit.uuid)

        mock_call.assert_has_calls([mock_execute])
        self.assertEqual(mock_call.call_count, 1)
Esempio n. 17
0
    def setUp(self):
        super(TestStrategyContext, self).setUp()
        obj_utils.create_test_goal(self.context, id=1, name="DUMMY")
        audit_template = obj_utils.create_test_audit_template(
            self.context, uuid=utils.generate_uuid())
        self.audit = obj_utils.create_test_audit(
            self.context, audit_template_id=audit_template.id)
        self.fake_cluster = faker_cluster_state.FakerModelCollector()

        p_model = mock.patch.object(
            strategies.DummyStrategy, "compute_model",
            new_callable=mock.PropertyMock)
        self.m_model = p_model.start()
        self.addCleanup(p_model.stop)

        self.m_model.return_value = self.fake_cluster.build_scenario_1()
Esempio n. 18
0
    def test_trigger_audit_with_error(self, m_collector, m_do_execute):
        m_collector.return_value = faker.FakerModelCollector()
        m_do_execute.side_effect = Exception
        audit_handler = oneshot.OneShotAuditHandler()
        audit_handler.execute(self.audit, self.context)

        expected_calls = [
            mock.call(self.context, self.audit,
                      action=objects.fields.NotificationAction.STRATEGY,
                      phase=objects.fields.NotificationPhase.START),
            mock.call(self.context, self.audit,
                      action=objects.fields.NotificationAction.STRATEGY,
                      priority=objects.fields.NotificationPriority.ERROR,
                      phase=objects.fields.NotificationPhase.ERROR)]

        self.assertEqual(
            expected_calls,
            self.m_audit_notifications.send_action_notification.call_args_list)
Esempio n. 19
0
    def setUp(self):
        super(TestUniformAirflow, self).setUp()
        # fake metrics
        self.fake_metrics = self.fake_datasource_cls()
        # fake cluster
        self.fake_cluster = faker_cluster_state.FakerModelCollector()

        p_model = mock.patch.object(strategies.UniformAirflow,
                                    "compute_model",
                                    new_callable=mock.PropertyMock)
        self.m_model = p_model.start()
        self.addCleanup(p_model.stop)

        p_datasource = mock.patch.object(strategies.UniformAirflow,
                                         'datasource_backend',
                                         new_callable=mock.PropertyMock)
        self.m_datasource = p_datasource.start()
        self.addCleanup(p_datasource.stop)

        p_audit_scope = mock.patch.object(strategies.UniformAirflow,
                                          "audit_scope",
                                          new_callable=mock.PropertyMock)
        self.m_audit_scope = p_audit_scope.start()
        self.addCleanup(p_audit_scope.stop)

        self.m_audit_scope.return_value = mock.Mock()

        self.m_model.return_value = model_root.ModelRoot()
        self.m_datasource.return_value = mock.Mock(
            statistic_aggregation=self.fake_metrics.mock_get_statistics)
        self.strategy = strategies.UniformAirflow(config=mock.Mock(
            datasource=self.datasource))
        self.strategy.input_parameters = utils.Struct()
        self.strategy.input_parameters.update({
            'threshold_airflow': 400.0,
            'threshold_inlet_t': 28.0,
            'threshold_power': 350.0,
            'period': 300
        })
        self.strategy.threshold_airflow = 400
        self.strategy.threshold_inlet_t = 28
        self.strategy.threshold_power = 350
        self._period = 300
Esempio n. 20
0
class FakeManager(service_manager.ServiceManager):

    API_VERSION = '1.0'

    fake_cdmc = faker_cluster_state.FakerModelCollector()

    @property
    def service_name(self):
        return 'watcher-fake'

    @property
    def api_version(self):
        return self.API_VERSION

    @property
    def publisher_id(self):
        return 'test_publisher_id'

    @property
    def conductor_topic(self):
        return 'test_conductor_topic'

    @property
    def notification_topics(self):
        return ['nova']

    @property
    def conductor_endpoints(self):
        return []  # Disable audit endpoint

    @property
    def notification_endpoints(self):
        return [
            novanotification.ServiceUpdated(self.fake_cdmc),
            novanotification.InstanceCreated(self.fake_cdmc),
            novanotification.InstanceUpdated(self.fake_cdmc),
            novanotification.InstanceDeletedEnd(self.fake_cdmc),
            novanotification.LegacyInstanceCreatedEnd(self.fake_cdmc),
            novanotification.LegacyInstanceUpdated(self.fake_cdmc),
            novanotification.LegacyLiveMigratedEnd(self.fake_cdmc),
            novanotification.LegacyInstanceDeletedEnd(self.fake_cdmc),
        ]
Esempio n. 21
0
    def test_trigger_audit_send_notification(self, mock_collector):
        messaging = mock.MagicMock()
        mock_collector.return_value = faker.FakerModelCollector()
        audit_handler = oneshot.OneShotAuditHandler(messaging)
        audit_handler.execute(self.audit, self.context)

        call_on_going = mock.call(
            events.Events.TRIGGER_AUDIT.name, {
                'audit_status': audit_objects.State.ONGOING,
                'audit_uuid': self.audit.uuid
            })
        call_succeeded = mock.call(
            events.Events.TRIGGER_AUDIT.name, {
                'audit_status': audit_objects.State.SUCCEEDED,
                'audit_uuid': self.audit.uuid
            })

        calls = [call_on_going, call_succeeded]
        messaging.publish_status_event.assert_has_calls(calls)
        self.assertEqual(2, messaging.publish_status_event.call_count)
Esempio n. 22
0
    def test_start_de_scheduling_service(self, m_start, m_list_available,
                                         m_load):
        m_list_available.return_value = {
            'fake': faker_cluster_state.FakerModelCollector
        }
        fake_collector = faker_cluster_state.FakerModelCollector(
            config=mock.Mock(period=777))
        m_load.return_value = fake_collector

        scheduler = scheduling.DecisionEngineSchedulingService()

        scheduler.start()

        m_start.assert_called_once_with(scheduler)
        jobs = scheduler.get_jobs()
        self.assertEqual(2, len(jobs))

        job = jobs[0]
        self.assertTrue(bool(fake_collector.cluster_data_model))

        self.assertIsInstance(job.trigger, interval_trigger.IntervalTrigger)
Esempio n. 23
0
    def setUp(self):
        super(TestWorkloadBalance, self).setUp()
        # fake metrics
        self.fake_metrics = self.fake_datasource_cls()
        # fake cluster
        self.fake_cluster = faker_cluster_state.FakerModelCollector()

        p_model = mock.patch.object(
            strategies.WorkloadBalance, "compute_model",
            new_callable=mock.PropertyMock)
        self.m_model = p_model.start()
        self.addCleanup(p_model.stop)

        p_datasource = mock.patch.object(
            strategies.WorkloadBalance, "datasource_backend",
            new_callable=mock.PropertyMock)
        self.m_datasource = p_datasource.start()
        self.addCleanup(p_datasource.stop)

        p_audit_scope = mock.patch.object(
            strategies.WorkloadBalance, "audit_scope",
            new_callable=mock.PropertyMock
        )
        self.m_audit_scope = p_audit_scope.start()
        self.addCleanup(p_audit_scope.stop)

        self.m_audit_scope.return_value = mock.Mock()
        self.m_datasource.return_value = mock.Mock(
            statistic_aggregation=self.fake_metrics.mock_get_statistics_wb)
        self.strategy = strategies.WorkloadBalance(
            config=mock.Mock(datasource=self.datasource))
        self.strategy.input_parameters = utils.Struct()
        self.strategy.input_parameters.update({'metrics': 'cpu_util',
                                               'threshold': 25.0,
                                               'period': 300,
                                               'granularity': 300})
        self.strategy.threshold = 25.0
        self.strategy._period = 300
        self.strategy._meter = "cpu_util"
        self.strategy._granularity = 300
Esempio n. 24
0
    def test_model_structure(self):
        fake_cluster = faker_cluster_state.FakerModelCollector()
        model = fake_cluster.build_scenario_1()

        self.assertEqual(5, len(model.get_all_compute_nodes()))
        self.assertEqual(35, len(model.get_all_instances()))
        self.assertEqual(8, len(model.edges()))

        expected_struct_str = self.load_data('scenario_1.xml')
        parser = etree.XMLParser(remove_blank_text=True)
        expected_struct = etree.fromstring(expected_struct_str, parser)
        model_structure = etree.fromstring(model.to_string(), parser)

        normalized_expected_output = six.BytesIO()
        normalized_model_output = six.BytesIO()
        expected_struct.getroottree().write_c14n(normalized_expected_output)
        model_structure.getroottree().write_c14n(normalized_model_output)

        normalized_expected_struct = normalized_expected_output.getvalue()
        normalized_model_struct = normalized_model_output.getvalue()

        self.assertEqual(normalized_expected_struct, normalized_model_struct)
Esempio n. 25
0
    def setUp(self):
        super(TestHostMaintenance, self).setUp()

        # fake cluster
        self.fake_cluster = faker_cluster_state.FakerModelCollector()

        p_model = mock.patch.object(strategies.HostMaintenance,
                                    "compute_model",
                                    new_callable=mock.PropertyMock)
        self.m_model = p_model.start()
        self.addCleanup(p_model.stop)

        p_audit_scope = mock.patch.object(strategies.HostMaintenance,
                                          "audit_scope",
                                          new_callable=mock.PropertyMock)
        self.m_audit_scope = p_audit_scope.start()
        self.addCleanup(p_audit_scope.stop)

        self.m_audit_scope.return_value = mock.Mock()

        self.m_model.return_value = model_root.ModelRoot()
        self.strategy = strategies.HostMaintenance(config=mock.Mock())
Esempio n. 26
0
    def setUp(self):
        super(TestBasicConsolidation, self).setUp()
        # fake metrics
        self.fake_metrics = self.fake_datasource_cls()
        # fake cluster
        self.fake_cluster = faker_cluster_state.FakerModelCollector()

        p_osc = mock.patch.object(clients, "OpenStackClients")
        self.m_osc = p_osc.start()
        self.addCleanup(p_osc.stop)

        p_model = mock.patch.object(strategies.BasicConsolidation,
                                    "compute_model",
                                    new_callable=mock.PropertyMock)
        self.m_model = p_model.start()
        self.addCleanup(p_model.stop)

        p_datasource = mock.patch.object(strategies.BasicConsolidation,
                                         'datasource_backend',
                                         new_callable=mock.PropertyMock)
        self.m_datasource = p_datasource.start()
        self.addCleanup(p_datasource.stop)

        p_audit_scope = mock.patch.object(strategies.BasicConsolidation,
                                          "audit_scope",
                                          new_callable=mock.PropertyMock)
        self.m_audit_scope = p_audit_scope.start()
        self.addCleanup(p_audit_scope.stop)

        self.m_audit_scope.return_value = mock.Mock()

        self.m_model.return_value = model_root.ModelRoot()
        self.m_datasource.return_value = mock.Mock(
            get_host_cpu_usage=self.fake_metrics.get_usage_node_cpu,
            get_instance_cpu_usage=self.fake_metrics.
            get_average_usage_instance_cpu)
        self.strategy = strategies.BasicConsolidation(config=mock.Mock(
            datasource=self.datasource))
    def setUp(self):
        super(TestWorkloadBalance, self).setUp()
        # fake metrics
        self.fake_metrics = ceilometer_metrics.FakeCeilometerMetrics()
        # fake cluster
        self.fake_cluster = faker_cluster_state.FakerModelCollector()

        p_model = mock.patch.object(strategies.WorkloadBalance,
                                    "compute_model",
                                    new_callable=mock.PropertyMock)
        self.m_model = p_model.start()
        self.addCleanup(p_model.stop)

        p_ceilometer = mock.patch.object(strategies.WorkloadBalance,
                                         "ceilometer",
                                         new_callable=mock.PropertyMock)
        self.m_ceilometer = p_ceilometer.start()
        self.addCleanup(p_ceilometer.stop)

        p_audit_scope = mock.patch.object(strategies.WorkloadBalance,
                                          "audit_scope",
                                          new_callable=mock.PropertyMock)
        self.m_audit_scope = p_audit_scope.start()
        self.addCleanup(p_audit_scope.stop)

        self.m_audit_scope.return_value = mock.Mock()

        self.m_model.return_value = model_root.ModelRoot()
        self.m_ceilometer.return_value = mock.Mock(
            statistic_aggregation=self.fake_metrics.mock_get_statistics_wb)
        self.strategy = strategies.WorkloadBalance(config=mock.Mock())
        self.strategy.input_parameters = utils.Struct()
        self.strategy.input_parameters.update({
            'threshold': 25.0,
            'period': 300
        })
        self.strategy.threshold = 25.0
        self.strategy._period = 300
Esempio n. 28
0
    def setUp(self):
        super(TestNoisyNeighbor, self).setUp()
        # fake metrics
        self.f_metrics = self.fake_datasource_cls()
        # fake cluster
        self.fake_cluster = faker_cluster_state.FakerModelCollector()

        p_model = mock.patch.object(strategies.NoisyNeighbor,
                                    "compute_model",
                                    new_callable=mock.PropertyMock)
        self.m_model = p_model.start()
        self.addCleanup(p_model.stop)

        p_datasource = mock.patch.object(strategies.NoisyNeighbor,
                                         "datasource_backend",
                                         new_callable=mock.PropertyMock)
        self.m_datasource = p_datasource.start()
        self.addCleanup(p_datasource.stop)

        p_audit_scope = mock.patch.object(strategies.NoisyNeighbor,
                                          "audit_scope",
                                          new_callable=mock.PropertyMock)
        self.m_audit_scope = p_audit_scope.start()
        self.addCleanup(p_audit_scope.stop)

        self.m_audit_scope.return_value = mock.Mock()

        self.m_model.return_value = model_root.ModelRoot()
        self.m_datasource.return_value = mock.Mock(
            get_instance_l3_cache_usage=self.f_metrics.mock_get_statistics_nn)
        self.strategy = strategies.NoisyNeighbor(config=mock.Mock())

        self.strategy.input_parameters = utils.Struct()
        self.strategy.input_parameters.update({'cache_threshold': 35})
        self.strategy.threshold = 35
        self.strategy.input_parameters.update({'period': 100})
        self.strategy.threshold = 100
Esempio n. 29
0
    def setUp(self):
        super(TestZoneMigration, self).setUp()
        # fake compute cluster
        self.fake_c_cluster = faker_cluster_state.FakerModelCollector()

        # fake storage cluster
        self.fake_s_cluster = faker_cluster_state.FakerStorageModelCollector()

        p_c_model = mock.patch.object(
            strategies.ZoneMigration, "compute_model",
            new_callable=mock.PropertyMock)
        self.m_c_model = p_c_model.start()
        self.addCleanup(p_c_model.stop)

        p_s_model = mock.patch.object(
            strategies.ZoneMigration, "storage_model",
            new_callable=mock.PropertyMock)
        self.m_s_model = p_s_model.start()
        self.addCleanup(p_s_model.stop)

        p_migrate_compute_nodes = mock.patch.object(
            strategies.ZoneMigration, "migrate_compute_nodes",
            new_callable=mock.PropertyMock)
        self.m_migrate_compute_nodes = p_migrate_compute_nodes.start()
        self.addCleanup(p_migrate_compute_nodes.stop)

        p_migrate_storage_pools = mock.patch.object(
            strategies.ZoneMigration, "migrate_storage_pools",
            new_callable=mock.PropertyMock)
        self.m_migrate_storage_pools = p_migrate_storage_pools.start()
        self.addCleanup(p_migrate_storage_pools.stop)

        p_parallel_total = mock.patch.object(
            strategies.ZoneMigration, "parallel_total",
            new_callable=mock.PropertyMock)
        self.m_parallel_total = p_parallel_total.start()
        self.addCleanup(p_parallel_total.stop)

        p_parallel_per_node = mock.patch.object(
            strategies.ZoneMigration, "parallel_per_node",
            new_callable=mock.PropertyMock)
        self.m_parallel_per_node = p_parallel_per_node.start()
        self.addCleanup(p_parallel_per_node.stop)

        p_parallel_per_pool = mock.patch.object(
            strategies.ZoneMigration, "parallel_per_pool",
            new_callable=mock.PropertyMock)
        self.m_parallel_per_pool = p_parallel_per_pool.start()
        self.addCleanup(p_parallel_per_pool.stop)

        p_audit_scope = mock.patch.object(
            strategies.ZoneMigration, "audit_scope",
            new_callable=mock.PropertyMock
        )
        self.m_audit_scope = p_audit_scope.start()
        self.addCleanup(p_audit_scope.stop)

        p_priority = mock.patch.object(
            strategies.ZoneMigration, "priority",
            new_callable=mock.PropertyMock
        )
        self.m_priority = p_priority.start()
        self.addCleanup(p_priority.stop)

        model = self.fake_c_cluster.generate_scenario_1()
        self.m_c_model.return_value = model

        model = self.fake_s_cluster.generate_scenario_1()
        self.m_s_model.return_value = model

        self.m_parallel_total.return_value = 6
        self.m_parallel_per_node.return_value = 2
        self.m_parallel_per_pool.return_value = 2
        self.m_audit_scope.return_value = mock.Mock()
        self.m_migrate_compute_nodes.return_value = [
            {"src_node": "src1", "dst_node": "dst1"},
            {"src_node": "src2", "dst_node": "dst2"}
        ]
        self.m_migrate_storage_pools.return_value = [
            {"src_pool": "src1@back1#pool1", "dst_pool": "dst1@back1#pool1",
             "src_type": "type1", "dst_type": "type1"},
            {"src_pool": "src2@back1#pool1", "dst_pool": "dst2@back2#pool1",
             "src_type": "type2", "dst_type": "type3"}
        ]
        self.m_audit_scope.return_value = mock.Mock()

        self.strategy = strategies.ZoneMigration(
            config=mock.Mock())

        self.m_osc_cls = mock.Mock()
        self.m_osc = mock.Mock(spec=clients.OpenStackClients)
        self.m_osc_cls.return_value = self.m_osc
        m_openstack_clients = mock.patch.object(
            clients, "OpenStackClients", self.m_osc_cls)
        m_openstack_clients.start()
        self.addCleanup(m_openstack_clients.stop)

        self.m_n_helper_cls = mock.Mock()
        self.m_n_helper = mock.Mock(spec=nova_helper.NovaHelper)
        self.m_n_helper_cls.return_value = self.m_n_helper
        m_nova_helper = mock.patch.object(
            nova_helper, "NovaHelper", self.m_n_helper_cls)
        m_nova_helper.start()
        self.addCleanup(m_nova_helper.stop)

        self.m_c_helper_cls = mock.Mock()
        self.m_c_helper = mock.Mock(spec=cinder_helper.CinderHelper)
        self.m_c_helper_cls.return_value = self.m_c_helper
        m_cinder_helper = mock.patch.object(
            cinder_helper, "CinderHelper", self.m_c_helper_cls)
        m_cinder_helper.start()
        self.addCleanup(m_cinder_helper.stop)
Esempio n. 30
0
 def setUp(self):
     super(TestComputeScope, self).setUp()
     self.fake_cluster = faker_cluster_state.FakerModelCollector()