From 78be848fcf71bf970cf4de16e22a37e09edeaaa7 Mon Sep 17 00:00:00 2001 From: Atif Husain Date: Wed, 4 Dec 2019 16:40:38 +1100 Subject: Added datatypes for 3rd Party Partners Issue-ID: SDC-2385 Change-Id: Iedc5d5b9b30e7cccd3654a1b6e84514643b6d62f Signed-off-by: Atif Husain --- .../import/tosca/data-types/dataTypes.yml | 149 +++++++++ .../PropertyValueConstraintValidationUtilTest.java | 137 ++++++++ .../resources/types/datatypes/constraintTest.json | 354 ++++++++++++++++++++- 3 files changed, 639 insertions(+), 1 deletion(-) diff --git a/catalog-be/src/main/resources/import/tosca/data-types/dataTypes.yml b/catalog-be/src/main/resources/import/tosca/data-types/dataTypes.yml index f1dab7d360..3e90362166 100644 --- a/catalog-be/src/main/resources/import/tosca/data-types/dataTypes.yml +++ b/catalog-be/src/main/resources/import/tosca/data-types/dataTypes.yml @@ -2549,3 +2549,152 @@ onap.datatypes.monitoring.rcc_event_details: description: The user specific data required: false +##### Partner service domain datatypes ###### + +onap.datatypes.partner.access_details: + derived_from: tosca.datatypes.Root + properties: + addressId: + type: string + description: id of the site + required: true + dsl_stability_profile: + type: string + description: profile of stability + required: false + default: standard + constraints: + - valid_values: + - standard + - stable + partner_priorty_assist: + type: boolean + description: assistance flag + required: false + default: true + battery_backup: + type: boolean + description: backup requirement flag + required: false + default: true + central_splitter: + type: boolean + description: applicable to FTTN service + required: false + default: true + service_restoration_sla: + type: string + description: This is the service restoration SLA from an partner perspective. + required: false + default: Standard + constraints: + - valid_values: + - Standard + - Enhanced + +onap.datatypes.partner.bandwidth: + derived_from: tosca.datatypes.Root + properties: + bandwidth_type: + type: string + description: type of bandwidth + required: true + default: standard + constraints: + - valid_values: + - standard + - guaranteed + downstream: + type: string + description: down speed + required: true + constraints: + - valid_values: + - 128 + - 512 + - 1 + - 2 + - 5 + - 10 + - 20 + - 25 + - 30 + - 40 + - 50 + - 100 + - 250 + - 500 + - 1000 + upstream: + type: string + description: up speed + required: false + constraints: + - valid_values: + - 128 + - 512 + - 1 + - 2 + - 5 + - 10 + - 20 + - 25 + - 30 + - 40 + - 50 + - 100 + - 250 + - 500 + - 1000 + units: + type: string + description: unit of speed + required: true + constraints: + - valid_values: + - k + - M + service_alias: + type: string + description: 16 digit id + required: false + +onap.datatypes.partner.service_details: + derived_from: tosca.datatypes.Root + properties: + bandwidth: + type: onap.datatypes.partner.bandwidth + description: bandwidth details for access + required: false + line_of_business: + type: string + description: LOB + required: false + constraints: + - valid_values: + - CONSUMER + - WHOLESALE + - BUSINESS + access_details: + type: onap.datatypes.partner.access_details + required: false + +onap.datatypes.partner.sppartner_details: + derived_from: tosca.datatypes.Root + properties: + partner_url: + type: string + description: Partner URL to access and provision the service + required: false + uuid: + type: string + description: UUID of the service definition defined in the partner catalog + required: false + auth_user: + type: string + description: Authentication details to access the Service URL + required: false + auth_password: + type: string + description: Authentication details to access the Service URL + required: false diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/utils/PropertyValueConstraintValidationUtilTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/utils/PropertyValueConstraintValidationUtilTest.java index eb48a5f3ab..2308c25fd8 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/utils/PropertyValueConstraintValidationUtilTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/utils/PropertyValueConstraintValidationUtilTest.java @@ -286,6 +286,142 @@ public class PropertyValueConstraintValidationUtilTest { Assert.assertTrue(responseEither.isRight()); } + @Test + public void bandwidthTypeValueSuccessTest(){ + Either, JanusGraphOperationStatus> either = Either.left(dataTypeDefinitionMap); + Mockito.when(applicationDataTypeCache.getAll()).thenReturn(either); + + PropertyDefinition propertyDefinition = new PropertyDefinition(); + propertyDefinition.setType("onap.datatypes.partner.bandwidth"); + propertyDefinition.setValue("{\"bandwidth_type\":\"guaranteed\"}"); + propertyDefinition.setName("bandwidth_type"); + + Either responseEither = + propertyValueConstraintValidationUtil.validatePropertyConstraints( + Collections.singletonList(propertyDefinition), applicationDataTypeCache); + + Assert.assertTrue(responseEither.isLeft()); + } + + @Test + public void bandwidthTypeValueFailTest(){ + Either, JanusGraphOperationStatus> either = Either.left(dataTypeDefinitionMap); + Mockito.when(applicationDataTypeCache.getAll()).thenReturn(either); + + PropertyDefinition propertyDefinition = new PropertyDefinition(); + propertyDefinition.setType("onap.datatypes.partner.bandwidth"); + propertyDefinition.setValue("{\"bandwidth_type\":\"incorrectValue\"}"); + propertyDefinition.setName("bandwidth_type"); + + Either responseEither = + propertyValueConstraintValidationUtil.validatePropertyConstraints( + Collections.singletonList(propertyDefinition), applicationDataTypeCache); + + Assert.assertTrue(responseEither.isRight()); + } + + @Test + public void bandwidthDownstreamValueSuccessTest(){ + Either, JanusGraphOperationStatus> either = Either.left(dataTypeDefinitionMap); + Mockito.when(applicationDataTypeCache.getAll()).thenReturn(either); + + PropertyDefinition propertyDefinition = new PropertyDefinition(); + propertyDefinition.setType("onap.datatypes.partner.bandwidth"); + propertyDefinition.setValue("{\"downstream\":\"128\"}"); + propertyDefinition.setName("downstream"); + + Either responseEither = + propertyValueConstraintValidationUtil.validatePropertyConstraints( + Collections.singletonList(propertyDefinition), applicationDataTypeCache); + + Assert.assertTrue(responseEither.isLeft()); + } + + @Test + public void bandwidthDownstreamValueFailTest(){ + Either, JanusGraphOperationStatus> either = Either.left(dataTypeDefinitionMap); + Mockito.when(applicationDataTypeCache.getAll()).thenReturn(either); + + PropertyDefinition propertyDefinition = new PropertyDefinition(); + propertyDefinition.setType("onap.datatypes.partner.bandwidth"); + propertyDefinition.setValue("{\"downstream\":\"incorrectValue\"}"); + propertyDefinition.setName("downstream"); + + Either responseEither = + propertyValueConstraintValidationUtil.validatePropertyConstraints( + Collections.singletonList(propertyDefinition), applicationDataTypeCache); + + Assert.assertTrue(responseEither.isRight()); + } + + @Test + public void bandwidthUpstreamValueSuccessTest(){ + Either, JanusGraphOperationStatus> either = Either.left(dataTypeDefinitionMap); + Mockito.when(applicationDataTypeCache.getAll()).thenReturn(either); + + PropertyDefinition propertyDefinition = new PropertyDefinition(); + propertyDefinition.setType("onap.datatypes.partner.bandwidth"); + propertyDefinition.setValue("{\"upstream\":\"128\"}"); + propertyDefinition.setName("upstream"); + + Either responseEither = + propertyValueConstraintValidationUtil.validatePropertyConstraints( + Collections.singletonList(propertyDefinition), applicationDataTypeCache); + + Assert.assertTrue(responseEither.isLeft()); + } + + @Test + public void bandwidthUpstreamValueFailTest(){ + Either, JanusGraphOperationStatus> either = Either.left(dataTypeDefinitionMap); + Mockito.when(applicationDataTypeCache.getAll()).thenReturn(either); + + PropertyDefinition propertyDefinition = new PropertyDefinition(); + propertyDefinition.setType("onap.datatypes.partner.bandwidth"); + propertyDefinition.setValue("{\"upstream\":\"incorrectValue\"}"); + propertyDefinition.setName("upstream"); + + Either responseEither = + propertyValueConstraintValidationUtil.validatePropertyConstraints( + Collections.singletonList(propertyDefinition), applicationDataTypeCache); + + Assert.assertTrue(responseEither.isRight()); + } + + @Test + public void bandwidthUnitsValueSuccessTest(){ + Either, JanusGraphOperationStatus> either = Either.left(dataTypeDefinitionMap); + Mockito.when(applicationDataTypeCache.getAll()).thenReturn(either); + + PropertyDefinition propertyDefinition = new PropertyDefinition(); + propertyDefinition.setType("onap.datatypes.partner.bandwidth"); + propertyDefinition.setValue("{\"units\":\"M\"}"); + propertyDefinition.setName("units"); + + Either responseEither = + propertyValueConstraintValidationUtil.validatePropertyConstraints( + Collections.singletonList(propertyDefinition), applicationDataTypeCache); + + Assert.assertTrue(responseEither.isLeft()); + } + + @Test + public void bandwidthUnitsValueFailTest(){ + Either, JanusGraphOperationStatus> either = Either.left(dataTypeDefinitionMap); + Mockito.when(applicationDataTypeCache.getAll()).thenReturn(either); + + PropertyDefinition propertyDefinition = new PropertyDefinition(); + propertyDefinition.setType("onap.datatypes.partner.bandwidth"); + propertyDefinition.setValue("{\"units\":\"incorrectValue\"}"); + propertyDefinition.setName("units"); + + Either responseEither = + propertyValueConstraintValidationUtil.validatePropertyConstraints( + Collections.singletonList(propertyDefinition), applicationDataTypeCache); + + Assert.assertTrue(responseEither.isRight()); + } + private void createDataTypeMap() { Type constraintType = new TypeToken() {}.getType(); Type typeOfHashMap = new TypeToken>() { }.getType(); @@ -335,3 +471,4 @@ public class PropertyValueConstraintValidationUtilTest { } } + diff --git a/catalog-be/src/test/resources/types/datatypes/constraintTest.json b/catalog-be/src/test/resources/types/datatypes/constraintTest.json index 9596e92436..9a522942bc 100644 --- a/catalog-be/src/test/resources/types/datatypes/constraintTest.json +++ b/catalog-be/src/test/resources/types/datatypes/constraintTest.json @@ -401,5 +401,357 @@ "creationTime": 1550136564094, "modificationTime": 1550136564094, "toscaPresentation": {} + }, + "onap.datatypes.partner.access_details": { + "derivedFrom": { + "name": "tosca.datatypes.Root", + "uniqueId": "tosca.datatypes.Root.datatype", + "description": "The TOSCA root Data Type all other TOSCA base Data Types derive from", + "creationTime": 1550136563278, + "modificationTime": 1550136563278, + "toscaPresentation": {} + }, + "properties": [ + { + "uniqueId": "onap.datatypes.partner.access_details.addressId", + "type": "string", + "description": "id of the site", + "required": true, + "definition": false, + "password": false, + "name": "addressId", + "hidden": false, + "immutable": false, + "toscaPresentation": {} + }, + { + "constraints": [ + { + "validValues": [ + "standard", + "stable" + ] + } + ], + "uniqueId": "onap.datatypes.partner.access_details.dsl_stability_profile", + "type": "string", + "description": "profile of stability", + "required": false, + "definition": false, + "defaultValue": "standard", + "password": false, + "name": "dsl_stability_profile", + "hidden": false, + "immutable": false, + "toscaPresentation": {} + }, + { + "uniqueId": "onap.datatypes.partner.access_details.partner_priorty_assist", + "type": "boolean", + "description": "assistance flag", + "required": false, + "definition": true, + "defaultValue": true, + "password": false, + "name": "partner_priorty_assist", + "hidden": false, + "immutable": false, + "toscaPresentation": {} + }, + { + "uniqueId": "onap.datatypes.partner.access_details.battery_backup", + "type": "boolean", + "description": "backup requirement flag", + "required": false, + "definition": true, + "defaultValue": true, + "password": false, + "name": "battery_backup", + "hidden": false, + "immutable": false, + "toscaPresentation": {} + }, + { + "uniqueId": "onap.datatypes.partner.access_details.central_splitter", + "type": "boolean", + "description": "applicable to FTTN service", + "required": false, + "definition": true, + "defaultValue": true, + "password": false, + "name": "central_splitter", + "hidden": false, + "immutable": false, + "toscaPresentation": {} + }, + { + "constraints": [ + { + "validValues": [ + "Standard", + "Enhanced" + ] + } + ], + "uniqueId": "onap.datatypes.partner.access_details.service_restoration_sla", + "type": "string", + "description": "This is the service restoration SLA from an partner perspective.", + "required": false, + "definition": false, + "defaultValue": "Standard", + "password": false, + "name": "service_restoration_sla", + "hidden": false, + "immutable": false, + "toscaPresentation": {} + } + ] + }, + "onap.datatypes.partner.bandwidth": { + "derivedFrom": { + "name": "tosca.datatypes.Root", + "uniqueId": "tosca.datatypes.Root.datatype", + "description": "The TOSCA root Data Type all other TOSCA base Data Types derive from", + "creationTime": 1550136563278, + "modificationTime": 1550136563278, + "toscaPresentation": {} + }, + "properties": [ + { + "constraints": [ + { + "validValues": [ + "standard", + "guaranteed" + ] + } + ], + "uniqueId": "onap.datatypes.partner.bandwidth.bandwidth_type", + "type": "string", + "description": "type of bandwidth", + "required": true, + "definition": false, + "defaultValue": "standard", + "password": false, + "name": "bandwidth_type", + "hidden": false, + "immutable": false, + "toscaPresentation": {} + }, + { + "constraints": [ + { + "validValues": [ + "128", + "512", + "1", + "2", + "5", + "10", + "20", + "25", + "30", + "40", + "50", + "100", + "250", + "500", + "1000" + ] + } + ], + "uniqueId": "onap.datatypes.partner.bandwidth.downstream", + "type": "string", + "description": "down speed", + "required": true, + "definition": true, + "password": false, + "name": "downstream", + "hidden": false, + "immutable": false, + "toscaPresentation": {} + }, + { + "constraints": [ + { + "validValues": [ + "128", + "512", + "1", + "2", + "5", + "10", + "20", + "25", + "30", + "40", + "50", + "100", + "250", + "500", + "1000" + ] + } + ], + "uniqueId": "onap.datatypes.partner.bandwidth.upstream", + "type": "string", + "description": "up speed", + "required": true, + "definition": true, + "password": false, + "name": "upstream", + "hidden": false, + "immutable": false, + "toscaPresentation": {} + }, + { + "constraints": [ + { + "validValues": [ + "k", + "M" + ] + } + ], + "uniqueId": "onap.datatypes.partner.bandwidth.units", + "type": "string", + "description": "unit of speed", + "required": true, + "definition": true, + "password": false, + "name": "units", + "hidden": false, + "immutable": false, + "toscaPresentation": {} + }, + { + "uniqueId": "onap.datatypes.partner.bandwidth.service_alias", + "type": "string", + "description": "16 digit id", + "required": false, + "definition": false, + "password": false, + "name": "service_alias", + "hidden": false, + "immutable": false, + "toscaPresentation": {} + } + ] + }, + "onap.datatypes.partner.service_details": { + "derivedFrom": { + "name": "tosca.datatypes.Root", + "uniqueId": "tosca.datatypes.Root.datatype", + "description": "The TOSCA root Data Type all other TOSCA base Data Types derive from", + "creationTime": 1550136563278, + "modificationTime": 1550136563278, + "toscaPresentation": {} + }, + "properties": [ + { + "uniqueId": "onap.datatypes.partner.service_details.bandwidth", + "type": "onap.datatypes.partner.bandwidth", + "description": "bandwidth details for access", + "required": false, + "definition": false, + "password": false, + "name": "bandwidth", + "hidden": false, + "immutable": false, + "toscaPresentation": {} + }, + { + "constraints": [ + { + "validValues": [ + "CONSUMER", + "WHOLESALE", + "BUSINESS" + ] + } + ], + "uniqueId": "onap.datatypes.partner.service_details.line_of_business", + "type": "string", + "description": "LOB", + "required": false, + "definition": false, + "password": false, + "name": "line_of_business", + "hidden": false, + "immutable": false, + "toscaPresentation": {} + }, + { + "uniqueId": "onap.datatypes.partner.service_details.access_details", + "type": "onap.datatypes.partner.access_details", + "required": false, + "definition": false, + "password": false, + "name": "access_details", + "hidden": false, + "immutable": false, + "toscaPresentation": {} + } + ] + }, + "onap.datatypes.partner.sppartner_details": { + "derivedFrom": { + "name": "tosca.datatypes.Root", + "uniqueId": "tosca.datatypes.Root.datatype", + "description": "The TOSCA root Data Type all other TOSCA base Data Types derive from", + "creationTime": 1550136563278, + "modificationTime": 1550136563278, + "toscaPresentation": {} + }, + "properties": [ + { + "uniqueId": "onap.datatypes.partner.sppartner_details.partner_url", + "type": "string", + "description": "Partner URL to access and provision the service", + "required": false, + "definition": false, + "password": false, + "name": "partner_url", + "hidden": false, + "immutable": false, + "toscaPresentation": {} + }, + { + "uniqueId": "onap.datatypes.partner.sppartner_details.uuid", + "type": "string", + "description": "UUID of the service definition defined in the partner catalog", + "required": false, + "definition": false, + "password": false, + "name": "uuid", + "hidden": false, + "immutable": false, + "toscaPresentation": {} + }, + { + "uniqueId": "onap.datatypes.partner.sppartner_details.auth_user", + "type": "string", + "description": "Authentication details to access the Service URL", + "required": false, + "definition": false, + "password": false, + "name": "auth_user", + "hidden": false, + "immutable": false, + "toscaPresentation": {} + }, + { + "uniqueId": "onap.datatypes.partner.sppartner_details.auth_password", + "type": "string", + "description": "Authentication details to access the Service URL", + "required": false, + "definition": false, + "password": false, + "name": "auth_password", + "hidden": false, + "immutable": false, + "toscaPresentation": {} + } + ] } -} \ No newline at end of file +} -- cgit 1.2.3-korg