Esempio n. 1
0
    def _test_enforce_volume_driver_types_update(
            self,
            mock_get_rpc_resource,
            mock_pecan_request,
            volume_driver_type,
            op,
            assert_raised=False):

        @v.enforce_volume_driver_types_update()
        def test(self, baymodel_ident, patch):
            pass

        baymodel_ident = 'test_uuid_or_name'
        patch = [{'path': '/volume_driver', 'value': volume_driver_type,
                  'op': op}]
        context = mock_pecan_request.context
        baymodel = obj_utils.get_test_baymodel(context,
                                               uuid=baymodel_ident,
                                               coe='kubernetes')
        mock_get_rpc_resource.return_value = baymodel

        # Reload the validator module so that baymodel configs are
        # re-evaluated.
        reload(v)
        validator = v.K8sValidator
        validator.supported_drivers = ['cinder']

        if assert_raised:
            self.assertRaises(exception.InvalidParameterValue,
                              test, self, baymodel_ident, patch)
        else:
            test(self, baymodel_ident, patch)
            mock_get_rpc_resource.assert_called_once_with(
                'BayModel', baymodel_ident)
Esempio n. 2
0
 def fake_get_by_uuid(context, uuid):
     bay_dict = utils.get_test_bay(uuid=uuid)
     baymodel = obj_utils.get_test_baymodel(
         context, coe='swarm', uuid=bay_dict['baymodel_id'])
     bay = objects.Bay(self.context, **bay_dict)
     bay.baymodel = baymodel
     return bay
Esempio n. 3
0
 def fake_get_by_uuid(context, uuid):
     bay_dict = utils.get_test_bay(uuid=uuid)
     baymodel = obj_utils.get_test_baymodel(
         context, coe='swarm', uuid=bay_dict['baymodel_id'])
     bay = objects.Bay(self.context, **bay_dict)
     bay.baymodel = baymodel
     return bay
Esempio n. 4
0
    def _test_enforce_volume_driver_types_update(self,
                                                 mock_get_resource,
                                                 mock_pecan_request,
                                                 volume_driver_type,
                                                 op,
                                                 assert_raised=False):
        @v.enforce_volume_driver_types_update()
        def test(self, baymodel_ident, patch):
            pass

        baymodel_ident = 'test_uuid_or_name'
        patch = [{
            'path': '/volume_driver',
            'value': volume_driver_type,
            'op': op
        }]
        context = mock_pecan_request.context
        baymodel = obj_utils.get_test_baymodel(context,
                                               uuid=baymodel_ident,
                                               coe='kubernetes')
        mock_get_resource.return_value = baymodel

        # Reload the validator module so that baymodel configs are
        # re-evaluated.
        reload_module(v)
        validator = v.K8sValidator
        validator.supported_volume_driver = ['cinder']

        if assert_raised:
            self.assertRaises(exception.InvalidParameterValue, test, self,
                              baymodel_ident, patch)
        else:
            test(self, baymodel_ident, patch)
            mock_get_resource.assert_called_once_with('BayModel',
                                                      baymodel_ident)
Esempio n. 5
0
 def setUp(self):
     super(TestPost, self).setUp()
     self.test_bay = obj_utils.create_test_bay(self.context,
                                               coe='kubernetes')
     self.rc_obj = obj_utils.create_test_rc(self.context)
     p = mock.patch.object(rpcapi.API, 'rc_create')
     self.mock_rc_create = p.start()
     self.mock_rc_create.return_value = self.rc_obj
     self.addCleanup(p.stop)
     p = mock.patch('magnum.objects.BayModel.get_by_uuid')
     self.mock_baymodel_get_by_uuid = obj_utils.get_test_baymodel(
         self.context, uuid=self.test_bay.baymodel_id, coe='kubernetes')
Esempio n. 6
0
 def setUp(self):
     super(TestPost, self).setUp()
     self.test_bay = obj_utils.create_test_bay(self.context,
                                               coe='kubernetes')
     self.service_obj = obj_utils.create_test_service(self.context)
     p = mock.patch.object(rpcapi.API, 'service_create')
     self.mock_service_create = p.start()
     self.mock_service_create.return_value = self.service_obj
     self.mock_service_create.side_effect = (
         self._simulate_rpc_service_create)
     self.addCleanup(p.stop)
     self.mock_baymodel_get_by_uuid = obj_utils.get_test_baymodel(
         self.context, uuid=self.test_bay.baymodel_id, coe='kubernetes')
