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)
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
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)
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')
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')
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')
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)
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)
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)
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)
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)
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)
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)
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)
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)