Add role inference calls, domains
Also rework get_by_name_or_uuid method to work with multiple keys
and add get_by_name_or_uuid decorator for role assign, unassgin and check.
Change-Id: I808ce0c1aa1a7231875256ae6f22e986d78f8f00
Related-Issue: PROD-21388
diff --git a/_modules/keystonev3/projects.py b/_modules/keystonev3/projects.py
index 26e44fe..643a46d 100644
--- a/_modules/keystonev3/projects.py
+++ b/_modules/keystonev3/projects.py
@@ -1,24 +1,20 @@
-from keystonev3.common import get_by_name_or_uuid, send
+from keystonev3.common import send
+from keystonev3.arg_converter import get_by_name_or_uuid_multiple
+
try:
from urllib.parse import urlencode
except ImportError:
from urllib import urlencode
-@send('get')
-def project_list(**kwargs):
- url = '/projects?{}'.format(urlencode(kwargs))
- return url, None
-
-
-@get_by_name_or_uuid(project_list, 'projects', 'project_id')
+@get_by_name_or_uuid_multiple([('project', 'project_id')])
@send('get')
def project_get_details(project_id, **kwargs):
url = '/projects/{}?{}'.format(project_id, urlencode(kwargs))
return url, None
-@get_by_name_or_uuid(project_list, 'projects', 'project_id')
+@get_by_name_or_uuid_multiple([('project', 'project_id')])
@send('patch')
def project_update(project_id, **kwargs):
url = '/projects/{}'.format(project_id)
@@ -28,17 +24,22 @@
return url, json
-@get_by_name_or_uuid(project_list, 'projects', 'project_id')
+@get_by_name_or_uuid_multiple([('project', 'project_id')])
@send('delete')
def project_delete(project_id, **kwargs):
url = '/projects/{}'.format(project_id)
return url, None
+@get_by_name_or_uuid_multiple([('domain', 'domain_id')])
@send('post')
-def project_create(**kwargs):
+def project_create(domain_id, name,**kwargs):
url = '/projects'
json = {
- 'project': kwargs,
+ 'project': {
+ 'name': name,
+ 'domain_id': domain_id,
+ }
}
+ json['project'].update(kwargs)
return url, json