X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FNBI.git;a=blobdiff_plain;f=osm_nbi%2Fvalidation.py;h=d1cfc1df1d0cf7cec1242521f4b6c7cf817f82b0;hp=153086b37eaf05baa0a299aaba6c0f9f88a17438;hb=9fb3271fa1d2568ef693d6f71d25884d7e6ea45e;hpb=4568a372eb5a204e04d917213de03ec51f9110c1 diff --git a/osm_nbi/validation.py b/osm_nbi/validation.py index 153086b..d1cfc1d 100644 --- a/osm_nbi/validation.py +++ b/osm_nbi/validation.py @@ -94,6 +94,10 @@ ip_schema = { "type": "string", "pattern": "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$", } +ipv6_schema = { + "type": "string", + "pattern": "(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))", +} ip_prefix_schema = { "type": "string", "pattern": "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}" @@ -153,7 +157,7 @@ ns_instantiate_vdu = { "type": "object", "properties": { "name": name_schema, - "ip-address": ip_schema, + "ip-address": {"oneOf": [ip_schema, ipv6_schema]}, "mac-address": mac_schema, "floating-ip-required": bool_schema, }, @@ -172,7 +176,7 @@ ip_profile_dns_schema = { "items": { "type": "object", "properties": { - "address": ip_schema, + "address": {"oneOf": [ip_schema, ipv6_schema]}, }, "required": ["address"], "additionalProperties": False, @@ -242,7 +246,7 @@ provider_network_schema = { } ns_instantiate_internal_vld = { - "title": "ns action instantiate input schema for vdu", + "title": "ns action instantiate input schema for vld", "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { @@ -305,6 +309,7 @@ additional_params_for_vnf = { "kdu_model": name_schema, "k8s-namespace": name_schema, "config-units": integer1_schema, # number of configuration units of this knf, by default 1 + "kdu-deployment-name": name_schema, }, "required": ["kdu_name"], "minProperties": 2, @@ -329,7 +334,6 @@ ns_instantiate = { "nsName": name_schema, "nsDescription": {"oneOf": [description_schema, null_schema]}, "nsdId": id_schema, - "vcaId": id_schema, "vimAccountId": id_schema, "wimAccountId": {"oneOf": [id_schema, bool_schema, null_schema]}, "placement-engine": string_schema, @@ -350,7 +354,6 @@ ns_instantiate = { "properties": { "member-vnf-index": name_schema, "vimAccountId": id_schema, - "vcaId": id_schema, "vdu": { "type": "array", "minItems": 1, @@ -388,7 +391,7 @@ ns_instantiate = { "properties": { "member-vnf-index-ref": name_schema, "vnfd-connection-point-ref": name_schema, - "ip-address": ip_schema, + "ip-address": {"oneOf": [ip_schema, ipv6_schema]}, # "mac-address": mac_schema, }, "required": [ @@ -496,7 +499,7 @@ vim_account_edit_schema = { # "vim_url_admin": description_schema, # "vim_tenant": name_schema, "vim_tenant_name": name_schema, - "vim_user": shortname_schema, + "vim_user": string_schema, "vim_password": passwd_schema, "vca": id_schema, "config": {"type": "object"}, @@ -520,7 +523,7 @@ vim_account_new_schema = { # "vim_url_admin": description_schema, # "vim_tenant": name_schema, "vim_tenant_name": name_schema, - "vim_user": shortname_schema, + "vim_user": string_schema, "vim_password": passwd_schema, "vca": id_schema, "config": {"type": "object"}, @@ -548,7 +551,7 @@ wim_account_edit_schema = { "wim": name_schema, "wim_type": wim_type, "wim_url": description_schema, - "user": shortname_schema, + "user": string_schema, "password": passwd_schema, "config": {"type": "object"}, }, @@ -567,7 +570,7 @@ wim_account_new_schema = { "wim": name_schema, "wim_type": wim_type, "wim_url": description_schema, - "user": shortname_schema, + "user": string_schema, "password": passwd_schema, "config": { "type": "object", @@ -582,7 +585,7 @@ sdn_properties = { "name": name_schema, "type": {"type": "string"}, "url": {"type": "string"}, - "user": shortname_schema, + "user": string_schema, "password": passwd_schema, "config": {"type": "object"}, "description": description_schema, @@ -702,7 +705,7 @@ vca_new_schema = { "name": name_schema, "description": description_schema, "endpoints": description_list_schema, - "user": shortname_schema, + "user": string_schema, "secret": passwd_schema, "cacert": long_description_schema, "lxd-cloud": shortname_schema, @@ -733,7 +736,7 @@ vca_edit_schema = { "description": description_schema, "endpoints": description_list_schema, "port": integer1_schema, - "user": shortname_schema, + "user": string_schema, "secret": passwd_schema, "cacert": long_description_schema, "lxd-cloud": shortname_schema, @@ -776,7 +779,7 @@ osmrepo_properties = { "description": description_schema, "type": osmrepo_types, "url": description_schema - # "user": shortname_schema, + # "user": string_schema, # "password": passwd_schema } osmrepo_new_schema = { @@ -802,7 +805,7 @@ pdu_interface = { "name": shortname_schema, "mgmt": bool_schema, "type": {"enum": ["overlay", "underlay"]}, - "ip-address": ip_schema, + "ip-address": {"oneOf": [ip_schema, ipv6_schema]}, # TODO, add user, password, ssh-key "mac-address": mac_schema, "vim-network-name": shortname_schema, # interface is connected to one vim network, or switch port @@ -906,7 +909,7 @@ user_new_schema = { "title": "New user schema", "type": "object", "properties": { - "username": shortname_schema, + "username": string_schema, "domain_name": shortname_schema, "password": passwd_schema, "projects": nameshort_list_schema, @@ -921,7 +924,7 @@ user_edit_schema = { "type": "object", "properties": { "password": passwd_schema, - "username": shortname_schema, # To allow User Name modification + "username": string_schema, # To allow User Name modification "projects": {"oneOf": [nameshort_list_schema, array_edition_schema]}, "project_role_mappings": project_role_mappings, "add_project_role_mappings": project_role_mappings, @@ -1215,7 +1218,7 @@ authentication_schema = { "paramsBasic": { "type": "object", "properties": { - "userName": shortname_schema, + "userName": string_schema, "password": passwd_schema, }, },