def setUp(self): super(TestUpgradeController, self).setUp() self.controller = UpgradeController() self.body = { "upgrade": { "instance_id": "27e25b73-88a1-4526-b2b9-919a28b8b33f", "instance_version": "v1.0.1", "location": "http://swift/trove-guestagent-v1.0.1.tar.gz"} }
def get_resources(self): resources = [] instances = extensions.ResourceExtension('{tenant_id}/mgmt/instances', MgmtInstanceController(), member_actions={ 'root': 'GET', 'diagnostics': 'GET', 'hwinfo': 'GET', 'rpc_ping': 'GET', 'action': 'POST' }) resources.append(instances) clusters = extensions.ResourceExtension( '{tenant_id}/mgmt/clusters', ClusterController(), member_actions={'action': 'POST'}) resources.append(clusters) hosts = extensions.ResourceExtension('{tenant_id}/mgmt/hosts', HostController(), member_actions={}) resources.append(hosts) quota = extensions.ResourceExtension('{tenant_id}/mgmt/quotas', QuotaController(), member_actions={}) resources.append(quota) storage = extensions.ResourceExtension('{tenant_id}/mgmt/storage', StorageController(), member_actions={}) resources.append(storage) host_instances = extensions.ResourceExtension( 'instances', hostservice.HostInstanceController(), parent={ 'member_name': 'host', 'collection_name': '{tenant_id}/mgmt/hosts' }, collection_actions={'action': 'POST'}) resources.append(host_instances) upgrade = extensions.ResourceExtension( '{tenant_id}/mgmt/instances/{instance_id}/upgrade', UpgradeController(), member_actions={}) resources.append(upgrade) datastore_configuration_parameters = extensions.ResourceExtension( '{tenant_id}/mgmt/datastores/versions/{version_id}/parameters', conf_service.ConfigurationsParameterController(), member_actions={}) resources.append(datastore_configuration_parameters) return resources
def get_resources(self): resources = [] instances = extensions.ResourceExtension( '{tenant_id}/mgmt/instances', MgmtInstanceController(), member_actions={'root': 'GET', 'diagnostics': 'GET', 'hwinfo': 'GET', 'rpc_ping': 'GET', 'action': 'POST'}) resources.append(instances) clusters = extensions.ResourceExtension( '{tenant_id}/mgmt/clusters', MgmtClusterController(), member_actions={'action': 'POST'}) resources.append(clusters) quota = extensions.ResourceExtension( '{tenant_id}/mgmt/quotas', QuotaController(), member_actions={}) resources.append(quota) upgrade = extensions.ResourceExtension( '{tenant_id}/mgmt/instances/{instance_id}/upgrade', UpgradeController(), member_actions={}) resources.append(upgrade) datastore_configuration_parameters = extensions.ResourceExtension( '{tenant_id}/mgmt/datastores/versions/{version_id}/parameters', conf_service.ConfigurationsParameterController(), member_actions={}) resources.append(datastore_configuration_parameters) datastore_version = extensions.ResourceExtension( '{tenant_id}/mgmt/datastore-versions', DatastoreVersionController(), member_actions={}) resources.append(datastore_version) return resources
class TestUpgradeController(TestCase): def setUp(self): super(TestUpgradeController, self).setUp() self.controller = UpgradeController() self.body = { "upgrade": { "instance_id": "27e25b73-88a1-4526-b2b9-919a28b8b33f", "instance_version": "v1.0.1", "location": "http://swift/trove-guestagent-v1.0.1.tar.gz" } } def tearDown(self): super(TestUpgradeController, self).tearDown() self.body = {} def _get_validator(self, body): """ Helper method to return a validator """ schema = self.controller.get_schema('create', body) return jsonschema.Draft4Validator(schema) def test_validate_create(self): """ Test for valid payload in body """ validator = self._get_validator(self.body) self.assertTrue(validator.is_valid(self.body)) def test_validate_create_additional_params(self): """ Test for valid payload with additional params """ self.body["upgrade"]["description"] = "upgrade" validator = self._get_validator(self.body) self.assertTrue(validator.is_valid(self.body)) def test_controller_with_no_metadata(self): """ Test the mock controller w/out metadata """ tenant_id = '77889991010' instance_id = '27e25b73-88a1-4526-b2b9-919a28b8b33f' context = Mock() req = Mock() req.environ = MagicMock() req.environ.get = Mock(return_value=context) send = Mock() UpgradeMessageSender.create = Mock(return_value=send) resp = self.controller.create(req, self.body, tenant_id, instance_id) instance_version = self.body["upgrade"]["instance_version"] location = self.body["upgrade"]["location"] metadata = None UpgradeMessageSender.create.assert_called_once_with( context, instance_id, instance_version, location, metadata) self.assertEqual(202, resp.status) def test_controller_with_metadata(self): """ Test the mock controller with metadata """ tenant_id = '77889991010' instance_id = '27e25b73-88a1-4526-b2b9-919a28b8b33f' context = Mock() req = Mock() req.environ = MagicMock() req.environ.get = Mock(return_value=context) send = Mock() UpgradeMessageSender.create = Mock(return_value=send) # append the body w/ metadata self.body["upgrade"]["metadata"] = { "config_location": "swift://my.conf.location", "is_public": True, "is_encypted": True } resp = self.controller.create(req, self.body, tenant_id, instance_id) instance_version = self.body["upgrade"]["instance_version"] location = self.body["upgrade"]["location"] metadata = self.body["upgrade"]["metadata"] UpgradeMessageSender.create.assert_called_once_with( context, instance_id, instance_version, location, metadata) self.assertEqual(202, resp.status) def test_controller_with_empty_metadata(self): """ Test the mock controller with metadata """ tenant_id = '77889991010' instance_id = '27e25b73-88a1-4526-b2b9-919a28b8b33f' context = Mock() req = Mock() req.environ = MagicMock() req.environ.get = Mock(return_value=context) send = Mock() UpgradeMessageSender.create = Mock(return_value=send) # append the body w/ empty metadata self.body["upgrade"]["metadata"] = {} resp = self.controller.create(req, self.body, tenant_id, instance_id) instance_version = self.body["upgrade"]['instance_version'] location = self.body["upgrade"]["location"] metadata = self.body["upgrade"]["metadata"] UpgradeMessageSender.create.assert_called_once_with( context, instance_id, instance_version, location, metadata) self.assertEqual(202, resp.status)
class TestUpgradeController(trove_testtools.TestCase): def setUp(self): super(TestUpgradeController, self).setUp() self.controller = UpgradeController() self.body = { "upgrade": { "instance_id": "27e25b73-88a1-4526-b2b9-919a28b8b33f", "instance_version": "v1.0.1", "location": "http://swift/trove-guestagent-v1.0.1.tar.gz"} } def tearDown(self): super(TestUpgradeController, self).tearDown() self.body = {} def _get_validator(self, body): """ Helper method to return a validator """ schema = self.controller.get_schema('create', body) return jsonschema.Draft4Validator(schema) def test_validate_create(self): """ Test for valid payload in body """ validator = self._get_validator(self.body) self.assertTrue(validator.is_valid(self.body)) def test_validate_create_additional_params(self): """ Test for valid payload with additional params """ self.body["upgrade"]["description"] = "upgrade" validator = self._get_validator(self.body) self.assertTrue(validator.is_valid(self.body)) @patch.object(UpgradeMessageSender, 'create', Mock(return_value=Mock())) def test_controller_with_no_metadata(self): """ Test the mock controller w/out metadata """ tenant_id = '77889991010' instance_id = '27e25b73-88a1-4526-b2b9-919a28b8b33f' context = Mock() req = Mock() req.environ = MagicMock() req.environ.get = Mock(return_value=context) resp = self.controller.create(req, self.body, tenant_id, instance_id) instance_version = self.body["upgrade"]["instance_version"] location = self.body["upgrade"]["location"] metadata = None UpgradeMessageSender.create.assert_called_once_with( context, instance_id, instance_version, location, metadata) self.assertEqual(202, resp.status) @patch.object(UpgradeMessageSender, 'create', Mock(return_value=Mock())) def test_controller_with_metadata(self): """ Test the mock controller with metadata """ tenant_id = '77889991010' instance_id = '27e25b73-88a1-4526-b2b9-919a28b8b33f' context = Mock() req = Mock() req.environ = MagicMock() req.environ.get = Mock(return_value=context) # append the body w/ metadata self.body["upgrade"]["metadata"] = { "config_location": "swift://my.conf.location", "is_public": True, "is_encypted": True} resp = self.controller.create(req, self.body, tenant_id, instance_id) instance_version = self.body["upgrade"]["instance_version"] location = self.body["upgrade"]["location"] metadata = self.body["upgrade"]["metadata"] UpgradeMessageSender.create.assert_called_once_with( context, instance_id, instance_version, location, metadata) self.assertEqual(202, resp.status) @patch.object(UpgradeMessageSender, 'create', Mock(return_value=Mock())) def test_controller_with_empty_metadata(self): """ Test the mock controller with metadata """ tenant_id = '77889991010' instance_id = '27e25b73-88a1-4526-b2b9-919a28b8b33f' context = Mock() req = Mock() req.environ = MagicMock() req.environ.get = Mock(return_value=context) # append the body w/ empty metadata self.body["upgrade"]["metadata"] = {} resp = self.controller.create(req, self.body, tenant_id, instance_id) instance_version = self.body["upgrade"]['instance_version'] location = self.body["upgrade"]["location"] metadata = self.body["upgrade"]["metadata"] UpgradeMessageSender.create.assert_called_once_with( context, instance_id, instance_version, location, metadata) self.assertEqual(202, resp.status)