Change-Id: Ic2c80be5236dbfaf3ffa031eedf561a385e936c5
Signed-off-by: Eduardo Sousa <eduardo.sousa@canonical.com>
if self.schema_new:
validate_input(input, self.schema_new)
self.validate_role_definition(self.operations, input)
if self.schema_new:
validate_input(input, self.schema_new)
self.validate_role_definition(self.operations, input)
return input
def _validate_input_edit(self, input, force=False):
return input
def _validate_input_edit(self, input, force=False):
if self.schema_edit:
validate_input(input, self.schema_edit)
self.validate_role_definition(self.operations, input)
if self.schema_edit:
validate_input(input, self.schema_edit)
self.validate_role_definition(self.operations, input)
return input
def check_conflict_on_new(self, session, indata):
return input
def check_conflict_on_new(self, session, indata):
if not content["_admin"].get("created"):
content["_admin"]["created"] = now
content["_admin"]["modified"] = now
if not content["_admin"].get("created"):
content["_admin"]["created"] = now
content["_admin"]["modified"] = now
-
- if "." in content.keys():
- content["root"] = content["."]
- del content["."]
-
+
+ if ":" in content.keys():
+ content["root"] = content[":"]
+ del content[":"]
+
if "root" not in content.keys():
content["root"] = False
if "root" not in content.keys():
content["root"] = False
- ignore_fields = ["_id", "_admin", "name"]
- content_keys = content.keys()
- for role_def in content_keys:
- if role_def in ignore_fields:
- continue
- content[role_def.replace(".", ":")] = content[role_def]
- del content[role_def]
-
@staticmethod
def format_on_edit(final_content, edit_content):
"""
@staticmethod
def format_on_edit(final_content, edit_content):
"""
# Saving the role definition
for role_def, value in edit_content.items():
# Saving the role definition
for role_def, value in edit_content.items():
- final_content[role_def.replace(".", ":")] = value
-
+ final_content[role_def] = value
+
if ":" in final_content.keys():
final_content["root"] = final_content[":"]
del final_content[":"]
if ":" in final_content.keys():
final_content["root"] = final_content[":"]
del final_content[":"]
if "root" not in final_content.keys():
final_content["root"] = False
if "root" not in final_content.keys():
final_content["root"] = False
:param definition: role definition to be processed
"""
:param definition: role definition to be processed
"""
- content_keys = list(content.keys())
-
content["_id"] = str(content["_id"])
content["_id"] = str(content["_id"])
- for key in content_keys:
- if ":" in key:
- content[key.replace(":", ".")] = content[key]
- del content[key]
-
def show(self, session, _id):
"""
Get complete information on an topic
def show(self, session, _id):
"""
Get complete information on an topic
if not filter_q:
filter_q = {}
if not filter_q:
filter_q = {}
- if "root" in filter_q:
- filter_q[":"] = filter_q["root"]
- del filter_q["root"]
-
- if len(filter_q) > 0:
- keys = [key for key in filter_q.keys() if "." in key]
+ if ":" in filter_q:
+ filter_q["root"] = filter_q[":"]
- for key in keys:
- filter_q[key.replace(".", ":")] = filter_q[key]
- del filter_q[key]
+ for key in filter_q.keys():
+ if key == "name":
+ continue
+ filter_q[key] = filter_q[key] in ["True", "true"]
roles = self.db.get_list(self.topic, filter_q)
new_roles = []
roles = self.db.get_list(self.topic, filter_q)
new_roles = []
resources_to_operations_yaml = yaml.load(stream)
for resource, operation in resources_to_operations_yaml["resources_to_operations"].items():
resources_to_operations_yaml = yaml.load(stream)
for resource, operation in resources_to_operations_yaml["resources_to_operations"].items():
- operation_key = operation.replace(".", ":")
- if operation_key not in operations:
- operations.append(operation_key)
- self.resources_to_operations_mapping[resource] = operation_key
+ if operation not in operations:
+ operations.append(operation)
+ self.resources_to_operations_mapping[resource] = operation
records = self.db.get_list("roles_operations")
records = self.db.get_list("roles_operations")
if not isinstance(is_allowed, bool):
continue
if not isinstance(is_allowed, bool):
continue
root = is_allowed
continue
root = is_allowed
continue
- if len(operation) != 1 and operation[-1] == ".":
- self.logger.warning("Invalid operation {0} terminated in '.'. "
+ if len(operation) != 1 and operation[-1] == ":":
+ self.logger.warning("Invalid operation {0} terminated in ':'. "
"Operation will be discarded"
.format(operation))
continue
"Operation will be discarded"
.format(operation))
continue
- operation_key = operation.replace(".", ":")
- if operation_key not in role_ops.keys():
- role_ops[operation_key] = is_allowed
+ if operation not in role_ops.keys():
+ role_ops[operation] = is_allowed
else:
self.logger.info("In role {0}, the operation {1} with the value {2} was discarded due to "
"repetition.".format(role_with_operations["role"], operation, is_allowed))
else:
self.logger.info("In role {0}, the operation {1} with the value {2} was discarded due to "
"repetition.".format(role_with_operations["role"], operation, is_allowed))
##################################### NSDs #####################################
################################################################################
##################################### NSDs #####################################
################################################################################
- "GET /nsd/v1/ns_descriptors_content": nsds.get
- "GET /nsd/v1/ns_descriptors": nsds.get
+ "GET /nsd/v1/ns_descriptors_content": "nsds:get"
+ "GET /nsd/v1/ns_descriptors": "nsds:get"
- "POST /nsd/v1/ns_descriptors_content": nsds.content.post
+ "POST /nsd/v1/ns_descriptors_content": "nsds:content:post"
- "GET /nsd/v1/ns_descriptors_content/<nsdInfoId>": nsds.id.get
- "GET /nsd/v1/ns_descriptors/<nsdInfoId>": nsds.id.get
+ "GET /nsd/v1/ns_descriptors_content/<nsdInfoId>": "nsds:id:get"
+ "GET /nsd/v1/ns_descriptors/<nsdInfoId>": "nsds:id:get"
- "PUT /nsd/v1/ns_descriptors_content/<nsdInfoId>": nsds.id.put
+ "PUT /nsd/v1/ns_descriptors_content/<nsdInfoId>": "nsds:id:put"
- "DELETE /nsd/v1/ns_descriptors_content/<nsdInfoId>": nsds.id.delete
- "DELETE /nsd/v1/ns_descriptors/<nsdInfoId>": nsds.id.delete
+ "DELETE /nsd/v1/ns_descriptors_content/<nsdInfoId>": "nsds:id:delete"
+ "DELETE /nsd/v1/ns_descriptors/<nsdInfoId>": "nsds:id:delete"
- "POST /nsd/v1/ns_descriptors": nsds.post
+ "POST /nsd/v1/ns_descriptors": "nsds:post"
- "PATCH /nsd/v1/ns_descriptors/<nsdInfoId>": nsds.id.patch
+ "PATCH /nsd/v1/ns_descriptors/<nsdInfoId>": "nsds:id:patch"
- "GET /nsd/v1/ns_descriptors/<nsdInfoId>/nsd_content": nsds.id.content.get
+ "GET /nsd/v1/ns_descriptors/<nsdInfoId>/nsd_content": "nsds:id:content:get"
- "PUT /nsd/v1/ns_descriptors/<nsdInfoId>/nsd_content": nsds.id.content.put
+ "PUT /nsd/v1/ns_descriptors/<nsdInfoId>/nsd_content": "nsds:id:content:put"
- "GET /nsd/v1/ns_descriptors/<nsdInfoId>/nsd": nsds.id.nsd.get
+ "GET /nsd/v1/ns_descriptors/<nsdInfoId>/nsd": "nsds:id:nsd:get"
- "GET /nsd/v1/ns_descriptors/<nsdInfoId>/artifacts": nsds.id.nsd_artifact.get
- "GET /nsd/v1/ns_descriptors/<nsdInfoId>/artifacts/<artifactPath>": nsds.id.nsd_artifact.get
+ "GET /nsd/v1/ns_descriptors/<nsdInfoId>/artifacts": "nsds:id:nsd_artifact:get"
+ "GET /nsd/v1/ns_descriptors/<nsdInfoId>/artifacts/<artifactPath>": "nsds:id:nsd_artifact:get"
################################################################################
##################################### VNFDs ####################################
################################################################################
################################################################################
##################################### VNFDs ####################################
################################################################################
- "GET /vnfpkgm/v1/vnf_packages_content": vnfds.get
- "GET /vnfpkgm/v1/vnf_packages": vnfds.get
+ "GET /vnfpkgm/v1/vnf_packages_content": "vnfds:get"
+ "GET /vnfpkgm/v1/vnf_packages": "vnfds:get"
- "POST /vnfpkgm/v1/vnf_packages_content": vnfds.content.post
+ "POST /vnfpkgm/v1/vnf_packages_content": "vnfds:content:post"
- "GET /vnfpkgm/v1/vnf_packages_content/<vnfPkgId>": vnfds.id.get
- "GET /vnfpkgm/v1/vnf_packages/<vnfPkgId>": vnfds.id.get
+ "GET /vnfpkgm/v1/vnf_packages_content/<vnfPkgId>": "vnfds:id:get"
+ "GET /vnfpkgm/v1/vnf_packages/<vnfPkgId>": "vnfds:id:get"
- "PUT /vnfpkgm/v1/vnf_packages_content/<vnfPkgId>": vnfds.id.put
+ "PUT /vnfpkgm/v1/vnf_packages_content/<vnfPkgId>": "vnfds:id:put"
- "DELETE /vnfpkgm/v1/vnf_packages_content/<vnfPkgId>": vnfds.id.delete
- "DELETE /vnfpkgm/v1/vnf_packages/<vnfPkgId>": vnfds.id.delete
+ "DELETE /vnfpkgm/v1/vnf_packages_content/<vnfPkgId>": "vnfds:id:delete"
+ "DELETE /vnfpkgm/v1/vnf_packages/<vnfPkgId>": "vnfds:id:delete"
- "POST /vnfpkgm/v1/vnf_packages": vnfds.post
+ "POST /vnfpkgm/v1/vnf_packages": "vnfds:post"
- "PATCH /vnfpkgm/v1/vnf_packages/<vnfPkgId>": vnfds.id.patch
+ "PATCH /vnfpkgm/v1/vnf_packages/<vnfPkgId>": "vnfds:id:patch"
- "GET /vnfpkgm/v1/vnf_packages/<vnfPkgId>/package_content": vnfds.id.content.get
+ "GET /vnfpkgm/v1/vnf_packages/<vnfPkgId>/package_content": "vnfds:id:content:get"
- "PUT /vnfpkgm/v1/vnf_packages/<vnfPkgId>/package_content": vnfds.id.content.put
+ "PUT /vnfpkgm/v1/vnf_packages/<vnfPkgId>/package_content": "vnfds:id:content:put"
- "POST /vnfpkgm/v1/vnf_packages/<vnfPkgId>/package_content/upload_from_uri": vnfds.id.upload.post
+ "POST /vnfpkgm/v1/vnf_packages/<vnfPkgId>/package_content/upload_from_uri": "vnfds:id:upload:post"
- "GET /vnfpkgm/v1/vnf_packages/<vnfPkgId>/vnfd": vnfds.id.vnfd.get
+ "GET /vnfpkgm/v1/vnf_packages/<vnfPkgId>/vnfd": "vnfds:id:vnfd:get"
- "GET /vnfpkgm/v1/vnf_packages/<vnfPkgId>/artifacts": vnfds.id.vnfd_artifact.get
- "GET /vnfpkgm/v1/vnf_packages/<vnfPkgId>/artifacts/<artifactPath>": vnfds.id.vnfd_artifact.get
+ "GET /vnfpkgm/v1/vnf_packages/<vnfPkgId>/artifacts": "vnfds:id:vnfd_artifact:get"
+ "GET /vnfpkgm/v1/vnf_packages/<vnfPkgId>/artifacts/<artifactPath>": "vnfds:id:vnfd_artifact:get"
################################################################################
################################## NS Instances ################################
################################################################################
################################################################################
################################## NS Instances ################################
################################################################################
- "GET /nslcm/v1/ns_instances_content": ns_instances.get
- "GET /nslcm/v1/ns_instances": ns_instances.get
+ "GET /nslcm/v1/ns_instances_content": "ns_instances:get"
+ "GET /nslcm/v1/ns_instances": "ns_instances:get"
- "POST /nslcm/v1/ns_instances_content": ns_instances.content.post
+ "POST /nslcm/v1/ns_instances_content": "ns_instances:content:post"
- "GET /nslcm/v1/ns_instances_content/<nsInstanceId>": ns_instances.id.get
- "GET /nslcm/v1/ns_instances/<nsInstanceId>": ns_instances.id.get
+ "GET /nslcm/v1/ns_instances_content/<nsInstanceId>": "ns_instances:id:get"
+ "GET /nslcm/v1/ns_instances/<nsInstanceId>": "ns_instances:id:get"
- "DELETE /nslcm/v1/ns_instances_content/<nsInstanceId>": ns_instances.id.delete
- "DELETE /nslcm/v1/ns_instances/<nsInstanceId>": ns_instances.id.delete
+ "DELETE /nslcm/v1/ns_instances_content/<nsInstanceId>": "ns_instances:id:delete"
+ "DELETE /nslcm/v1/ns_instances/<nsInstanceId>": "ns_instances:id:delete"
- "POST /nslcm/v1/ns_instances": ns_instances.post
+ "POST /nslcm/v1/ns_instances": "ns_instances:post"
- "POST /nslcm/v1/ns_instances/<nsInstanceId>/instantiate": ns_instances.id.instantiate.post
+ "POST /nslcm/v1/ns_instances/<nsInstanceId>/instantiate": "ns_instances:id:instantiate:post"
- "POST /nslcm/v1/ns_instances/<nsInstanceId>/terminate": ns_instances.id.terminate.post
+ "POST /nslcm/v1/ns_instances/<nsInstanceId>/terminate": "ns_instances:id:terminate:post"
- "POST /nslcm/v1/ns_instances/<nsInstanceId>/action": ns_instances.id.action.post
+ "POST /nslcm/v1/ns_instances/<nsInstanceId>/action": "ns_instances:id:action:post"
- "POST /nslcm/v1/ns_instances/<nsInstanceId>/scale": ns_instances.id.scale.post
+ "POST /nslcm/v1/ns_instances/<nsInstanceId>/scale": "ns_instances:id:scale:post"
- "GET /nslcm/v1/ns_instances/<nsInstanceId>/ns_lcm_op_occs": ns_instances.id.opps.get
+ "GET /nslcm/v1/ns_instances/<nsInstanceId>/ns_lcm_op_occs": "ns_instances:id:opps:get"
- "GET /nslcm/v1/ns_instances/<nsInstanceId>/ns_lcm_op_occs/<nsLcmOpOccId>": ns_instances.id.opps.id.get
+ "GET /nslcm/v1/ns_instances/<nsInstanceId>/ns_lcm_op_occs/<nsLcmOpOccId>": "ns_instances:id:opps:id:get"
################################################################################
################################# VNF Instances ################################
################################################################################
################################################################################
################################# VNF Instances ################################
################################################################################
- "GET /nslcm/v1/vnfrs": vnf_instances.get
- "GET /nslcm/v1/vnf_instances": vnf_instances.get
+ "GET /nslcm/v1/vnfrs": "vnf_instances:get"
+ "GET /nslcm/v1/vnf_instances": "vnf_instances:get"
- "GET /nslcm/v1/vnfrs/<vnfInstanceId>": vnf_instances.id.get
- "GET /nslcm/v1/vnf_instances/<vnfInstanceId>": vnf_instances.id.get
+ "GET /nslcm/v1/vnfrs/<vnfInstanceId>": "vnf_instances:id:get"
+ "GET /nslcm/v1/vnf_instances/<vnfInstanceId>": "vnf_instances:id:get"
################################################################################
#################################### Tokens ####################################
################################################################################
################################################################################
#################################### Tokens ####################################
################################################################################
- "GET /admin/v1/tokens": tokens.get
+ "GET /admin/v1/tokens": "tokens:get"
- "POST /admin/v1/tokens": tokens.post
+ "POST /admin/v1/tokens": "tokens:post"
- "DELETE /admin/v1/tokens": tokens.delete
+ "DELETE /admin/v1/tokens": "tokens:delete"
- "GET /admin/v1/tokens/<id>": tokens.id.get
+ "GET /admin/v1/tokens/<id>": "tokens:id:get"
- "DELETE /admin/v1/tokens/<id>": tokens.id.delete
+ "DELETE /admin/v1/tokens/<id>": "tokens:id:delete"
################################################################################
##################################### Users ####################################
################################################################################
################################################################################
##################################### Users ####################################
################################################################################
- "GET /admin/v1/users": users.get
+ "GET /admin/v1/users": "users:get"
- "POST /admin/v1/users": users.post
+ "POST /admin/v1/users": "users:post"
- "GET /admin/v1/users/<id>": users.id.get
+ "GET /admin/v1/users/<id>": "users:id:get"
- "POST /admin/v1/users/<id>": users.id.post
+ "POST /admin/v1/users/<id>": "users:id:post"
- "PUT /admin/v1/users/<id>": users.id.put
+ "PUT /admin/v1/users/<id>": "users:id:put"
- "DELETE /admin/v1/users/<id>": users.id.delete
+ "DELETE /admin/v1/users/<id>": "users:id:delete"
- "PATCH /admin/v1/users/<id>": users.id.patch
+ "PATCH /admin/v1/users/<id>": "users:id:patch"
################################################################################
#################################### Projects ##################################
################################################################################
################################################################################
#################################### Projects ##################################
################################################################################
- "GET /admin/v1/projects": projects.get
+ "GET /admin/v1/projects": "projects:get"
- "POST /admin/v1/projects": projects.post
+ "POST /admin/v1/projects": "projects:post"
- "GET /admin/v1/projects/<id>": projects.id.get
+ "GET /admin/v1/projects/<id>": "projects:id:get"
- "DELETE /admin/v1/projects/<id>": projects.id.delete
+ "DELETE /admin/v1/projects/<id>": "projects:id:delete"
################################################################################
##################################### VIMs #####################################
################################################################################
################################################################################
##################################### VIMs #####################################
################################################################################
- "GET /admin/v1/vims": vims.get
+ "GET /admin/v1/vims": "vims:get"
- "POST /admin/v1/vims": vims.post
+ "POST /admin/v1/vims": "vims:post"
- "GET /admin/v1/vims/<id>": vims.id.get
+ "GET /admin/v1/vims/<id>": "vims:id:get"
- "PUT /admin/v1/vims/<id>": vims.id.put
+ "PUT /admin/v1/vims/<id>": "vims:id:put"
- "DELETE /admin/v1/vims/<id>": vims.id.delete
+ "DELETE /admin/v1/vims/<id>": "vims:id:delete"
- "PATCH /admin/v1/vims/<id>": vims.id.patch
+ "PATCH /admin/v1/vims/<id>": "vims:id:patch"
################################################################################
################################## VIM Accounts ################################
################################################################################
################################################################################
################################## VIM Accounts ################################
################################################################################
- "GET /admin/v1/vim_accounts": vim_accounts.get
+ "GET /admin/v1/vim_accounts": "vim_accounts:get"
- "POST /admin/v1/vim_accounts": vim_accounts.post
+ "POST /admin/v1/vim_accounts": "vim_accounts:post"
- "GET /admin/v1/vim_accounts/<id>": vim_accounts.id.get
+ "GET /admin/v1/vim_accounts/<id>": "vim_accounts:id:get"
- "PUT /admin/v1/vim_accounts/<id>": vim_accounts.id.put
+ "PUT /admin/v1/vim_accounts/<id>": "vim_accounts:id:put"
- "DELETE /admin/v1/vim_accounts/<id>": vim_accounts.id.delete
+ "DELETE /admin/v1/vim_accounts/<id>": "vim_accounts:id:delete"
- "PATCH /admin/v1/vim_accounts/<id>": vim_accounts.id.patch
+ "PATCH /admin/v1/vim_accounts/<id>": "vim_accounts:id:patch"
################################################################################
################################# SDN Controllers ##############################
################################################################################
################################################################################
################################# SDN Controllers ##############################
################################################################################
- "GET /admin/v1/sdns": sdn_controllers.get
+ "GET /admin/v1/sdns": "sdn_controllers:get"
- "POST /admin/v1/sdns": sdn_controllers.post
+ "POST /admin/v1/sdns": "sdn_controllers:post"
- "GET /admin/v1/sdns/<id>": sdn_controllers.id.get
+ "GET /admin/v1/sdns/<id>": "sdn_controllers:id:get"
- "PUT /admin/v1/sdns/<id>": sdn_controllers.id.put
+ "PUT /admin/v1/sdns/<id>": "sdn_controllers:id:put"
- "DELETE /admin/v1/sdns/<id>": sdn_controllers.id.delete
+ "DELETE /admin/v1/sdns/<id>": "sdn_controllers:id:delete"
- "PATCH /admin/v1/sdns/<id>": sdn_controllers.id.patch
+ "PATCH /admin/v1/sdns/<id>": "sdn_controllers:id:patch"
################################################################################
##################################### WIMs #####################################
################################################################################
################################################################################
##################################### WIMs #####################################
################################################################################
- "GET /admin/v1/wims": wims.get
+ "GET /admin/v1/wims": "wims:get"
- "POST /admin/v1/wims": wims.post
+ "POST /admin/v1/wims": "wims:post"
- "GET /admin/v1/wims/<id>": wims.id.get
+ "GET /admin/v1/wims/<id>": "wims:id:get"
- "PUT /admin/v1/wims/<id>": wims.id.put
+ "PUT /admin/v1/wims/<id>": "wims:id:put"
- "DELETE /admin/v1/wims/<id>": wims.id.delete
+ "DELETE /admin/v1/wims/<id>": "wims:id:delete"
- "PATCH /admin/v1/wims/<id>": wims.id.patch
+ "PATCH /admin/v1/wims/<id>": "wims:id:patch"
################################################################################
################################## WIM Accounts ################################
################################################################################
################################################################################
################################## WIM Accounts ################################
################################################################################
- "GET /admin/v1/wim_accounts": wim_accounts.get
+ "GET /admin/v1/wim_accounts": "wim_accounts:get"
- "POST /admin/v1/wim_accounts": wim_accounts.post
+ "POST /admin/v1/wim_accounts": "wim_accounts:post"
- "GET /admin/v1/wim_accounts/<id>": wim_accounts.id.get
+ "GET /admin/v1/wim_accounts/<id>": "wim_accounts:id:get"
- "PUT /admin/v1/wim_accounts/<id>": wim_accounts.id.put
+ "PUT /admin/v1/wim_accounts/<id>": "wim_accounts:id:put"
- "DELETE /admin/v1/wim_accounts/<id>": wim_accounts.id.delete
+ "DELETE /admin/v1/wim_accounts/<id>": "wim_accounts:id:delete"
- "PATCH /admin/v1/wim_accounts/<id>": wim_accounts.id.patch
+ "PATCH /admin/v1/wim_accounts/<id>": "wim_accounts:id:patch"
################################################################################
##################################### Roles ####################################
################################################################################
################################################################################
##################################### Roles ####################################
################################################################################
- "GET /admin/v1/roles": roles.get
+ "GET /admin/v1/roles": "roles:get"
- "POST /admin/v1/roles": roles.post
+ "POST /admin/v1/roles": "roles:post"
- "GET /admin/v1/roles/<id>": roles.id.get
+ "GET /admin/v1/roles/<id>": "roles:id:get"
- "DELETE /admin/v1/roles/<id>": roles.id.delete
+ "DELETE /admin/v1/roles/<id>": "roles:id:delete"
################################################################################
##################################### PDUDs ####################################
################################################################################
################################################################################
##################################### PDUDs ####################################
################################################################################
- "GET /pdu/v1/pdu_descriptors": pduds.get
+ "GET /pdu/v1/pdu_descriptors": "pduds:get"
- "POST /pdu/v1/pdu_descriptors": pduds.post
+ "POST /pdu/v1/pdu_descriptors": "pduds:post"
- "PUT /pdu/v1/pdu_descriptors": pduds.put
+ "PUT /pdu/v1/pdu_descriptors": "pduds:put"
- "DELETE /pdu/v1/pdu_descriptors": pduds.delete
+ "DELETE /pdu/v1/pdu_descriptors": "pduds:delete"
- "PATCH /pdu/v1/pdu_descriptors": pduds.patch
+ "PATCH /pdu/v1/pdu_descriptors": "pduds:patch"
- "GET /pdu/v1/pdu_descriptors/<id>": pduds.id.get
+ "GET /pdu/v1/pdu_descriptors/<id>": "pduds:id:get"
- "POST /pdu/v1/pdu_descriptors/<id>": pduds.id.post
+ "POST /pdu/v1/pdu_descriptors/<id>": "pduds:id:post"
- "PUT /pdu/v1/pdu_descriptors/<id>": pduds.id.put
+ "PUT /pdu/v1/pdu_descriptors/<id>": "pduds:id:put"
- "DELETE /pdu/v1/pdu_descriptors/<id>": pduds.id.delete
+ "DELETE /pdu/v1/pdu_descriptors/<id>": "pduds:id:delete"
- "PATCH /pdu/v1/pdu_descriptors/<id>": pduds.id.patch
+ "PATCH /pdu/v1/pdu_descriptors/<id>": "pduds:id:patch"
################################################################################
############################ Network Slice Templates ###########################
################################################################################
################################################################################
############################ Network Slice Templates ###########################
################################################################################
- "GET /nst/v1/netslice_templates_content": slice_templates.get
- "GET /nst/v1/netslice_templates": slice_templates.get
+ "GET /nst/v1/netslice_templates_content": "slice_templates:get"
+ "GET /nst/v1/netslice_templates": "slice_templates:get"
- "POST /nst/v1/netslice_templates_content": slice_templates.content.post
+ "POST /nst/v1/netslice_templates_content": "slice_templates:content:post"
- "GET /nst/v1/netslice_templates_content/<nstInfoId>": slice_templates.id.get
- "GET /nst/v1/netslice_templates/<nstInfoId>": slice_templates.id.get
+ "GET /nst/v1/netslice_templates_content/<nstInfoId>": "slice_templates:id:get"
+ "GET /nst/v1/netslice_templates/<nstInfoId>": "slice_templates:id:get"
- "PUT /nst/v1/netslice_templates_content/<nstInfoId>": slice_templates.id.put
+ "PUT /nst/v1/netslice_templates_content/<nstInfoId>": "slice_templates:id:put"
- "DELETE /nst/v1/netslice_templates_content/<nstInfoId>": slice_templates.id.delete
- "DELETE /nst/v1/netslice_templates/<nstInfoId>": slice_templates.id.delete
+ "DELETE /nst/v1/netslice_templates_content/<nstInfoId>": "slice_templates:id:delete"
+ "DELETE /nst/v1/netslice_templates/<nstInfoId>": "slice_templates:id:delete"
- "PATCH /nst/v1/netslice_templates/<nstInfoId>": slice_templates.id.patch
+ "PATCH /nst/v1/netslice_templates/<nstInfoId>": "slice_templates:id:patch"
- "GET /nst/v1/netslice_templates/<nstInfoId>/nst_content": slice_templates.content.get
+ "GET /nst/v1/netslice_templates/<nstInfoId>/nst_content": "slice_templates:content:get"
- "PUT /nst/v1/netslice_templates/<nstInfoId>/nst_content": slice_templates.content.put
+ "PUT /nst/v1/netslice_templates/<nstInfoId>/nst_content": "slice_templates:content:put"
- "GET /nst/v1/netslice_templates/<nstInfoId>/nst": slice_templates.id.nst.get
+ "GET /nst/v1/netslice_templates/<nstInfoId>/nst": "slice_templates:id:nst:get"
- "GET /nst/v1/netslice_templates/<nstInfoId>/artifacts": slice_templates.id.nst_artifact.get
- "GET /nst/v1/netslice_templates/<nstInfoId>/artifacts/<artifactPath>": slice_templates.id.nst_artifact.get
+ "GET /nst/v1/netslice_templates/<nstInfoId>/artifacts": "slice_templates:id:nst_artifact:get"
+ "GET /nst/v1/netslice_templates/<nstInfoId>/artifacts/<artifactPath>": "slice_templates:id:nst_artifact:get"
################################################################################
############################ Network Slice Instances ###########################
################################################################################
################################################################################
############################ Network Slice Instances ###########################
################################################################################
- "GET /nsilcm/v1/netslice_instances_content": slice_instances.get
- "GET /nsilcm/v1/netslice_instances": slice_instances.get
+ "GET /nsilcm/v1/netslice_instances_content": "slice_instances:get"
+ "GET /nsilcm/v1/netslice_instances": "slice_instances:get"
- "POST /nsilcm/v1/netslice_instances_content": slice_instances.content.get
+ "POST /nsilcm/v1/netslice_instances_content": "slice_instances:content:get"
- "GET /nsilcm/v1/netslice_instances_content/<SliceInstanceId>": slice_instances.id.get
- "GET /nsilcm/v1/netslice_instances/<SliceInstanceId>": slice_instances.id.get
+ "GET /nsilcm/v1/netslice_instances_content/<SliceInstanceId>": "slice_instances:id:get"
+ "GET /nsilcm/v1/netslice_instances/<SliceInstanceId>": "slice_instances:id:get"
- "DELETE /nsilcm/v1/netslice_instances_content/<SliceInstanceId>": slice_instances.id.delete
- "DELETE /nsilcm/v1/netslice_instances/<SliceInstanceId>": slice_instances.id.delete
+ "DELETE /nsilcm/v1/netslice_instances_content/<SliceInstanceId>": "slice_instances:id:delete"
+ "DELETE /nsilcm/v1/netslice_instances/<SliceInstanceId>": "slice_instances:id:delete"
- "POST /nsilcm/v1/netslice_instances": slice_instances.post
+ "POST /nsilcm/v1/netslice_instances": "slice_instances:post"
- "POST /nsilcm/v1/netslice_instances/<SliceInstanceId>/instantiate": slice_instances.id.instantiate.post
+ "POST /nsilcm/v1/netslice_instances/<SliceInstanceId>/instantiate": "slice_instances:id:instantiate:post"
- "POST /nsilcm/v1/netslice_instances/<SliceInstanceId>/terminate": slice_instances.id.terminate.post
+ "POST /nsilcm/v1/netslice_instances/<SliceInstanceId>/terminate": "slice_instances:id:terminate:post"
- "POST /nsilcm/v1/netslice_instances/<SliceInstanceId>/action": slice_instances.id.action.post
+ "POST /nsilcm/v1/netslice_instances/<SliceInstanceId>/action": "slice_instances:id:action:post"
- "GET /nsilcm/v1/netslice_instances/<SliceInstanceId>/nsi_lcm_op_occs": slice_instances.id.opps.get
+ "GET /nsilcm/v1/netslice_instances/<SliceInstanceId>/nsi_lcm_op_occs": "slice_instances:id:opps:get"
- "GET /nsilcm/v1/netslice_instances/<SliceInstanceId>/nsi_lcm_op_occs/<nsiLcmOpOccId>": slice_instances.id.opps.id.get
+ "GET /nsilcm/v1/netslice_instances/<SliceInstanceId>/nsi_lcm_op_occs/<nsiLcmOpOccId>": "slice_instances:id:opps:id:get"
- role: "system_admin"
operations:
- role: "system_admin"
operations:
- role: "account_manager"
operations:
- role: "account_manager"
operations:
"tokens": true
"users": true
"projects": true
"tokens": true
"users": true
"projects": true
- role: "project_admin"
operations:
- role: "project_admin"
operations:
- "users.post": false
- "users.id.post": false
- "users.id.delete": false
+ "users:post": false
+ "users:id:post": false
+ "users:id:delete": false
# Projects
"projects": false
# Roles
# Projects
"projects": false
# Roles
- role: "project_user"
operations:
- role: "project_user"
operations:
# NS Instances
"ns_instances": false
# NS Instances
"ns_instances": false
- "ns_instances.get": true
+ "ns_instances:get": true
# VNF Instances
"vnf_instances": false
# Users
"users": false
# VNF Instances
"vnf_instances": false
# Users
"users": false
- "users.id.get": true
- "users.id.put": true
- "users.id.patch": true
+ "users:id:get": true
+ "users:id:put": true
+ "users:id:patch": true
# Projects
"projects": false
# VIMs
"vims": false
# Projects
"projects": false
# VIMs
"vims": false
- "vims.get": true
- "vims.id.get": true
+ "vims:get": true
+ "vims:id:get": true
# VIM Accounts
"vim_accounts": false
# VIM Accounts
"vim_accounts": false
- "vim_accounts.get": true
- "vim_accounts.id.get": true
+ "vim_accounts:get": true
+ "vim_accounts:id:get": true
# SDN Controllers
"sdn_controllers": false
# SDN Controllers
"sdn_controllers": false
- "sdn_controllers.get": true
- "sdn_controllers.id.get": true
+ "sdn_controllers:get": true
+ "sdn_controllers:id:get": true
- "wims.get": true
- "wims.id.get": true
+ "wims:get": true
+ "wims:id:get": true
# WIM Accounts
"wim_accounts": false
# WIM Accounts
"wim_accounts": false
- "wim_accounts.get": true
- "wim_accounts.id.get": true
+ "wim_accounts:get": true
+ "wim_accounts:id:get": true
- role: "anonymous"
operations:
- role: "anonymous"
operations: