X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FNBI.git;a=blobdiff_plain;f=osm_nbi%2Fvalidation.py;h=3fec364edf9b665fe11e07e2ef0a7b348e58e876;hp=fc16f062602be428d2b0eb41d77b9f08b9e0c669;hb=f100459221b95cdaaa543793623e556a9abd4852;hpb=1a01e1fbea5040cce855db2b584cf8ef7c13ecae diff --git a/osm_nbi/validation.py b/osm_nbi/validation.py index fc16f06..3fec364 100644 --- a/osm_nbi/validation.py +++ b/osm_nbi/validation.py @@ -157,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, }, @@ -176,7 +176,7 @@ ip_profile_dns_schema = { "items": { "type": "object", "properties": { - "address": ip_schema, + "address": {"oneOf": [ip_schema, ipv6_schema]}, }, "required": ["address"], "additionalProperties": False, @@ -246,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": { @@ -316,6 +316,19 @@ additional_params_for_vnf = { "additionalProperties": False, }, }, + "affinity-or-anti-affinity-group": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": name_schema, + "vim-affinity-group-id": name_schema, + }, + "required": ["id"], + "minProperties": 2, + "additionalProperties": False, + }, + }, }, "required": ["member-vnf-index"], "minProperties": 2, @@ -391,7 +404,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": [ @@ -427,6 +440,39 @@ ns_terminate = { "additionalProperties": False, } +ns_update = { + "title": "ns update input schema", + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "lcmOperationType": string_schema, + "nsInstanceId": id_schema, + "timeout_ns_update": integer1_schema, + "updateType": { + "enum": ["CHANGE_VNFPKG", "REMOVE_VNF", "MODIFY_VNF_INFORMATION"] + }, + "modifyVnfInfoData": { + "type": "object", + "properties": { + "vnfInstanceId": id_schema, + "vnfdId": id_schema, + }, + "required": ["vnfInstanceId", "vnfdId"], + }, + "removeVnfInstanceId": id_schema, + "changeVnfPackageData": { + "type": "object", + "properties": { + "vnfInstanceId": id_schema, + "vnfdId": id_schema, + }, + "required": ["vnfInstanceId", "vnfdId"], + }, + }, + "required": ["updateType"], + "additionalProperties": False, +} + ns_action = { # TODO for the moment it is only contemplated the vnfd primitive execution "title": "ns action input schema", "$schema": "http://json-schema.org/draft-04/schema#", @@ -480,6 +526,28 @@ ns_scale = { # TODO for the moment it is only VDU-scaling "additionalProperties": False, } +ns_migrate = { + "title": "ns migrate input schema", + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "lcmOperationType": string_schema, + "nsInstanceId": id_schema, + "vnfInstanceId": id_schema, + "migrateToHost": string_schema, + "vdu": { + "type": "object", + "properties": { + "vduId": name_schema, + "vduCountIndex": integer0_schema, + }, + "required": ["vduId"], + "additionalProperties": False, + }, + }, + "required": ["vnfInstanceId"], + "additionalProperties": False +} schema_version = {"type": "string", "enum": ["1.0"]} schema_type = {"type": "string"} @@ -503,6 +571,7 @@ vim_account_edit_schema = { "vim_password": passwd_schema, "vca": id_schema, "config": {"type": "object"}, + "prometheus-config": {"type": "object"}, }, "additionalProperties": False, } @@ -527,6 +596,7 @@ vim_account_new_schema = { "vim_password": passwd_schema, "vca": id_schema, "config": {"type": "object"}, + "prometheus-config": {"type": "object"}, }, "required": [ "name", @@ -924,6 +994,7 @@ user_edit_schema = { "type": "object", "properties": { "password": passwd_schema, + "old_password": passwd_schema, "username": string_schema, # To allow User Name modification "projects": {"oneOf": [nameshort_list_schema, array_edition_schema]}, "project_role_mappings": project_role_mappings, @@ -1032,6 +1103,7 @@ nbi_new_input_schemas = { "ns_instantiate": ns_instantiate, "ns_action": ns_action, "ns_scale": ns_scale, + "ns_update": ns_update, "pdus": pdu_new_schema, } @@ -1237,6 +1309,63 @@ subscription = { "required": ["CallbackUri"], } +vnflcmsub_schema = { + "title": "vnflcmsubscription input schema", + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "properties": { + "VnfInstanceSubscriptionFilter": { + "type": "object", + "properties": { + "vnfdIds": {"type": "array"}, + "vnfInstanceIds": {"type": "array"}, + }, + }, + "notificationTypes": { + "type": "array", + "items": { + "enum": [ + "VnfIdentifierCreationNotification", + "VnfLcmOperationOccurrenceNotification", + "VnfIdentifierDeletionNotification" + ] + } + }, + "operationTypes": { + "type": "array", + "items": { + "enum": [ + "INSTANTIATE", "SCALE", "SCALE_TO_LEVEL", "CHANGE_FLAVOUR", "TERMINATE", + "HEAL", "OPERATE", "CHANGE_EXT_CONN", "MODIFY_INFO", "CREATE_SNAPSHOT", + "REVERT_TO_SNAPSHOT", "CHANGE_VNFPKG" + ] + } + }, + "operationStates": { + "type": "array", + "items": { + "enum": [ + "STARTING", "PROCESSING", "COMPLETED", "FAILED_TEMP", "FAILED", + "ROLLING_BACK", "ROLLED_BACK" + ] + } + } + }, + "required": ["VnfInstanceSubscriptionFilter", "notificationTypes"] + } + +vnf_subscription = { + "title": "vnf subscription input schema", + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "properties": { + "filter": vnflcmsub_schema, + "CallbackUri": description_schema, + "authentication": authentication_schema + }, + "required": ["filter", "CallbackUri"] +} + class ValidationError(Exception): def __init__(self, message, http_code=HTTPStatus.UNPROCESSABLE_ENTITY):