def test_cleanup(self): result1 = existing.OpenStack({}).cleanup() result2 = existing.OpenStack({}).cleanup(task_uuid="any") self.assertEqual(result1, result2) self.assertEqual( { "message": "Coming soon!", "discovered": 0, "deleted": 0, "failed": 0, "resources": {}, "errors": [] }, result1) self._check_cleanup_schema(result1)
def test_info(self, mock_clients): mock_clients.return_value.services.return_value = { "foo": "bar", "volumev4": "__unknown__" } platform_data = { "admin": None, "users": [{ "username": "******", "password": "******" }] } p = existing.OpenStack({}, platform_data=platform_data) result = p.info() mock_clients.assert_called_once_with(platform_data["users"][0]) mock_clients.return_value.services.assert_called_once_with() self.assertEqual( { "info": { "services": [{ "type": "foo", "name": "bar" }, { "type": "volumev4" }] } }, result) self._check_info_schema(result)
def test_check_failed_users(self, mock_clients): mock_clients.return_value.keystone.side_effect = Exception pdata = { "admin": None, "users": [{ "username": "******", "password": "******" }] } result = existing.OpenStack({}, platform_data=pdata).check_health() self._check_health_schema(result) self.assertEqual( { "available": False, "message": "Bad user creds: \n%s" % json.dumps( { "username": "******", "password": "******", "api_info": {} }, indent=2, sort_keys=True), "traceback": mock.ANY }, result) self.assertIn("Traceback (most recent call last)", result["traceback"])
def test_create_users_only(self): spec = { "auth_url": "https://best", "endpoint": "check_that_its_poped", "users": [{ "project_name": "a", "username": "******", "password": "******" }, { "project_name": "b", "username": "******", "password": "******" }] } self.assertEqual(({ "admin": None, "users": [{ "auth_url": "https://best", "endpoint_type": None, "region_name": None, "domain_name": None, "user_domain_name": "default", "project_domain_name": "default", "https_insecure": False, "https_cacert": None, "tenant_name": "a", "username": "******", "password": "******" }, { "auth_url": "https://best", "endpoint_type": None, "region_name": None, "domain_name": None, "user_domain_name": "default", "project_domain_name": "default", "https_insecure": False, "https_cacert": None, "tenant_name": "b", "username": "******", "password": "******" }] }, {}), existing.OpenStack(spec).create())
def test_check_health(self, mock_clients): pdata = { "admin": mock.MagicMock(), "users": [mock.MagicMock(), mock.MagicMock()] } result = existing.OpenStack({}, platform_data=pdata).check_health() self._check_health_schema(result) self.assertEqual({"available": True}, result) mock_clients.assert_has_calls([ mock.call(pdata["users"][0]), mock.call().keystone(), mock.call(pdata["users"][1]), mock.call().keystone(), mock.call(pdata["admin"]), mock.call().verified_keystone() ])
def test_check_failed_with_native_rally_exc(self, mock_clients): e = exceptions.RallyException("foo") mock_clients.return_value.keystone.side_effect = e pdata = { "admin": None, "users": [{ "username": "******", "password": "******" }] } result = existing.OpenStack({}, platform_data=pdata).check_health() self._check_health_schema(result) self.assertEqual( { "available": False, "message": e.format_message(), "traceback": mock.ANY }, result)
def test_check_health_with_api_info(self, mock_clients): pdata = { "admin": mock.MagicMock(), "users": [], "api_info": { "fakeclient": "version" } } result = existing.OpenStack({}, platform_data=pdata).check_health() self._check_health_schema(result) self.assertEqual({"available": True}, result) mock_clients.assert_has_calls([ mock.call(pdata["admin"]), mock.call().verified_keystone(), mock.call().fakeclient.choose_version(), mock.call().fakeclient.validate_version( mock.call().fakeclient.choose_version.return_value), mock.call().fakeclient.create_client() ])
def test_check_version_failed_with_api_info(self, mock_clients): pdata = { "admin": mock.MagicMock(), "users": [], "api_info": { "fakeclient": "version" } } def validate_version(version): raise exceptions.RallyException("Version is not supported.") (mock_clients.return_value.fakeclient.validate_version ) = validate_version result = existing.OpenStack({}, platform_data=pdata).check_health() self._check_health_schema(result) self.assertEqual( { "available": False, "message": ("Invalid setting for 'fakeclient':" " Version is not supported.") }, result)
def test_check_unexpected_failed_with_api_info(self, mock_clients): pdata = { "admin": mock.MagicMock(), "users": [], "api_info": { "fakeclient": "version" } } def create_client(): raise Exception("Invalid client.") (mock_clients.return_value.fakeclient.choose_version.return_value ) = "1.0" mock_clients.return_value.fakeclient.create_client = create_client result = existing.OpenStack({}, platform_data=pdata).check_health() self._check_health_schema(result) self.assertEqual( { "available": False, "message": ("Can not create 'fakeclient' with" " 1.0 version."), "traceback": mock.ANY }, result)
def test_create_admin_only(self): spec = { "auth_url": "https://best", "endpoint_type": "public", "https_insecure": True, "https_cacert": "/my.ca", "profiler_hmac_key": "key", "profiler_conn_str": "http://prof", "admin": { "domain_name": "d", "user_domain_name": "d", "project_domain_name": "d", "project_name": "d", "username": "******", "password": "******" } } self.assertEqual(({ "admin": { "auth_url": "https://best", "endpoint_type": "public", "https_insecure": True, "https_cacert": "/my.ca", "profiler_hmac_key": "key", "profiler_conn_str": "http://prof", "region_name": None, "domain_name": "d", "user_domain_name": "d", "project_domain_name": "d", "tenant_name": "d", "username": "******", "password": "******" }, "users": [] }, {}), existing.OpenStack(spec).create())
def test_destroy(self): self.assertIsNone(existing.OpenStack({}).destroy())