Beispiel #1
0
    def _init(self, conf, **kwargs):
        """Set up the necessary ingredients."""
        self.conf = conf
        self.kwargs = kwargs

        self.Plan = kwargs.get('plan_class')
        self.OrderLock = kwargs.get('order_locks')
        self.OrderLockHistory = kwargs.get('order_locks_history')
        self.RegionPlaceholders = kwargs.get('region_placeholders')
        self.CountryLatency = kwargs.get('country_latency')
        self.TriageTool = kwargs.get('triage_tool')

        # Set up the RPC service(s) we want to talk to.
        self.data_service = self.setup_rpc(conf, "data")

        # Set up the cei and optimizer
        self.cei = cei.ConstraintEngineInterface(self.data_service)
        # self.optimizer = optimizer.Optimizer(conf)

        # Set up Music access.
        self.music = api.API()
        self.solver_owner_condition = {
            "solver_owner": socket.gethostname()
        }
        self.translated_status_condition = {
            "status": self.Plan.TRANSLATED
        }
        self.solving_status_condition = {
            "status": self.Plan.SOLVING
        }

        if not self.conf.solver.concurrent:
            self._reset_solving_status()
Beispiel #2
0
    def test_solve(self, debug_mock, info_mock, error_mock):

        self.maxDiff = None

        mock_decision_path = mock.MagicMock()
        mock_decision_path.current_demand.name = 'vG'
        request_mock = mock.MagicMock()
        client_mock = mock.MagicMock()
        client_mock.call.return_value = None
        request_mock.cei = cei.ConstraintEngineInterface(client_mock)

        self.assertEqual(
            self.candidate_list,
            self.vim_fit.solve(mock_decision_path, self.candidate_list,
                               request_mock))
        client_mock.call.return_value = self.candidate_list[1]
        request_mock.cei = cei.ConstraintEngineInterface(client_mock)

        self.assertEqual(
            self.candidate_list[1],
            self.vim_fit.solve(mock_decision_path, self.candidate_list,
                               request_mock))
Beispiel #3
0
    def test_solve(self, debug_mock, info_mock, error_mock):

        flavor_infos = [{
            "flavor_label_1": {
                "flavor-id": "vim-flavor-id1",
                "flavor-name": "vim-flavor-1"
            }
        }, {
            "flavor_label_2": {
                "flavor-id": "vim-flavor-id2",
                "flavor-name": "vim-flavor-2"
            }
        }]
        self.maxDiff = None
        hpa_candidate_list_1 = copy.deepcopy(self.candidate_list)
        hpa_candidate_list_1[1]['flavor_map'] = {}
        hpa_candidate_list_1[1]['flavor_map'].update(flavor_infos[0])
        hpa_candidate_list_2 = copy.deepcopy(hpa_candidate_list_1)
        hpa_candidate_list_2[1]['flavor_map'].update(flavor_infos[1])

        mock_decision_path = mock.MagicMock()
        mock_decision_path.current_demand.name = 'vG'
        request_mock = mock.MagicMock()
        client_mock = mock.MagicMock()
        client_mock.call.return_value = None
        request_mock.cei = cei.ConstraintEngineInterface(client_mock)

        self.assertEqual(
            None,
            self.hpa.solve(mock_decision_path, self.candidate_list,
                           request_mock))

        client_mock.call.side_effect = [
            hpa_candidate_list_1, hpa_candidate_list_2
        ]
        self.assertEqual(
            hpa_candidate_list_2,
            self.hpa.solve(mock_decision_path, self.candidate_list,
                           request_mock))