Esempio n. 7
0
 def setUp(self):
     super(TestPost, self).setUp()
     self.test_bay = obj_utils.create_test_bay(self.context,
                                               coe='kubernetes')
     self.pod_obj = obj_utils.create_test_pod(self.context)
     p = mock.patch.object(rpcapi.API, 'pod_create')
     self.mock_pod_create = p.start()
     self.mock_pod_create.return_value = self.pod_obj
     self.addCleanup(p.stop)
     p = mock.patch('magnum.objects.BayModel.get_by_uuid')
     self.mock_baymodel_get_by_uuid = obj_utils.get_test_baymodel(
         self.context,
         uuid=self.test_bay.baymodel_id,
         coe='kubernetes')
Esempio n. 8
0
 def setUp(self):
     super(TestPost, self).setUp()
     self.test_bay = obj_utils.create_test_bay(self.context,
                                               coe='kubernetes')
     self.service_obj = obj_utils.create_test_service(self.context)
     p = mock.patch.object(rpcapi.API, 'service_create')
     self.mock_service_create = p.start()
     self.mock_service_create.return_value = self.service_obj
     self.mock_service_create.side_effect = (
         self._simulate_rpc_service_create)
     self.addCleanup(p.stop)
     self.mock_baymodel_get_by_uuid = obj_utils.get_test_baymodel(
         self.context,
         uuid=self.test_bay.baymodel_id,
         coe='kubernetes')
Esempio n. 9
0
    def _test_enforce_volume_driver_types_create(
            self,
            volume_driver_type,
            coe='kubernetes',
            assert_raised=False):

        @v.enforce_volume_driver_types_create()
        def test(self, baymodel):
            pass

        baymodel = obj_utils.get_test_baymodel(
            {}, name='test_baymodel', coe=coe,
            volume_driver=volume_driver_type)

        if assert_raised:
            self.assertRaises(exception.InvalidParameterValue,
                              test, self, baymodel)
        else:
            test(self, baymodel)
Esempio n. 10
0
    def _test_enforce_volume_driver_types_create(self,
                                                 volume_driver_type,
                                                 coe='kubernetes',
                                                 assert_raised=False):
        @v.enforce_volume_driver_types_create()
        def test(self, baymodel):
            pass

        baymodel = obj_utils.get_test_baymodel(
            {},
            name='test_baymodel',
            coe=coe,
            volume_driver=volume_driver_type)

        if assert_raised:
            self.assertRaises(exception.InvalidParameterValue, test, self,
                              baymodel)
        else:
            test(self, baymodel)
Esempio n. 11
0
    def _test_enforce_bay_types(
            self,
            mock_bay_get_by_uuid,
            mock_pecan_request,
            bay_type,
            allowed_bay_types,
            assert_raised=False,
            *args):

        @v.enforce_bay_types(*allowed_bay_types)
        def test(self, *args):
            if hasattr(args[0], 'bay_uuid'):
                return args[0].name
            else:
                return args[1]

        context = mock_pecan_request.context
        bay = mock.MagicMock()
        bay.baymodel_id = 'baymodel_id'
        baymodel = obj_utils.get_test_baymodel(context,
                                               uuid='baymodel_id',
                                               coe=bay_type)
        bay.baymodel = baymodel

        mock_bay_get_by_uuid.return_value = bay

        if assert_raised:
            self.assertRaises(
                exception.InvalidParameterValue, test, self, *args)
        else:
            ret = test(self, *args)
            if hasattr(args[0], 'bay_uuid'):
                mock_bay_get_by_uuid.assert_called_once_with(context,
                                                             args[0].bay_uuid)
                self.assertEqual(args[0].name, ret)
            else:
                mock_bay_get_by_uuid.assert_called_once_with(context, args[1])
                self.assertEqual(args[1], ret)
Esempio n. 12
0
    def _test_enforce_network_driver_types_update(self,
                                                  mock_get_rpc_resource,
                                                  mock_pecan_request,
                                                  network_driver_type,
                                                  network_driver_config_dict,
                                                  assert_raised=False):
        @v.enforce_network_driver_types_update()
        def test(self, baymodel_ident, patch):
            pass

        for key, val in network_driver_config_dict.items():
            cfg.CONF.set_override(key, val, 'baymodel')
        baymodel_ident = 'test_uuid_or_name'
        patch = [{
            'path': '/network_driver',
            'value': network_driver_type,
            'op': 'replace'
        }]
        context = mock_pecan_request.context
        baymodel = obj_utils.get_test_baymodel(context,
                                               uuid=baymodel_ident,
                                               coe='kubernetes')
        baymodel.network_driver = network_driver_type
        mock_get_rpc_resource.return_value = baymodel

        # Reload the validator module so that baymodel configs are
        # re-evaluated.
        reload(v)
        validator = v.K8sValidator
        validator.supported_drivers = ['flannel', 'type1', 'type2']

        if assert_raised:
            self.assertRaises(exception.InvalidParameterValue, test, self,
                              baymodel_ident, patch)
        else:
            test(self, baymodel_ident, patch)
            mock_get_rpc_resource.assert_called_once_with(
                'BayModel', baymodel_ident)
