def setUp(self):
        super(TestWorkloadStabilization, self).setUp()

        # fake metrics
        self.fake_metrics = self.fake_datasource_cls()

        self.hosts_load_assert = {
            'Node_0': {
                'instance_cpu_usage': 0.07,
                'instance_ram_usage': 7.0,
                'vcpus': 40
            },
            'Node_1': {
                'instance_cpu_usage': 0.07,
                'instance_ram_usage': 5,
                'vcpus': 40
            },
            'Node_2': {
                'instance_cpu_usage': 0.8,
                'instance_ram_usage': 29,
                'vcpus': 40
            },
            'Node_3': {
                'instance_cpu_usage': 0.05,
                'instance_ram_usage': 8,
                'vcpus': 40
            },
            'Node_4': {
                'instance_cpu_usage': 0.05,
                'instance_ram_usage': 4,
                'vcpus': 40
            }
        }

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

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

        self.m_datasource.return_value = mock.Mock(
            statistic_aggregation=self.fake_metrics.mock_get_statistics)

        self.strategy = strategies.WorkloadStabilization(config=mock.Mock(
            datasource=self.datasource))
        self.strategy.input_parameters = utils.Struct()
        self.strategy.input_parameters.update({
            'metrics': ["instance_cpu_usage", "instance_ram_usage"],
            'thresholds': {
                "instance_cpu_usage": 0.2,
                "instance_ram_usage": 0.2
            },
            'weights': {
                "instance_cpu_usage_weight": 1.0,
                "instance_ram_usage_weight": 1.0
            },
            'instance_metrics': {
                "instance_cpu_usage": "host_cpu_usage",
                "instance_ram_usage": "host_ram_usage"
            },
            'host_choice':
            'retry',
            'retry_count':
            1,
            'periods': {
                "instance": 720,
                "compute_node": 600,
                "node": 0
            },
            'aggregation_method': {
                "instance": "mean",
                "compute_node": "mean",
                "node": ''
            }
        })
        self.strategy.metrics = ["instance_cpu_usage", "instance_ram_usage"]
        self.strategy.thresholds = {
            "instance_cpu_usage": 0.2,
            "instance_ram_usage": 0.2
        }
        self.strategy.weights = {
            "instance_cpu_usage_weight": 1.0,
            "instance_ram_usage_weight": 1.0
        }
        self.strategy.instance_metrics = {
            "instance_cpu_usage": "host_cpu_usage",
            "instance_ram_usage": "host_ram_usage"
        }
        self.strategy.host_choice = 'retry'
        self.strategy.retry_count = 1
        self.strategy.periods = {
            "instance": 720,
            "compute_node": 600,
            # node is deprecated
            "node": 0,
        }
        self.strategy.aggregation_method = {
            "instance": "mean",
            "compute_node": "mean",
            # node is deprecated
            "node": '',
        }
    def setUp(self):
        super(TestWorkloadStabilization, self).setUp()

        # fake metrics
        self.fake_metrics = self.fake_datasource_cls()

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

        self.hosts_load_assert = {
            'Node_0': {'cpu_util': 0.07, 'memory.resident': 7.0, 'vcpus': 40},
            'Node_1': {'cpu_util': 0.07, 'memory.resident': 5, 'vcpus': 40},
            'Node_2': {'cpu_util': 0.8, 'memory.resident': 29, 'vcpus': 40},
            'Node_3': {'cpu_util': 0.05, 'memory.resident': 8, 'vcpus': 40},
            'Node_4': {'cpu_util': 0.05, 'memory.resident': 4, 'vcpus': 40}}

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

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

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

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

        self.m_model.return_value = model_root.ModelRoot()
        self.m_audit_scope.return_value = mock.Mock()
        self.m_datasource.return_value = mock.Mock(
            statistic_aggregation=self.fake_metrics.mock_get_statistics)

        self.strategy = strategies.WorkloadStabilization(
            config=mock.Mock(datasource=self.datasource))
        self.strategy.input_parameters = utils.Struct()
        self.strategy.input_parameters.update(
            {'metrics': ["cpu_util", "memory.resident"],
             'thresholds': {"cpu_util": 0.2, "memory.resident": 0.2},
             'weights': {"cpu_util_weight": 1.0,
                         "memory.resident_weight": 1.0},
             'instance_metrics':
                 {"cpu_util": "compute.node.cpu.percent",
                  "memory.resident": "hardware.memory.used"},
             'host_choice': 'retry',
             'retry_count': 1,
             'periods': {"instance": 720, "node": 600},
             'aggregation_method': {"instance": "mean", "node": "mean"}})
        self.strategy.metrics = ["cpu_util", "memory.resident"]
        self.strategy.thresholds = {"cpu_util": 0.2, "memory.resident": 0.2}
        self.strategy.weights = {"cpu_util_weight": 1.0,
                                 "memory.resident_weight": 1.0}
        self.strategy.instance_metrics = {
            "cpu_util": "compute.node.cpu.percent",
            "memory.resident": "hardware.memory.used"}
        self.strategy.host_choice = 'retry'
        self.strategy.retry_count = 1
        self.strategy.periods = {"instance": 720, "node": 600}
        self.strategy.aggregation_method = {"instance": "mean", "node": "mean"}
Exemple #3
0
    def setUp(self):
        super(TestWorkloadStabilization, self).setUp()

        # fake metrics
        self.fake_metrics = faker_metrics_collector.FakerMetricsCollector()

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

        self.hosts_load_assert = {
            'Node_0': {
                'cpu_util': 0.07,
                'memory.resident': 7.0,
                'vcpus': 40
            },
            'Node_1': {
                'cpu_util': 0.05,
                'memory.resident': 5,
                'vcpus': 40
            },
            'Node_2': {
                'cpu_util': 0.1,
                'memory.resident': 29,
                'vcpus': 40
            },
            'Node_3': {
                'cpu_util': 0.04,
                'memory.resident': 8,
                'vcpus': 40
            },
            'Node_4': {
                'cpu_util': 0.02,
                'memory.resident': 4,
                'vcpus': 40
            }
        }

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

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

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

        self.m_model.return_value = model_root.ModelRoot()
        self.m_ceilometer.return_value = mock.Mock(
            statistic_aggregation=self.fake_metrics.mock_get_statistics)
        self.m_audit_scope.return_value = mock.Mock()
        self.strategy = strategies.WorkloadStabilization(config=mock.Mock())
        self.strategy.input_parameters = utils.Struct()
        self.strategy.input_parameters.update({
            'metrics': ["cpu_util", "memory.resident"],
            'thresholds': {
                "cpu_util": 0.2,
                "memory.resident": 0.2
            },
            'weights': {
                "cpu_util_weight": 1.0,
                "memory.resident_weight": 1.0
            },
            'instance_metrics': {
                "cpu_util": "hardware.cpu.util",
                "memory.resident": "hardware.memory.used"
            },
            'host_choice':
            'retry',
            'retry_count':
            1
        })
        self.strategy.metrics = ["cpu_util", "memory.resident"]
        self.strategy.thresholds = {"cpu_util": 0.2, "memory.resident": 0.2}
        self.strategy.weights = {
            "cpu_util_weight": 1.0,
            "memory.resident_weight": 1.0
        }
        self.strategy.instance_metrics = {
            "cpu_util": "hardware.cpu.util",
            "memory.resident": "hardware.memory.used"
        }
        self.strategy.host_choice = 'retry'
        self.strategy.retry_count = 1