Adding User, Projects and Roles (Keystone) to NBI API
Change-Id: Id8c65e5d076fefc329340ca195c268004ecb4a4e
Signed-off-by: Eduardo Sousa <eduardo.sousa@canonical.com>
diff --git a/osm_nbi/validation.py b/osm_nbi/validation.py
index c8c96cd..81b288d 100644
--- a/osm_nbi/validation.py
+++ b/osm_nbi/validation.py
@@ -565,6 +565,17 @@
}
# USERS
+project_role_mapping = {
+ "title": "",
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "type": "object",
+ "properties": {
+ "project": shortname_schema,
+ "role": shortname_schema
+ },
+ "required": ["project", "role"],
+ "additionalProperties": False
+}
user_new_schema = {
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "New user schema",
@@ -573,8 +584,13 @@
"username": shortname_schema,
"password": passwd_schema,
"projects": nameshort_list_schema,
+ "project_role_mappings": {
+ "type": "array",
+ "items": project_role_mapping,
+ "minItems": 1
+ },
},
- "required": ["username", "password", "projects"],
+ "required": ["username", "password"],
"additionalProperties": False
}
user_edit_schema = {
@@ -589,6 +605,11 @@
array_edition_schema
]
},
+ "project_role_mappings": {
+ "type": "array",
+ "items": project_role_mapping,
+ "minItems": 1
+ },
},
"minProperties": 1,
"additionalProperties": False
@@ -617,6 +638,32 @@
"minProperties": 1
}
+# ROLES
+roles_new_schema = {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "title": "New role schema for administrators",
+ "type": "object",
+ "properties": {
+ "name": shortname_schema,
+ "definition": object_schema,
+ },
+ "required": ["name"],
+ "additionalProperties": False
+}
+roles_edit_schema = {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "title": "Roles edit schema for administrators",
+ "type": "object",
+ "properties": {
+ "_id": id_schema,
+ "name": shortname_schema,
+ "definition": object_schema,
+ },
+ "required": ["_id", "name", "definition"],
+ "additionalProperties": False,
+ "minProperties": 1
+}
+
# GLOBAL SCHEMAS
nbi_new_input_schemas = {