Esempio n. 13
0
    def _test_enforce_network_driver_types_update(
            self,
            mock_get_rpc_resource,
            mock_pecan_request,
            network_driver_type,
            network_driver_config_dict,
            assert_raised=False):

        @v.enforce_network_driver_types_update()
        def test(self, baymodel_ident, patch):
            pass

        for key, val in network_driver_config_dict.items():
            cfg.CONF.set_override(key, val, 'baymodel')
        baymodel_ident = 'test_uuid_or_name'
        patch = [{'path': '/network_driver', 'value': network_driver_type,
                  'op': 'replace'}]
        context = mock_pecan_request.context
        baymodel = obj_utils.get_test_baymodel(context,
                                               uuid=baymodel_ident,
                                               coe='kubernetes')
        baymodel.network_driver = network_driver_type
        mock_get_rpc_resource.return_value = baymodel

        # Reload the validator module so that baymodel configs are
        # re-evaluated.
        reload(v)
        validator = v.K8sValidator
        validator.supported_drivers = ['flannel', 'type1', 'type2']

        if assert_raised:
            self.assertRaises(exception.InvalidParameterValue,
                              test, self, baymodel_ident, patch)
        else:
            test(self, baymodel_ident, patch)
            mock_get_rpc_resource.assert_called_once_with(
                'BayModel', baymodel_ident)
Esempio n. 14
0
    def _test_enforce_bay_types(self,
                                mock_bay_get_by_uuid,
                                mock_pecan_request,
                                bay_type,
                                allowed_bay_types,
                                assert_raised=False,
                                *args):
        @v.enforce_bay_types(*allowed_bay_types)
        def test(self, *args):
            if hasattr(args[0], 'bay_uuid'):
                return args[0].name
            else:
                return args[1]

        context = mock_pecan_request.context
        bay = mock.MagicMock()
        bay.baymodel_id = 'baymodel_id'
        baymodel = obj_utils.get_test_baymodel(context,
                                               uuid='baymodel_id',
                                               coe=bay_type)
        bay.baymodel = baymodel

        mock_bay_get_by_uuid.return_value = bay

        if assert_raised:
            self.assertRaises(exception.InvalidParameterValue, test, self,
                              *args)
        else:
            ret = test(self, *args)
            if hasattr(args[0], 'bay_uuid'):
                mock_bay_get_by_uuid.assert_called_once_with(
                    context, args[0].bay_uuid)
                self.assertEqual(args[0].name, ret)
            else:
                mock_bay_get_by_uuid.assert_called_once_with(context, args[1])
                self.assertEqual(args[1], ret)
Esempio n. 15
0
 def test_create_monitor_success(self):
     self.bay.baymodel = obj_utils.get_test_baymodel(
         self.context, uuid=self.bay.baymodel_id, coe='swarm')
     monitor = monitors.create_monitor(self.context, self.bay)
     self.assertIsInstance(monitor, swarm_monitor.SwarmMonitor)
Esempio n. 16
0
 def test_create_monitor_k8s_bay(self):
     self.bay.baymodel = obj_utils.get_test_baymodel(
         self.context, uuid=self.bay.baymodel_id, coe='kubernetes')
     monitor = monitors.create_monitor(self.context, self.bay)
     self.assertIsInstance(monitor, k8s_monitor.K8sMonitor)
Esempio n. 17
0
 def test_create_monitor_mesos_bay(self):
     self.bay.baymodel = obj_utils.get_test_baymodel(
         self.context, uuid=self.bay.baymodel_id, coe='mesos')
     monitor = monitors.create_monitor(self.context, self.bay)
     self.assertIsInstance(monitor, mesos_monitor.MesosMonitor)
Esempio n. 18
0
 def test_create_monitor_mesos_bay(self):
     self.bay.baymodel = obj_utils.get_test_baymodel(
         self.context, uuid=self.bay.baymodel_id, coe='mesos')
     monitor = monitors.create_monitor(self.context, self.bay)
     self.assertIsInstance(monitor, mesos_monitor.MesosMonitor)
Esempio n. 19
0
 def test_create_monitor_k8s_bay(self):
     self.bay.baymodel = obj_utils.get_test_baymodel(
         self.context, uuid=self.bay.baymodel_id, coe='kubernetes')
     monitor = monitors.create_monitor(self.context, self.bay)
     self.assertIsInstance(monitor, k8s_monitor.K8sMonitor)
Esempio n. 20
0
 def test_create_monitor_success(self):
     self.bay.baymodel = obj_utils.get_test_baymodel(
         self.context, uuid=self.bay.baymodel_id, coe='swarm')
     monitor = monitors.create_monitor(self.context, self.bay)
     self.assertIsInstance(monitor, swarm_monitor.SwarmMonitor)