Support OS_PROJECT_NAME as well as OS_TENANT_NAME in the CLI
OS_PROJECT_NAME is now preferred throughout most if not all of OpenStack projects at this point. OS_TENANT_NAME support remains for backward compatibility. Change-Id: I06d4af6538052ba3f63bb9f69998b1ac817f9ef5
This commit is contained in:
parent
2506e50c66
commit
bfa828f30b
|
@ -85,7 +85,7 @@ with_default_verification_id = default_from_global(
|
|||
|
||||
def get_creds_from_env_vars():
|
||||
required_env_vars = ["OS_AUTH_URL", "OS_USERNAME",
|
||||
"OS_PASSWORD", "OS_TENANT_NAME"]
|
||||
"OS_PASSWORD"]
|
||||
missing_env_vars = [v for v in required_env_vars if v not in os.environ]
|
||||
if missing_env_vars:
|
||||
msg = ("The following environment variables are "
|
||||
|
@ -97,7 +97,7 @@ def get_creds_from_env_vars():
|
|||
"admin": {
|
||||
"username": os.environ["OS_USERNAME"],
|
||||
"password": os.environ["OS_PASSWORD"],
|
||||
"tenant_name": os.environ["OS_TENANT_NAME"]
|
||||
"tenant_name": get_project_name_from_env()
|
||||
},
|
||||
"endpoint": os.environ.get("OS_ENDPOINT"),
|
||||
"region_name": os.environ.get("OS_REGION_NAME", ""),
|
||||
|
@ -107,3 +107,14 @@ def get_creds_from_env_vars():
|
|||
}
|
||||
|
||||
return creds
|
||||
|
||||
|
||||
def get_project_name_from_env():
|
||||
tenant_name = os.environ.get("OS_PROJECT_NAME",
|
||||
os.environ.get("OS_TENANT_NAME"))
|
||||
if tenant_name is None:
|
||||
raise exceptions.ValidationError("Either the OS_PROJECT_NAME or "
|
||||
"OS_TENANT_NAME environment variable "
|
||||
"is required, but neither is set.")
|
||||
|
||||
return tenant_name
|
||||
|
|
|
@ -139,3 +139,24 @@ class EnvUtilsTestCase(test.TestCase):
|
|||
del os.environ["OS_USERNAME"]
|
||||
self.assertRaises(exceptions.ValidationError,
|
||||
envutils.get_creds_from_env_vars)
|
||||
|
||||
@mock.patch.dict(os.environ, {"OS_TENANT_NAME": "fake_tenant_name"})
|
||||
def test_get_project_name_from_env_when_tenant_name(self):
|
||||
project_name = envutils.get_project_name_from_env()
|
||||
self.assertEqual("fake_tenant_name", project_name)
|
||||
|
||||
@mock.patch.dict(os.environ, {"OS_PROJECT_NAME": "fake_project_name"})
|
||||
def test_get_project_name_from_env_when_project_name(self):
|
||||
project_name = envutils.get_project_name_from_env()
|
||||
self.assertEqual("fake_project_name", project_name)
|
||||
|
||||
@mock.patch.dict(os.environ, {"OS_TENANT_NAME": "fake_tenant_name",
|
||||
"OS_PROJECT_NAME": "fake_project_name"})
|
||||
def test_get_project_name_from_env_when_both(self):
|
||||
project_name = envutils.get_project_name_from_env()
|
||||
self.assertEqual("fake_project_name", project_name)
|
||||
|
||||
@mock.patch.dict(os.environ, values={}, clear=True)
|
||||
def test_get_project_name_from_env_when_neither(self):
|
||||
self.assertRaises(exceptions.ValidationError,
|
||||
envutils.get_project_name_from_env)
|
||||
|
|
Loading…
Reference in New Issue