aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorshrikantawachar <shrikant.awachar@amdocs.com>2018-07-14 00:18:09 +0530
committerAvi Gaffa <avi.gaffa@amdocs.com>2018-07-15 05:30:15 +0000
commit3f55e8e7cff615f2f97d3e0d5def0c2f0d80cea5 (patch)
tree35f088ff634239ab6df01922bc3ff753344e833f
parente8a916c229e23ce406cae7d480a201eb505e9261 (diff)
Enhancement in md5 field of Image
Implementation and Flow tests Change-Id: I4c7e3dfe077ba43317cf0b06b0ea4d85bfb50da8 Issue-ID: SDC-1502 Signed-off-by: shrikantawachar <shrikant.awachar@amdocs.com>
-rw-r--r--openecomp-bdd/features/UserFeedback/TestMD5.feature69
-rw-r--r--openecomp-bdd/resources/json/createManualVSP.json17
-rw-r--r--openecomp-bdd/stepDefinitions/InputData_steps.js11
-rw-r--r--openecomp-bdd/stepDefinitions/Questionnaire_steps.js19
-rw-r--r--openecomp-bdd/stepDefinitions/VSP_steps.js7
-rw-r--r--openecomp-be/tools/install/database/init_schemas.cql2
-rw-r--r--openecomp-be/tools/install/database/schemaTemplates/questionnaire/image.ftl3
7 files changed, 124 insertions, 4 deletions
diff --git a/openecomp-bdd/features/UserFeedback/TestMD5.feature b/openecomp-bdd/features/UserFeedback/TestMD5.feature
new file mode 100644
index 0000000000..2a7f87eecb
--- /dev/null
+++ b/openecomp-bdd/features/UserFeedback/TestMD5.feature
@@ -0,0 +1,69 @@
+# Copyright © 2018 European Support Limited
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+Feature: User Feedback - Test MD5
+
+ Scenario: Test MD5
+
+ When I want to create a VLM
+ Then I want to copy to property "licensingVersion" from response data path "version.id"
+
+ #create feature group
+ When I want to create input data
+ Then I want to update the input property "name" with value "FG1"
+ Then I want to update the input property "manufacturerReferenceNumber" with value "1234"
+ Then I want to update the input property "partNumber" with value "999"
+ Then I want to create for path "/vendor-license-models/{item.id}/versions/{item.versionId}/feature-groups" with the input data from the context
+ Then I want to copy to property "featureGroupId" from response data path "value"
+
+ #create license agreements
+ When I want to create input data
+ Then I want to update the input property "name" with value "LA"
+ Then I want to update the input property "licenseTerm.choice" with value "Unlimited"
+ Then I want to update the input property "addedFeatureGroupsIds[0]" from property "featureGroupId"
+ Then I want to create for path "/vendor-license-models/{item.id}/versions/{item.versionId}/license-agreements" with the input data from the context
+ Then I want to copy to property "licenseAgreement" from response data path "value"
+
+ When I want to create a VSP with onboarding type Manual
+ Then I want to make sure this Item has status "Draft"
+
+ When I want to add a component
+
+ #create image
+ When I want to create input data
+ Then I want to update the input property "fileName" with value "Image_1"
+ Then I want to create for path "/vendor-software-products/{vsp.id}/versions/{vsp.versionId}/components/{componentId}/images" with the input data from the context
+
+ #update image questionnaire
+ Then I want to get the questionnaire for this path "/vendor-software-products/{vsp.id}/versions/{vsp.versionId}/components/{componentId}/images/{responseData.id}/questionnaire"
+ And I want to update this questionnaire with value "md5" for property "5555555555555555555555555555555555555555555555555555555555555"
+ And I want to update this questionnaire with value "version" for property "1"
+ And I want to update this questionnaire
+
+ #create compute flavor
+ When I want to create input data
+ Then I want to update the input property "name" with value "ComputeFlavor1"
+ When I want to create for path "/vendor-software-products/{vsp.id}/versions/{vsp.versionId}/components/{componentId}/compute-flavors" with the input data from the context
+ Then I want to copy to property "computeFlavorId" from response data path "id"
+
+ #create deployment flavor with Component , compute flavor associations
+ When I want to create input data
+ Then I want to update the input property "model" with value "DeploymentFlavorModel"
+ Then I want to update the input property "componentComputeAssociations[0].componentId" from property "componentId"
+ Then I want to update the input property "componentComputeAssociations[0].computeFlavorId" from property "computeFlavorId"
+ Then I want to update the input property "featureGroupId" from property "featureGroupId"
+ Then I want to create for path "/vendor-software-products/{vsp.id}/versions/{vsp.versionId}/deployment-flavors" with the input data from the context
+
+ Then I want the following to fail
+ When I want to submit this VSP
diff --git a/openecomp-bdd/resources/json/createManualVSP.json b/openecomp-bdd/resources/json/createManualVSP.json
new file mode 100644
index 0000000000..9ce14f545d
--- /dev/null
+++ b/openecomp-bdd/resources/json/createManualVSP.json
@@ -0,0 +1,17 @@
+{
+ "vendorId":"REPLACE",
+ "name": "RANDOM",
+ "category":"resourceNewCategory.generic",
+ "subCategory":"resourceNewCategory.generic.abstract",
+ "onboardingMethod":"Manual",
+ "description":"for testing",
+ "vendorName":"REPLACE",
+ "icon":"icon",
+ "licensingVersion": "REPLACE",
+ "licensingData":{
+ "licenseAgreement": "REPLACE",
+ "featureGroups": [
+ "REPLACE"
+ ]
+ }
+}
diff --git a/openecomp-bdd/stepDefinitions/InputData_steps.js b/openecomp-bdd/stepDefinitions/InputData_steps.js
index 73695d0e7f..57a374b9bb 100644
--- a/openecomp-bdd/stepDefinitions/InputData_steps.js
+++ b/openecomp-bdd/stepDefinitions/InputData_steps.js
@@ -64,6 +64,17 @@ Then('I want to update the input property {string} with value {string}', functio
/**
* @module InputData
+ * @description sets the input property on the input data to the value from property
+ * @exampleFile TestMD5.feature
+ * @step I want to update the input property {string} from property {string}
+ **/
+Then('I want to update the input property {string} from property {string}', function(string, string2) {
+ let val = _.get(this.context, string2);
+ _.set(this.context.inputData, string, val);
+});
+
+/**
+ * @module InputData
* @description removes a property from the input data object
* @exampleFile Example_Rest_Calls.feature
* @step I want to remove {string} from the input data
diff --git a/openecomp-bdd/stepDefinitions/Questionnaire_steps.js b/openecomp-bdd/stepDefinitions/Questionnaire_steps.js
index c794734735..2e169fadc8 100644
--- a/openecomp-bdd/stepDefinitions/Questionnaire_steps.js
+++ b/openecomp-bdd/stepDefinitions/Questionnaire_steps.js
@@ -18,6 +18,11 @@ const assert = require('assert');
const util = require('./Utils.js');
const _ = require('lodash');
+function getPath(path, context) {
+ let compiled = _.template(path);
+ return compiled(context);
+}
+
/**
* @module Questionnaire
* @description Gets the questionnaire for the current item and saves it on the context
@@ -48,6 +53,20 @@ Then('I want to get the questionnaire for this component', function () {
});
});
+/**
+ * @module Questionnaire
+ * @description Gets the questionnaire from path and saves it on the context
+ * @exampleFile TestMD5.feature
+ * @step I want to get the questionnaire for this path {string}
+ **/
+Then('I want to get the questionnaire for this path {string}', function (string) {
+ let path = getPath(string, this.context);
+ return util.request(this.context, 'GET', path).then(result => {
+ this.context.qdata = JSON.parse(result.data.data);
+ this.context.qschema = result.data.schema;
+ this.context.qurl = path;
+ });
+});
/**
* @module Questionnaire
diff --git a/openecomp-bdd/stepDefinitions/VSP_steps.js b/openecomp-bdd/stepDefinitions/VSP_steps.js
index 1f753fef5e..b9b928a7f6 100644
--- a/openecomp-bdd/stepDefinitions/VSP_steps.js
+++ b/openecomp-bdd/stepDefinitions/VSP_steps.js
@@ -48,11 +48,14 @@ When('I want to create a VSP with onboarding type {string}', function(string) {
* @exampleFile Example_VSP.feature
* @step I want to create a VSP with onboarding type {string}
**/
-When('I want to create a VSP', function() {
- let inputData = util.getJSONFromFile('resources/json/createVSP.json');
+When('I want to create a VSP with onboarding type Manual', function() {
+ let inputData = util.getJSONFromFile('resources/json/createManualVSP.json');
inputData.vendorName = this.context.vlm.name;
inputData.vendorId = this.context.vlm.id;
inputData.name = util.random();
+ inputData.licensingVersion = this.context.licensingVersion;
+ inputData.licensingData.licenseAgreement = this.context.licenseAgreement;
+ inputData.licensingData.featureGroups[0] = this.context.featureGroupId;
let path = '/vendor-software-products';
return util.request(this.context, 'POST', path, inputData).then(result => {
this.context.item = {id : result.data.itemId, versionId: result.data.version.id};
diff --git a/openecomp-be/tools/install/database/init_schemas.cql b/openecomp-be/tools/install/database/init_schemas.cql
index 1aa5d11303..32818f4e74 100644
--- a/openecomp-be/tools/install/database/init_schemas.cql
+++ b/openecomp-be/tools/install/database/init_schemas.cql
@@ -34,7 +34,7 @@ INSERT INTO application_config (namespace,key,value) VALUES ('vsp.schemaTemplate
INSERT INTO application_config (namespace,key,value) VALUES ('vsp.schemaTemplates', 'composition.nic', '{ "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "name": { "type": "string", "enum": [ "${nic.name}" ], "default": "${nic.name}" }, "description": { "type": "string" }<#if !manual><#if nic.networkId??>, "networkId": { "type": "string", "enum": [ "${nic.networkId}" ], "default": "${nic.networkId}" } </#if> <#elseif manual><#if nic.networkId??>, "networkId": { "type": "string", "enum": [ "${nic.networkId}" ], "default": "${nic.networkId}" } </#if> <#else>, "networkId": { "type": "string", "enum": [<#list networkIds as networkId> "${networkId}"<#sep>,</#list> ] } </#if>, "networkDescription": { "type": "string" }, "networkType": { "type": "string", "enum": [ "${nic.networkType}" ], "default": "${nic.networkType}" } }, "additionalProperties": false, "required": [ "name" ] }');
INSERT INTO application_config (namespace,key,value) VALUES ('vsp.schemaTemplates', 'questionnaire.component', '{ "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "general": { "type": "object", "properties": { "hypervisor": { "type": "object", "properties": { "hypervisor": { "type": "string", "enum": [ "KVM", "VMWare ESXi" ], "default": "KVM" }, "drivers": { "type": "string", "maxLength": 300, "pattern": "^[A-Za-z0-9_,-]*$" }, "containerFeaturesDescription": { "type": "string", "maxLength": 1000, "pattern": "^[A-Za-z0-9_, -]*$" } }, "additionalProperties": false }, "image": { "type": "object", "properties": { "providedBy": { "type": "string", "enum": [ "AIC", "Vendor" ], "default": "AIC" } }, "additionalProperties": false }, "disk": { "type": "object" , "properties": { "bootDiskSizePerVM": { "type": "number", "maximum": 100 }, "ephemeralDiskSizePerVM": { "type": "number", "maximum": 400 } }, "additionalProperties": false }, "recovery": { "type": "object", "properties": { "pointObjective": { "type": "number", "minimum": 0, "exclusiveMinimum": true, "maximum": 15, "exclusiveMaximum ": true }, "timeObjective": { "type": "number", "minimum": 0, "exclusiveMinimum": true, "maximum": 300, "exclusiveMaximum ": true }, "vmProcessFailuresHandling": { "type": "string" } }, "additionalProperties": false }, "dnsConfiguration": { "type": "string" }, "vmCloneUsage": { "type": "string", "maxLength": 300 } }, "additionalProperties": false }, "compute": { "type": "object", "properties": { "numOfVMs": { "type": "object", "properties": { "minimum": { "type": "number", "minimum": 0, "maximum": 100 }, "maximum": { "type": "number", "minimum": <#if (componentQuestionnaireData.compute.numOfVMs.minimum)?? && (componentQuestionnaireData.compute.numOfVMs.minimum)?is_number && ((componentQuestionnaireData.compute.numOfVMs.minimum) > 0 && (componentQuestionnaireData.compute.numOfVMs.minimum) <= 100)> ${componentQuestionnaireData.compute.numOfVMs.minimum}<#else> 0</#if> , "exclusiveMinimum": true, "maximum": 100 } }, "additionalProperties": false }, "guestOS": { "type": "object", "properties": { "name": { "type": "string", "maxLength": 50 }, "bitSize": { "type": "number", "enum": [ 64, 32 ], "default": 64 }, "tools": { "type": "string" } }, "additionalProperties": false } }, "additionalProperties": false }, "highAvailabilityAndLoadBalancing": { "type": "object", "properties": { "isComponentMandatory": { "type": "string", "enum": ["","YES", "NO"], "default": "" }, "highAvailabilityMode": { "type": "string", "enum": ["","geo-activeactive", "geo-activestandby", "local-activeactive", "local-activestandby"], "default": "" }, "failureLoadDistribution": { "type": "string", "maxLength": 1000 }, "nkModelImplementation": { "type": "string", "maxLength": 1000 }, "architectureChoice": { "type": "string", "maxLength": 1000 }, "slaRequirements": { "type": "string", "maxLength": 1000 }, "horizontalScaling": { "type": "string", "maxLength": 1000 }, "loadDistributionMechanism": { "type": "string", "maxLength": 1000 } }, "additionalProperties": false }, "network": { "type": "object", "properties": { "networkCapacity": { "type": "object", "properties": { "protocolWithHighestTrafficProfileAcrossAllNICs": { "type": "string", "enum": [ "", "TCP", "UDP", "SCTP", "IPsec" ], "default": "" }, "networkTransactionsPerSecond": { "type": "number" } }, "additionalProperties": false } }, "additionalProperties": false }, "storage": { "type": "object", "properties": { "backup": { "type": "object", "properties": { "backupType": { "type": "string", "enum": [ "On Site", "Off Site" ], "default": "On Site" }, "backupStorageSize": { "type": "number" }, "backupSolution": { "type": "string" }, "backupNIC": { "type": "string", "enum": [ ""<#if nicNames??><#list nicNames as nicName> , "${nicName}"</#list></#if> ], "default": "" } }, "additionalProperties": false }, "snapshotBackup": { "type": "object", "properties": { "snapshotFrequency": { "type": "number", "default": 24, "minimum": 1, "exclusiveMinimum": true } }, "additionalProperties": false }, "logBackup": { "type": "object", "properties": { "sizeOfLogFiles": { "type": "number", "maximum": 5, "exclusiveMaximum": true }, "logBackupFrequency": { "type": "number", "maximum": 4, "exclusiveMaximum": true }, "logRetentionPeriod": { "type": "number", "maximum": 15, "exclusiveMaximum": true }, "logFileLocation": { "type": "string", "maxLength": 300 } }, "additionalProperties": false } }, "additionalProperties": false } }, "additionalProperties": false }');
INSERT INTO application_config (namespace,key,value) VALUES ('vsp.schemaTemplates', 'questionnaire.compute', '{ "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "vmSizing": { "type": "object", "properties": { "numOfCPUs": { "type": "number", "minimum": 0, "exclusiveMinimum": true, "maximum": 16, "default": 2 }, "fileSystemSizeGB": { "type": "number", "minimum": 0, "exclusiveMinimum": true, "default": 5 }, "persistentStorageVolumeSize": { "type": "number", "minimum": 0, "exclusiveMinimum": true }, "ioOperationsPerSec": { "type": "number", "minimum": 0, "exclusiveMinimum": true }, "cpuOverSubscriptionRatio": { "type": "string", "enum": [ "1:1", "4:1", "16:1" ], "default": "4:1" }, "memoryRAM": { "type": "string", "enum": [ "1 GB", "2 GB", "3 GB", "4 GB", "5 GB", "6 GB", "7 GB", "8 GB", "9 GB", "10 GB", "11 GB", "12 GB", "13 GB", "14 GB", "15 GB", "16 GB", "17 GB", "18 GB", "19 GB", "20 GB", "21 GB", "22 GB", "23 GB", "24 GB", "25 GB", "26 GB", "27 GB", "28 GB", "29 GB", "30 GB", "31 GB", "32 GB" ], "default": "1 GB" } }, "additionalProperties": false } } }');
-INSERT INTO application_config (namespace,key,value) VALUES ('vsp.schemaTemplates', 'questionnaire.image', '{ "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "format": { "type": "string", "enum": [ "aki","ami","ari","iso","qcow2","raw", "vdi","vhd","vmdk" ] }, "version": { "type": "string", "minLength": 1 }, "md5": { "type": "string" } }, "additionalProperties": false, "required": [ "version" ] }');
+INSERT INTO application_config (namespace,key,value) VALUES ('vsp.schemaTemplates', 'questionnaire.image', '{ "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "format": { "type": "string", "enum": [ "aki","ami","ari","iso","qcow2","raw", "vdi","vhd","vmdk" ] }, "version": { "type": "string", "minLength": 1 }, "md5": { "type": "string", "maxLength": 32 } }, "additionalProperties": false, "required": [ "version" ] }');
INSERT INTO application_config (namespace,key,value) VALUES ('vsp.schemaTemplates', 'questionnaire.nic', '{ "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "protocols": { "type": "object", "properties": { "protocols": { "type": "array", "items": { "type": "string", "enum": [ "", "TCP", "UDP", "SCTP", "IPsec" ], "default": "" }, "minItems": 1 }, "protocolWithHighestTrafficProfile": { "$ref": "#/properties/protocols/properties/protocols/items" } }, "additionalProperties": false }, "ipConfiguration": { "type": "object", "properties": { "ipv4Required": { "type": "boolean", "default": true }, "ipv6Required": { "type": "boolean", "default": false } }, "additionalProperties": false }, "network": { "type": "object", "properties": { "networkDescription": { "type": "string", "pattern": "[A-Za-z]+", "maxLength": 300 } }, "additionalProperties": false }, "sizing": { "type": "object", "definitions": { "peakAndAvg": { "type": "object", "properties": { "peak": { "type": "number" }, "avg": { "type": "number" } }, "additionalProperties": false }, "packetsAndBytes": { "type": "object", "properties": { "packets": { "$ref": "#/properties/sizing/definitions/peakAndAvg" }, "bytes": { "$ref": "#/properties/sizing/definitions/peakAndAvg" } }, "additionalProperties": false } }, "properties": { "describeQualityOfService": { "type": "string" }, "inflowTrafficPerSecond": { "$ref": "#/properties/sizing/definitions/packetsAndBytes" }, "outflowTrafficPerSecond": { "$ref": "#/properties/sizing/definitions/packetsAndBytes" }, "flowLength": { "$ref": "#/properties/sizing/definitions/packetsAndBytes" }, "acceptableJitter": { "type": "object", "properties": { "mean": { "type": "number" }, "max": { "type": "number" }, "variable": { "type": "number" } }, "additionalProperties": false }, "acceptablePacketLoss": { "type": "number", "minimum": 0, "maximum": 100 } }, "additionalProperties": false } }, "additionalProperties": false }');
INSERT INTO application_config (namespace,key,value) VALUES ('vsp.schemaTemplates', 'questionnaire.vsp', '{ "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "general": { "type": "object", "properties": { "affinityData": { "type": "string", "enum": [ "", "Affinity", "Anti Affinity", "None" ], "default": "" }, "availability": { "type": "object", "properties": { "useAvailabilityZonesForHighAvailability": { "type": "boolean", "default": false } }, "additionalProperties": false }, "regionsData": { "type": "object", "properties": { "multiRegion": { "type": "boolean", "default": false }, "regions": { "type": "array", "items": { "type": "string", "enum": [ "", "Alphareta", "Birmingham", "Dallas", "Fairfield CA", "Hayward CA", "Lisle", "Mission", "San Diego", "Secaucus" ], "default": "" } } }, "additionalProperties": false }, "storageDataReplication": { "type": "object", "properties": { "storageReplicationAcrossRegion": { "type": "boolean", "default": false }, "storageReplicationSize": { "type": "number", "minimum": 0, "maximum": 100, "exclusiveMaximum": true }, "storageReplicationFrequency": { "type": "number", "minimum": 5 }, "storageReplicationSource": { "type": "string", "maxLength": 300 }, "storageReplicationDestination": { "type": "string", "maxLength": 300 } }, "additionalProperties": false } }, "additionalProperties": false } }, "additionalProperties": false }');
INSERT INTO application_config (namespace,key,value) VALUES ('vsp.monitoring', 'compute.ceilometer', '{ "ceilometerMetricList": [ { "name": "instance", "type": "Gauge", "unit": "instance", "category": "compute", "description": "Existence of instance" }, { "name": "memory", "type": "Gauge", "unit": "MB", "category": "compute", "description": "Volume of RAM allocated to the instance" }, { "name": "memory.usage", "type": "Gauge", "unit": "MB", "category": "compute", "description": "Volume of RAM used by the instance from the amount of its allocated memory" }, { "name": "memory.resident", "type": "Gauge", "unit": "MB", "category": "compute", "description": "Volume of RAM used by the instance on the physical machine" }, { "name": "cpu", "type": "Cumulative", "unit": "ns", "category": "compute", "description": "CPU time used" }, { "name": "cpu_util", "type": "Gauge", "unit": "%", "category": "compute", "description": "Average CPU utilization" }, { "name": "cpu.delta", "type": "Delta", "unit": "ns", "category": "compute", "description": "CPU time used since previous datapoint" }, { "name": "vcpus", "type": "Gauge", "unit": "vcpu", "category": "compute", "description": "Number of virtual CPUs allocated to the instance" }, { "name": "disk.latency", "type": "Gauge", "unit": "ms", "category": "disk", "description": "Average disk latency" }, { "name": "disk.iops", "type": "Gauge", "unit": "count/s", "category": "disk", "description": "Average disk iops" }, { "name": "disk.device.latency", "type": "Gauge", "unit": "ms", "category": "disk", "description": "Average disk latency per device" }, { "name": "disk.device.iops", "type": "Gauge", "unit": "count/s", "category": "disk", "description": "Average disk iops per device" }, { "name": "disk.capacity", "type": "Gauge", "unit": "B", "category": "disk", "description": "The amount of disk that the instance can see" }, { "name": "disk.allocation", "type": "Gauge", "unit": "B", "category": "disk", "description": "The amount of disk occupied by the instance on the host machine" }, { "name": "disk.usage", "type": "Gauge", "unit": "B", "category": "disk", "description": "The physical size in bytes of the image container on the host" }, { "name": "disk.device.capacity", "type": "Gauge", "unit": "B", "category": "disk", "description": "The amount of disk per device that the instance can see" }, { "name": "disk.device.allocation", "type": "Gauge", "unit": "B", "category": "disk", "description": "The amount of disk per device occupied by the instance on the host machine" }, { "name": "disk.device.usage", "type": "Gauge", "unit": "B", "category": "disk", "description": "The physical size in bytes of the image container on the host per device" }, { "name": "disk.device.read.requests", "type": "Cumulative", "unit": "request", "category": "disk", "description": "Number of read requests" }, { "name": "disk.device.read.requests.rate", "type": "Gauge", "unit": "request/s", "category": "disk", "description": "Average rate of read requests" }, { "name": "disk.device.write.requests", "type": "Cumulative", "unit": "request", "category": "disk", "description": "Number of write requests" }, { "name": "disk.device.write.requests.rate", "type": "Gauge", "unit": "request/s", "category": "disk", "description": "Average rate of write requests" }, { "name": "disk.device.read.bytes", "type": "Cumulative", "unit": "B", "category": "disk", "description": "Volume of reads" }, { "name": "disk.device.read.bytes.rate", "type": "Gauge", "unit": "B/s", "category": "disk", "description": "Average rate of reads" }, { "name": "disk.device.write.bytes", "type": "Cumulative", "unit": "B", "category": "disk", "description": "Volume of writes" }, { "name": "disk.device.write.bytes.rate", "type": "Gauge", "unit": "B/s", "category": "disk", "description": "Average rate of writes" }, { "name": "disk.write.requests", "type": "Cumulative", "unit": "request", "category": "compute", "description": "Number of write requests" }, { "name": "disk.write.requests.rate", "type": "Gauge", "unit": "request/s", "category": "compute", "description": "Average rate of write requests" }, { "name": "disk.read.bytes", "type": "Cumulative", "unit": "B", "category": "compute", "description": "Volume of reads" }, { "name": "disk.read.bytes.rate", "type": "Gauge", "unit": "B/s", "category": "compute", "description": "Average rate of reads" }, { "name": "disk.write.bytes", "type": "Cumulative", "unit": "B", "category": "compute", "description": "Volume of writes" }, { "name": "disk.write.bytes.rate", "type": "Gauge", "unit": "B/s", "category": "compute", "description": "Average rate of writes" }, { "name": "disk.read.requests", "type": "Cumulative", "unit": "request", "category": "compute", "description": "Number of read requests" }, { "name": "disk.root.size", "type": "Gauge", "unit": "GB", "category": "compute", "description": "Size of root disk" }, { "name": "disk.ephemeral.size", "type": "Gauge", "unit": "GB", "category": "compute", "description": "Size of ephemeral disk" } ] }');
diff --git a/openecomp-be/tools/install/database/schemaTemplates/questionnaire/image.ftl b/openecomp-be/tools/install/database/schemaTemplates/questionnaire/image.ftl
index 8eba7f2451..7e32ca1383 100644
--- a/openecomp-be/tools/install/database/schemaTemplates/questionnaire/image.ftl
+++ b/openecomp-be/tools/install/database/schemaTemplates/questionnaire/image.ftl
@@ -13,7 +13,8 @@
"minLength": 1
},
"md5": {
- "type": "string"
+ "type": "string",
+ "maxLength": 32
}
},
"additionalProperties": false,