diff options
author | ys9693 <ys9693@att.com> | 2020-01-19 13:50:02 +0200 |
---|---|---|
committer | Ofir Sonsino <ofir.sonsino@intl.att.com> | 2020-01-22 12:33:31 +0000 |
commit | 16a9fce0e104a38371a9e5a567ec611ae3fc7f33 (patch) | |
tree | 03a2aff3060ddb5bc26a90115805a04becbaffc9 /catalog-be/src/main/resources | |
parent | aa83a2da4f911c3ac89318b8e9e8403b072942e1 (diff) |
Catalog alignment
Issue-ID: SDC-2724
Signed-off-by: ys9693 <ys9693@att.com>
Change-Id: I52b4aacb58cbd432ca0e1ff7ff1f7dd52099c6fe
Diffstat (limited to 'catalog-be/src/main/resources')
21 files changed, 1434 insertions, 1700 deletions
diff --git a/catalog-be/src/main/resources/application-context.xml b/catalog-be/src/main/resources/application-context.xml index b3dcbc1de1..ca36de1168 100644 --- a/catalog-be/src/main/resources/application-context.xml +++ b/catalog-be/src/main/resources/application-context.xml @@ -1,11 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" - xmlns:aop="http://www.springframework.org/schema/aop" xmlns:util="http://www.springframework.org/schema/util" + xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd - http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd - http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"> + http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> <context:annotation-config /> <aop:aspectj-autoproxy proxy-target-class="true" /> @@ -14,8 +13,8 @@ base-package= "org.openecomp.sdc.be.components.health, org.openecomp.sdc.be.servlets, org.openecomp.sdc.be.externalapi.servlet, - org.openecomp.sdc.be.components.scheduledtasks - "> + org.openecomp.sdc.be.components.scheduledtasks, + org.openecomp.sdc.be.facade.operations"> </context:component-scan> <bean class="org.openecomp.sdc.be.dao.config.DAOSpringConfig"/> @@ -29,9 +28,10 @@ <aop:pointcut id="lockingTransaction" expression="@annotation(org.openecomp.sdc.be.components.impl.lock.LockingTransactional) and args(componentId, componentType,..)"/> <aop:around method="lock" arg-names="proceedingJoinPoint,componentId,componentType" pointcut-ref="lockingTransaction"/> </aop:aspect> + <aop:aspect id="roleAuthorizationAspect" ref="roleAuthorizationHandler"> + <aop:pointcut id="roleAuthorize" expression="@annotation(permissions)"/> + <aop:before method="authorizeRole" arg-names="joinPoint, permissions" pointcut-ref="roleAuthorize"/> + </aop:aspect> </aop:config> - - <util:properties id="elasticsearchConfig" location="file:${config.home}/elasticsearch.yml" /> - </beans> diff --git a/catalog-be/src/main/resources/cadi.properties b/catalog-be/src/main/resources/cadi.properties new file mode 100644 index 0000000000..5b6c24ffe0 --- /dev/null +++ b/catalog-be/src/main/resources/cadi.properties @@ -0,0 +1,55 @@ +# Configure AAF +aaf_locate_url=https://aafist.test.att.com:8095 +aaf_url=https://aafist.test.att.com:8095/locate/com.att.aaf.service:2.0 + +#aaf_url=https://DME2RESOLVE/service=com.att.authz.AuthorizationService/version=2.0/envContext=TEST/routeOffer=BAU_SE + +#if you are running aaf service from a docker image you have to use aaf service IP and port number +aaf_id=m00468@portal.ecomp.att.com +#Encrypt the password using AAF Jar +aaf_password= enc:uI_J4jBL4YUcIZZa5uZKj3QMUC63hbS8TmDn5PSp5nO +# Sample CADI Properties, from CADI 1.4.2 +hostname=ecomp.att.com +csp_domain=PROD + +# Add Absolute path to Keyfile +cadi_keyfile=/opt/app/jetty/base/be/etc/keyfile + + +# This is required to accept Certificate Authentication from Certman certificates. +# can be TEST, IST or PROD +aaf_env=IST + +# DEBUG prints off all the properties. Use to get started. +cadi_loglevel=DEBUG + + +# Become CSO Poodle Compliant by only allowing sanctioned TLS versions +# The following is the default +# cadi_protocols=TLSv1.1,TLSv1.2 + +# Default TrustStore - REQUIRED for changing PROTOCOL Defaults for DME2 +# Read https://wiki.web.att.com/pages/viewpage.action?pageId=574623569#URGENT:SolvingSSL2-3/TLSv1removalissues-Up-to-dateTruststore +# Add Absolute path to truststore2018.jks +cadi_truststore=/opt/app/jetty/base/be/etc/cadi_truststore.jks +# Note: This is the ONLY password that doesn't have to be encrypted. All Java's TrustStores are this passcode by default, because they are public certs +cadi_truststore_password=changeit + +# how to turn on SSL Logging +#javax.net.debug=ssl + +## +# Hint +# Use "maps.bing.com" to get Lat and Long for an Address +AFT_LATITUDE=32.780140 +AFT_LONGITUDE=-96.800451 +AFT_ENVIRONMENT=AFTUAT +AFT_DME2_CLIENT_IGNORE_SSL_CONFIG=true +DME2.DEBUG=true +AFT_DME2_HTTP_EXCHANGE_TRACE_ON=true + +cadi_latitude=32.780140 +cadi_longitude=-96.800451 + +aaf_root_ns=com.att.aaf +aaf_api_version=2.0
\ No newline at end of file diff --git a/catalog-be/src/main/resources/config/configuration.yaml b/catalog-be/src/main/resources/config/configuration.yaml index 2df1fc45cb..3dca45840a 100644 --- a/catalog-be/src/main/resources/config/configuration.yaml +++ b/catalog-be/src/main/resources/config/configuration.yaml @@ -23,12 +23,26 @@ beSslPort: 8443 version: 1.1.0 released: 2012-11-30 -toscaConformanceLevel: 9.0 +toscaConformanceLevel: 12.0 minToscaConformanceLevel: 3.0 +# access restriction +authCookie: + securityKey: "AGLDdG4D04BKm2IxIWEr8o==" + maxSessionTimeOut: 24*60*60*1000 + sessionIdleTimeOut: 2*60*60*1000 + cookieName: "AuthenticationCookie" + path: / + domain: "" + isHttpOnly: true + # redirect variable name from portal.properties file + redirectURL: "ecomp_redirect_url" + excludedUrls: ['/config', '/configmgr', '/kibanaProxy', '/healthcheck', '/v1/catalog', '/v1/catalog/archive', '/v1/followed', '/v1/catalog/upload.*', '/v1/consumers', '/v1/screen', '/v1/catalogUpdateTimea', '/v1/user.*'] + # These values are necessary for running upgrade migration 1710.0 process enableAutoHealing: false appVersion: 1.1.0 +artifactGeneratorConfig: Artifact-Generator.properties resourcesForUpgrade: 8.0: - org.openecomp.resource.cp.extCP @@ -52,8 +66,6 @@ janusGraphReconnectIntervalInSeconds: 3 # The read timeout towards Janus Graph DB when health check is invoked: janusGraphHealthCheckReadTimeout: 1 -# The interval to try and reconnect to Elasticsearch when it is down during ASDC startup: -esReconnectIntervalInSeconds: 3 uebHealthCheckReconnectIntervalInSeconds: 15 uebHealthCheckReadTimeout: 4 @@ -105,33 +117,9 @@ cassandraConfig: - { name: dox, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['DC-sdc-iltlv650', '1']} - { name: sdcaudit, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['DC-sdc-iltlv650', '1']} - { name: sdcartifact, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['DC-sdc-iltlv650', '1']} - - { name: sdccomponent, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['DC-sdc-iltlv650', '1']} + - { name: sdccomponent, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['DC-sdc-iltlv650', '1']} - { name: sdcrepository, replicationStrategy: NetworkTopologyStrategy, replicationInfo: ['DC-sdc-iltlv650', '1']} - -#Application-specific settings of ES -elasticSearch: - # Mapping of index prefix to time-based frame. For example, if below is configured: - # - # - indexPrefix: auditingevents - # creationPeriod: minute - # - # then ES object of type which is mapped to "auditingevents-*" template, and created on 2015-12-23 13:24:54, will enter "auditingevents-2015-12-23-13-24" index. - # Another object created on 2015-12-23 13:25:54, will enter "auditingevents-2015-12-23-13-25" index. - # If creationPeriod: month, both of the above will enter "auditingevents-2015-12" index. - # - # PLEASE NOTE: the timestamps are created in UTC/GMT timezone! This is needed so that timestamps will be correctly presented in Kibana. - # - # Legal values for creationPeriod - year, month, day, hour, minute, none (meaning no time-based behaviour). - # - # If no creationPeriod is configured for indexPrefix, default behavour is creationPeriod: month. - - indicesTimeFrequency: - - indexPrefix: auditingevents - creationPeriod: month - - indexPrefix: monitoring_events - creationPeriod: month - artifactTypes: - CHEF - PUPPET @@ -178,11 +166,6 @@ resourceTypes: &allResourceTypes # - VF # - VL deploymentResourceArtifacts: - cdsBlueprint: - displayName: "CDS Blueprint" - type: CONTROLLER_BLUEPRINT_ARCHIVE - description: "CDS deployment artifact" - fileExtension: "zip" # heat: # displayName: "Base HEAT Template" # type: HEAT @@ -321,7 +304,10 @@ systemMonitoring: isProxy: false probeIntervalInSeconds: 15 -defaultHeatArtifactTimeoutMinutes: 60 +heatArtifactDeploymentTimeout: + defaultMinutes: 30 + minMinutes: 1 + maxMinutes: 120 serviceDeploymentArtifacts: CONTROLLER_BLUEPRINT_ARCHIVE: @@ -352,7 +338,7 @@ serviceDeploymentArtifacts: - xml AAI_VF_INSTANCE_MODEL: acceptedTypes: - - xml + - xml CLOUD_TECHNOLOGY_SPECIFIC_ARTIFACT: acceptedTypes: - zip @@ -465,7 +451,7 @@ resourceDeploymentArtifacts: acceptedTypes: validForResourceTypes: - VF - - VFCMT + - VFCMT DCAE_EVENT: acceptedTypes: validForResourceTypes: @@ -521,7 +507,6 @@ resourceDeploymentArtifacts: ONBOARDED_PACKAGE: acceptedTypes: - csar - - zip validForResourceTypes: - VF - PNF @@ -600,7 +585,7 @@ resourceInformationalArtifacts: validForResourceTypes: *allResourceTypes OTHER: acceptedTypes: - validForResourceTypes: + validForResourceTypes: - VFC - CVFC - CP @@ -631,10 +616,6 @@ resourceInformationalArtifacts: resourceInformationalDeployedArtifacts: -requirementsToFulfillBeforeCert: - -capabilitiesToConsumeBeforeCert: - unLoggedUrls: - /sdc2/rest/healthCheck @@ -662,6 +643,12 @@ dcae: port: 8080 healthCheckUri: "/dcae/healthCheck" +ecompPortal: + protocol: https + host: ecomp-portal-web-tdevn2.mtn23a.ecomp.cci.att.com + port: 8443 + healthCheckUri: "/ecompui/portalApi/healthCheck" + switchoverDetector: gBeFqdn: AIO-BE.ecomp.idns.cip.com gFeFqdn: AIO-FE.ecomp.idns.cip.com @@ -703,6 +690,7 @@ toscaValidators: stringMaxLength: 2500 disableAudit: false +consumerBusinessLogic: false vfModuleProperties: min_vf_module_instances: @@ -761,6 +749,7 @@ gabConfig: path: "event.structure.faultFields.structure.alarmAdditionalInformation.comment" searchable: "true" +#Tenant isolation consumer dmaapConsumerConfiguration: active: true hosts: olsd004.wnsnet.ws.com:3905 @@ -789,13 +778,50 @@ dmaapConsumerConfiguration: credential: username: m09875@sdc.com password: mockhmXYcznAljMSisdy8zgcag== + aftDme2SslEnable: true + aftDme2ClientIgnoreSslConfig: false + aftDme2ClientKeystore: /opt/app/jetty/base/be/config/.truststore + aftDme2ClientKeystorePassword: hmXYcznAljMSisdy8zgcag== + aftDme2ClientSslCertAlias: certman + +#Performence microservice dmaap producer +dmaapProducerConfiguration: + active: false + consumerGroup: asdc + consumerId: mama #mama - in Order To Consume Remove This String And Replace It With -> mama + timeoutMs: 15000 + limit: 1 + pollingInterval: 2 + topic: com.sdc.23911-SDCforTestDev-v001 + latitude: 32.109333 + longitude: 34.855499 + version: 1.0 + serviceName: dmaap-v1.dev.dmaap.dt.saat.acsi.com/events + environment: TEST + partner: BOT_R + routeOffer: MR1 + protocol: http + contenttype: application/json + dme2TraceOn: true + aftEnvironment: AFTUAT + aftDme2ConnectionTimeoutMs: 15000 + aftDme2RoundtripTimeoutMs: 240000 + aftDme2ReadTimeoutMs: 50000 + dme2preferredRouterFilePath: DME2preferredRouter.txt + timeLimitForNotificationHandleMs: 120000 + credential: + username: m09875@sdc.com + password: mockhmXYcznAljMSisdy8zgcag== + aftDme2SslEnable: true + aftDme2ClientIgnoreSslConfig: false + aftDme2ClientKeystore: /opt/app/jetty/base/be/config/.truststore + aftDme2ClientKeystorePassword: hmXYcznAljMSisdy8zgcag== + aftDme2ClientSslCertAlias: certman - -dmeConfiguration: - dme2Search: DME2SEARCH - dme2Resolve: DME2RESOLVE +dmeConfiguration: + lookupUriFormat: "http://DME2RESOLVE/service=%s/version=1.0.0/envContext=%s/routeOffer=DEFAULT" excludedPolicyTypesMapping: # VF: @@ -808,21 +834,49 @@ excludedGroupTypesMapping: CR: - org.openecomp.groups.VfModule - org.openecomp.groups.heat.HeatStack + - org.openecomp.groups.Group - tosca.groups.Root PNF: - org.openecomp.groups.VfModule - org.openecomp.groups.heat.HeatStack + - org.openecomp.groups.Group - tosca.groups.Root VF: - org.openecomp.groups.VfModule - org.openecomp.groups.heat.HeatStack + - org.openecomp.groups.Group - tosca.groups.Root Service: - org.openecomp.groups.VfModule - org.openecomp.groups.heat.HeatStack + - org.openecomp.groups.Group - tosca.groups.Root healthStatusExclude: - DE - - ES - DMAAP + - DMAAP_PRODUCER + - ECOMP_PORTAL + +aafNamespace: com.att.sdc + +aafAuthNeeded: false + +cadiFilterParams: + hostname: 192.168.33.10 + csp_domain: PROD + cadi_keyfile: /opt/app/jetty/base/be/config/catalog-be/keyfile + cadi_loglevel: DEBUG + cadi_truststore: /opt/app/jetty/base/be/config/.truststore + cadi_truststore_password: enc:HdzGwQGAK5Rc29vzn3Kqoy9BCTbJNGgNxd72zpCUtjg + #aaf_url: https://DME2RESOLVE/service=com.att.authz.AuthorizationService/version=2.0/envContext=TEST/routeOffer=BAU_SE + aaf_id: m09875@sdc.att.com + aaf_password: enc:HdzGwQGAK5Rc29vzn3Kqoy9BCTbJNGgNxd72zpCUtjg + aaf_env: DEV + aafLocateUrl: https://aaf.api.simpledemo.onap.org:8095 + aaf_url: https://AAF_LOCATE_URL/AAF_NS.service:2.0 + AFT_LATITUDE: "32.780140" + AFT_LONGITUDE: "-96.800451" + AFT_ENVIRONMENT: AFTUAT + cadiX509Issuers: "CN=intermediateCA_1, OU=OSAAF, O=ONAP, C=US" + diff --git a/catalog-be/src/main/resources/config/distribution-engine-configuration.yaml b/catalog-be/src/main/resources/config/distribution-engine-configuration.yaml index 4a788caaab..1817ecbb2b 100644 --- a/catalog-be/src/main/resources/config/distribution-engine-configuration.yaml +++ b/catalog-be/src/main/resources/config/distribution-engine-configuration.yaml @@ -82,4 +82,3 @@ msoConfig: password: OTLEp5lfVhYdyw5EAtTUBQ== numOfRetries: 3 -currentArtifactInstallationTimeout: 120 diff --git a/catalog-be/src/main/resources/config/error-configuration.yaml b/catalog-be/src/main/resources/config/error-configuration.yaml index 3045e9ec97..25989dfe29 100644 --- a/catalog-be/src/main/resources/config/error-configuration.yaml +++ b/catalog-be/src/main/resources/config/error-configuration.yaml @@ -16,90 +16,96 @@ errors: code: 204, message: "No Content" } -#--------POL4050----------------------------- + #--------POL4050----------------------------- NOT_ALLOWED: { code: 405, message: "Error: Method not allowed.", messageId: "POL4050" } -#--------POL5000----------------------------- + #--------POL5000----------------------------- GENERAL_ERROR: { code: 500, message: "Error: Internal Server Error. Please try again later.", messageId: "POL5000" } -#---------POL5001------------------------------ + #---------POL5001------------------------------ MISSING_X_ECOMP_INSTANCE_ID: { code: 400 , message: "Error: Missing 'X-ECOMP-InstanceID' HTTP header.", messageId: "POL5001" } -#---------POL5002------------------------------ + #---------POL5002------------------------------ AUTH_REQUIRED: { code: 401 , message: "Error: Authentication is required to use the API.", messageId: "POL5002" } -#---------POL5003------------------------------ + #---------POL5003------------------------------ AUTH_FAILED: { code: 403 , message: "Error: Not authorized to use the API.", messageId: "POL5003" } -#---------POL5004------------------------------ + #---------POL5004------------------------------ MISSING_USER_ID: { code: 400 , message: "Error: Missing 'USER_ID' HTTP header.", messageId: "POL5004" } -#---------SVC4000----------------------------- + #---------POL5005------------------------------ + SESSION_EXPIRED: { + code: 403 , + message: "Your session has expired. Please close the SDC tab and re-enter the SDC application.", + messageId: "POL5005" + } + #---------SVC4000----------------------------- INVALID_CONTENT: { code: 400, message: "Error: Invalid content.", messageId: "SVC4000" } -#---------SVC4002----------------------------- + #---------SVC4002----------------------------- MISSING_INFORMATION: { code: 403, message: "Error: Missing information.", messageId: "SVC4002" } -#---------SVC4003------------------------------ -# %1 - Users's ID + #---------SVC4003------------------------------ + # %1 - Users's ID USER_NOT_FOUND: { code: 404, message: "Error: User '%1' was not found.", messageId: "SVC4003" } -#---------SVC4004----------------------------- -# %1 - Users's email address + #---------SVC4004----------------------------- + # %1 - Users's email address INVALID_EMAIL_ADDRESS: { code: 400, message: "Error: Invalid email address '%1'.", messageId: "SVC4004" } -#---------SVC4005------------------------------ -# %1 - role + #---------SVC4005------------------------------ + # %1 - role INVALID_ROLE: { code: 400, message: "Error: Invalid role '%1'.", messageId: "SVC4005" } -#---------SVC4006------------------------------ -# %1 - Users's USER_ID + #---------SVC4006------------------------------ + # %1 - Users's USER_ID USER_ALREADY_EXIST: { code: 409, message: "Error: User with '%1' ID already exists.", messageId: "SVC4006" } -#---------SVC4007------------------------------ + #---------SVC4007------------------------------ DELETE_USER_ADMIN_CONFLICT: { code: 409, message: "Error: An administrator can only be deleted by another administrator.", messageId: "SVC4007" } -#---------SVC4008----------------------------- -# %1 - Users's userId + #---------SVC4008----------------------------- + # %1 - Users's userId INVALID_USER_ID: { code: 400, message: "Error: Invalid userId '%1'.", @@ -111,105 +117,105 @@ errors: message: "Error: User Defined '%1'.", messageId: "SVC4009" } -#---------SVC4049------------------------------ -# %1 - service/resource + #---------SVC4049------------------------------ + # %1 - service/resource COMPONENT_MISSING_CONTACT: { code: 400, message: "Error: Invalid Content. Missing %1 contact.", messageId: "SVC4049" } -#---------SVC4050----------------------------- -# %1 - Service/Resource/Additional parameter -# %2 - service/resource/label name + #---------SVC4050----------------------------- + # %1 - Service/Resource/Additional parameter + # %2 - service/resource/label name COMPONENT_NAME_ALREADY_EXIST: { code: 409, message: "Error: %1 with name '%2' already exists.", messageId: "SVC4050" } -#---------SVC4051------------------------------ -# %1 - resource/service + #---------SVC4051------------------------------ + # %1 - resource/service COMPONENT_MISSING_CATEGORY: { code: 400, message: "Error: Invalid Content. Missing %1 category.", messageId: "SVC4051" } -#---------SVC4052------------------------------ + #---------SVC4052------------------------------ COMPONENT_MISSING_TAGS: { code: 400, message: "Error: Invalid Content. At least one tag has to be specified.", messageId: "SVC4052" } -#---------SVC4053------------------------------ -# %1 - service/resource + #---------SVC4053------------------------------ + # %1 - service/resource COMPONENT_MISSING_DESCRIPTION: { code: 400, message: "Error: Invalid Content. Missing %1 description.", messageId: "SVC4053" } -#---------SVC4054------------------------------ -# %1 - resource/service + #---------SVC4054------------------------------ + # %1 - resource/service COMPONENT_INVALID_CATEGORY: { code: 400, message: "Error: Invalid Content. Value %1 for the field Category is invalid.", messageId: "SVC4054" } -#---------SVC4055------------------------------ + #---------SVC4055------------------------------ MISSING_VENDOR_NAME: { code: 400, message: "Error: Invalid Content. Missing vendor name.", messageId: "SVC4055" } -#---------SVC4056------------------------------ + #---------SVC4056------------------------------ MISSING_VENDOR_RELEASE: { code: 400, message: "Error: Invalid Content. Missing vendor release.", messageId: "SVC4056" } -#---------SVC4057------------------------------ + #---------SVC4057------------------------------ MISSING_DERIVED_FROM_TEMPLATE: { code: 400, message: "Error: Invalid Content. Missing derived from template specification.", messageId: "SVC4057" } -#---------SVC4058------------------------------ -# %1 - service/resource + #---------SVC4058------------------------------ + # %1 - service/resource COMPONENT_MISSING_ICON: { code: 400, message: "Error: Invalid Content. Missing %1 icon.", messageId: "SVC4058" } -#---------SVC4059------------------------------ -# %1 - service/resource + #---------SVC4059------------------------------ + # %1 - service/resource COMPONENT_INVALID_ICON: { code: 400, message: "Error: Invalid Content. Invalid %1 icon.", messageId: "SVC4059" } -#---------SVC4060------------------------------ + #---------SVC4060------------------------------ PARENT_RESOURCE_NOT_FOUND: { code: 400, message: "Error: Invalid Content. Derived from resource template was not found.", messageId: "SVC4060" } -#---------SVC4061------------------------------ + #---------SVC4061------------------------------ MULTIPLE_PARENT_RESOURCE_FOUND: { code: 400, message: "Error: Invalid Content. Multiple derived from resource template is not allowed.", messageId: "SVC4061" } -#---------SVC4062------------------------------ -# %1 - service/resource + #---------SVC4062------------------------------ + # %1 - service/resource MISSING_COMPONENT_NAME: { code: 400, message: "Error: Invalid Content. Missing %1 name.", messageId: "SVC4062" } -#---------SVC4063------------------------------ + #---------SVC4063------------------------------ #%1 - resource/service name RESOURCE_NOT_FOUND: { code: 404, @@ -217,205 +223,205 @@ errors: messageId: "SVC4063" } -#---------SVC4064------------------------------ -# %1 - Service/Resource/Property + #---------SVC4064------------------------------ + # %1 - Service/Resource/Property COMPONENT_INVALID_DESCRIPTION: { code: 400, message: "Error: Invalid Content. %1 description contains non-english characters.", messageId: "SVC4064" } -#---------SVC4065------------------------------ -# %1 - Service/Resource/Property -# %2 - max resource/service name length + #---------SVC4065------------------------------ + # %1 - Service/Resource/Property + # %2 - max resource/service name length COMPONENT_DESCRIPTION_EXCEEDS_LIMIT: { code: 400, message: "Error: Invalid Content. %1 description exceeds limit of %2 characters.", messageId: "SVC4065" } -#---------SVC4066------------------------------ -# %1 - max length + #---------SVC4066------------------------------ + # %1 - max length COMPONENT_TAGS_EXCEED_LIMIT: { code: 400, message: "Error: Invalid Content. Tags overall length exceeds limit of %1 characters.", messageId: "SVC4066" } -#---------SVC4067------------------------------ -# %1 - max length + #---------SVC4067------------------------------ + # %1 - max length VENDOR_NAME_EXCEEDS_LIMIT: { code: 400, message: "Error: Invalid Content. Vendor name exceeds limit of %1 characters.", messageId: "SVC4067" } -#---------SVC4068------------------------------ -# %1 - max length + #---------SVC4068------------------------------ + # %1 - max length VENDOR_RELEASE_EXCEEDS_LIMIT: { code: 400, message: "Error: Invalid Content. Vendor release exceeds limit of %1 characters.", messageId: "SVC4068" } -#---------SVC4069------------------------------ -# %1 - Service/Resource/Product + #---------SVC4069------------------------------ + # %1 - Service/Resource/Product COMPONENT_INVALID_CONTACT: { code: 400, - message: "Error: Invalid Content. %1 Contact Id should be in format 'mnnnnnn' or 'aannna' or 'aannnn', where m=m ,a=a-zA-Z and n=0-9", + message: "Error: Invalid Content. %1 Contact Id should be in format 'mnnnnnn' or 'aannna' or 'aannnn', where m=m ,a=a-zA-Z and n=0-9. Max length: 50", messageId: "SVC4069" } -#---------SVC4070------------------------------ -# %1 - Service/Resource + #---------SVC4070------------------------------ + # %1 - Service/Resource INVALID_COMPONENT_NAME: { code: 400, message: 'Error: Invalid Content. Value %1 for Component name is invalid. Only alphanumeric characters and regular spaces are allowed.', messageId: "SVC4070" } -#---------SVC4071------------------------------ + #---------SVC4071------------------------------ INVALID_VENDOR_NAME: { code: 400, message: 'Error: Invalid Content. Value %1 for the field Vendor name is invalid. Only alphanumeric characters and regular spaces are allowed.', messageId: "SVC4071" } -#---------SVC4072------------------------------ + #---------SVC4072------------------------------ INVALID_VENDOR_RELEASE: { code: 400, message: 'Error: Invalid Content. Value %1 for the field Vendor release is invalid. Only alphanumeric characters and regular spaces are allowed.', messageId: "SVC4072" } -#---------SVC4073------------------------------ -# %1 - Service/Resource -# %2 - max resource/service name + #---------SVC4073------------------------------ + # %1 - Service/Resource + # %2 - max resource/service name COMPONENT_NAME_EXCEEDS_LIMIT: { code: 400, message: "Error: Invalid Content. %1 name exceeds limit of %2 characters.", messageId: "SVC4073" } -#---------SVC4080------------------------------ -# %1 - resource/service name -# %2 - resource/service -# %3 - First name of last modifier -# %4 - Last name of last modifier -# %5 - USER_ID of last modifier + #---------SVC4080------------------------------ + # %1 - resource/service name + # %2 - resource/service + # %3 - First name of last modifier + # %4 - Last name of last modifier + # %5 - USER_ID of last modifier COMPONENT_IN_CHECKOUT_STATE: { code: 403, message: "Error: Requested '%1' %2 is locked for modification by %3 %4(%5).", messageId: "SVC4080" } -#---------SVC4081----------------------------- -# %1 - resource/service name -# %2 - resource/service -# %3 - First name of last modifier -# %4 - Last name of last modifier -# %5 - USER_ID of last modifier + #---------SVC4081----------------------------- + # %1 - resource/service name + # %2 - resource/service + # %3 - First name of last modifier + # %4 - Last name of last modifier + # %5 - USER_ID of last modifier COMPONENT_IN_CERT_IN_PROGRESS_STATE: { code: 403, message: "Error: Requested '%1' %2 is locked for certification by %3 %4(%5).", messageId: "SVC4081" } -#-----------SVC4082--------------------------- -# %1 - resource/service name -# %2 - resource/service -# %3 - First name of last modifier -# %4 - Last name of last modifier -# %5 - USER_ID of last modifier + #-----------SVC4082--------------------------- + # %1 - resource/service name + # %2 - resource/service + # %3 - First name of last modifier + # %4 - Last name of last modifier + # %5 - USER_ID of last modifier COMPONENT_SENT_FOR_CERTIFICATION: { code: 403, message: "Error: Requested '%1' %2 is sent for certification by %3 %4(%5).", messageId: "SVC4082" } -#-----------SVC4083--------------------------- + #-----------SVC4083--------------------------- COMPONENT_VERSION_ALREADY_EXIST: { code: 409, message: "Error: Version of this %1 was already promoted.", messageId: "SVC4083" } -#-----------SVC4084--------------------------- -# %1 - resource/service/product name -# %2 - resource/service/product -# %3 - First name of last modifier -# %4 - Last name of last modifier -# %5 - USER_ID of last modifier + #-----------SVC4084--------------------------- + # %1 - resource/service/product name + # %2 - resource/service/product + # %3 - First name of last modifier + # %4 - Last name of last modifier + # %5 - USER_ID of last modifier COMPONENT_ALREADY_CHECKED_IN: { code: 409, message: "Error: The current version of '%1' %2 was already checked-in by %3 %4(%5).", messageId: "SVC4084" } -#-----------SVC4085--------------------------- -# %1 - resource/service/product name -# %2 - resource/service/product -# %3 - First name of last modifier -# %4 - Last name of last modifier -# %5 - USER_ID of last modifier + #-----------SVC4085--------------------------- + # %1 - resource/service/product name + # %2 - resource/service/product + # %3 - First name of last modifier + # %4 - Last name of last modifier + # %5 - USER_ID of last modifier COMPONENT_CHECKOUT_BY_ANOTHER_USER: { code: 403, message: "Error: %1 %2 has already been checked out by %3 %4(%5).", messageId: "SVC4085" } -#-----------SVC4086--------------------------- -# %1 - resource/service name -# %2 - resource/service + #-----------SVC4086--------------------------- + # %1 - resource/service name + # %2 - resource/service COMPONENT_IN_USE: { code: 403, message: "Error: '%1' %2 is still held by previous action. Please try again later.", messageId: "SVC4086" } -#-----------SVC4087--------------------------- -# %1 - component name -# %2 - resource/service/product + #-----------SVC4087--------------------------- + # %1 - component name + # %2 - resource/service/product COMPONENT_HAS_NEWER_VERSION: { code: 409, message: "Error: Checking out of the requested version of the '%1' %2 is not allowed as a newer version exists.", messageId: "SVC4087" } -#-----------SVC4088--------------------------- -# %1 - resource/service name -# %2 - resource/service -# %3 - First name of last modifier -# %4 - Last name of last modifier -# %5 - USER_ID of last modifier + #-----------SVC4088--------------------------- + # %1 - resource/service name + # %2 - resource/service + # %3 - First name of last modifier + # %4 - Last name of last modifier + # %5 - USER_ID of last modifier COMPONENT_ALREADY_CERTIFIED: { code: 403, message: "Error: Requested %1 %2 has already been certified by %3 %4(%5).", messageId: "SVC4088" } -#-----------SVC4089--------------------------- -# %1 - resource/service name -# %2 - resource/service + #-----------SVC4089--------------------------- + # %1 - resource/service name + # %2 - resource/service COMPONENT_NOT_READY_FOR_CERTIFICATION: { code: 403, message: "Error: Requested '%1' %2 is not ready for certification.", messageId: "SVC4089" } -#-----------SVC4100--------------------------- -#%1 - property name + #-----------SVC4100--------------------------- + #%1 - property name PROPERTY_NOT_FOUND: { code: 404, message: "Error: Requested '%1' property was not found.", messageId: "SVC4100" } -#-----------SVC4101--------------------------- -#%1 - property name + #-----------SVC4101--------------------------- + #%1 - property name PROPERTY_ALREADY_EXIST: { code: 409, message: "Error: Property with '%1' name already exists.", messageId: "SVC4101" } -#-----------SVC4102--------------------------- -# %1 - capability type name + #-----------SVC4102--------------------------- + # %1 - capability type name CAPABILITY_TYPE_ALREADY_EXIST: { code: 409, message: "Error: Capability Type with name '%1' already exists.", messageId: "SVC4102" } -#-----------SVC4114--------------------------- + #-----------SVC4114--------------------------- AUTH_FAILED_INVALIDE_HEADER: { code: 400, message: "Error: Invalid Authorization header.", messageId: "SVC4114" } -#-----------SVC4115--------------------------- -# %1 - capability type name + #-----------SVC4115--------------------------- + # %1 - capability type name MISSING_CAPABILITY_TYPE: { code: 400, message: "Error: Invalid Content. Missing Capability Type '%1'.", @@ -426,216 +432,216 @@ errors: message: "Error: Invalid Content.", messageId: "SVC4116" } -#-----------SVC4117--------------------------- -# %1 - resource instance name -# %2 - resource instance name -# %3 - requirement name + #-----------SVC4117--------------------------- + # %1 - resource instance name + # %2 - resource instance name + # %3 - requirement name RESOURCE_INSTANCE_MATCH_NOT_FOUND: { code: 404, message: "Error: Match not found between resource instance '%1' and resource instance '%2' for requirement '%3'.", messageId: "SVC4117" } -#-----------SVC4118--------------------------- -# %1 - resource instance name -# %2 - resource instance name -# %3 - requirement name + #-----------SVC4118--------------------------- + # %1 - resource instance name + # %2 - resource instance name + # %3 - requirement name RESOURCE_INSTANCE_ALREADY_EXIST: { code: 409, message: "Error: Resource instances '%1' and '%2' are already associated with requirement '%3'.", messageId: "SVC4118" } -#-----------SVC4119--------------------------- -# %1 - resource instance name -# %2 - resource instance name -# %3 - requirement name + #-----------SVC4119--------------------------- + # %1 - resource instance name + # %2 - resource instance name + # %3 - requirement name RESOURCE_INSTANCE_RELATION_NOT_FOUND: { code: 404, message: "Error: No relation found between resource instances '%1' and '%2' for requirement '%3'.", messageId: "SVC4119" } -#-----------SVC4120--------------------------- -# %1 - User's USER_ID + #-----------SVC4120--------------------------- + # %1 - User's USER_ID USER_INACTIVE: { code: 404, - message: "Error: User %1 was not found.", + message: "Error: User %1 inactive.", messageId: "SVC4120" } -#-----------SVC4121--------------------------- -# %1 - User's USER_ID + #-----------SVC4121--------------------------- + # %1 - User's USER_ID USER_HAS_ACTIVE_ELEMENTS: { code: 403, message: "Error: User with %1 ID can not be deleted since it has active elements(resources/services/artifacts).", messageId: "SVC4121" } -#-----------SVC4122--------------------------- -# %1 - artifact type + #-----------SVC4122--------------------------- + # %1 - artifact type ARTIFACT_TYPE_NOT_SUPPORTED: { code: 400, message: "Error: Invalid artifact type '%1'.", messageId: "SVC4122" } -#-----------SVC4123--------------------------- + #-----------SVC4123--------------------------- ARTIFACT_LOGICAL_NAME_CANNOT_BE_CHANGED: { code: 400, message: "Error: Artifact logical name cannot be changed.", messageId: "SVC4123" } -#-----------SVC4124--------------------------- + #-----------SVC4124--------------------------- MISSING_ARTIFACT_TYPE: { code: 400, message: "Error: Missing artifact type.", messageId: "SVC4124" } -#-----------SVC4125--------------------------- -# %1-artifact name + #-----------SVC4125--------------------------- + # %1-artifact name ARTIFACT_EXIST: { code: 400, message: "Error: Artifact '%1' already exists.", messageId: "SVC4125" } -#---------SVC4126------------------------------ -# %1 - resource/service/product/... -# %2 - field (tag, vendor name...) + #---------SVC4126------------------------------ + # %1 - resource/service/product/... + # %2 - field (tag, vendor name...) INVALID_FIELD_FORMAT: { code: 400, message: "Error: Invalid %1 %2 format.", messageId: "SVC4126" } -#-----------SVC4127--------------------------- + #-----------SVC4127--------------------------- ARTIFACT_INVALID_MD5: { code: 400, message: "Error: Invalid artifact checksum.", messageId: "SVC4127" } -#-----------SVC4128--------------------------- + #-----------SVC4128--------------------------- MISSING_ARTIFACT_NAME: { code: 400, message: "Error: Invalid content. Missing artifact name.", messageId: "SVC4128" } -#-----------SVC4129--------------------------- + #-----------SVC4129--------------------------- MISSING_PROJECT_CODE: { code: 400, message: "Error: Invalid Content. Missing PROJECT_CODE number.", messageId: "SVC4129" } -#-----------SVC4130--------------------------- + #-----------SVC4130--------------------------- INVALID_PROJECT_CODE: { code: 400, - message: "Error: Invalid Content. PROJECT_CODE must be from 3 up to 50 characters.", + message: "Error: Invalid Content. PROJECT_CODE must be from 5 up to 50 characters.", messageId: "SVC4130" } -#-----------SVC4131--------------------------- -# %1-resource/service -# %2-srtifact/artifacts -# %3-semicolomn separated list of artifact + #-----------SVC4131--------------------------- + # %1-resource/service + # %2-srtifact/artifacts + # %3-semicolomn separated list of artifact COMPONENT_MISSING_MANDATORY_ARTIFACTS: { code: 403, message: "Error: Missing mandatory informational %1 %2: [%3].", messageId: "SVC4131" } -#-----------SVC4132--------------------------- -# %1 - lifecycle type name + #-----------SVC4132--------------------------- + # %1 - lifecycle type name LIFECYCLE_TYPE_ALREADY_EXIST: { code: 409, message: "Error: Lifecycle Type with name '%1' already exists.", messageId: "SVC4132" } -#-----------SVC4133--------------------------- -# %1 - service version -# %2 - service name + #-----------SVC4133--------------------------- + # %1 - service version + # %2 - service name SERVICE_NOT_AVAILABLE_FOR_DISTRIBUTION: { code: 403, message: "Error: Version %1 of '%2' service is not available for distribution.", messageId: "SVC4133" } -#-----------SVC4134--------------------------- + #-----------SVC4134--------------------------- MISSING_LIFECYCLE_TYPE: { code: 400, message: "Error: Invalid Content. Missing interface life-cycle type.", messageId: "SVC4134" } -#---------SVC4135------------------------------ + #---------SVC4135------------------------------ SERVICE_CATEGORY_CANNOT_BE_CHANGED: { code: 400, message: "Error: Service category cannot be changed once the service is certified.", messageId: "SVC4135" } -#---------SVC4136------------------------------ -# %1 - distribution environment name + #---------SVC4136------------------------------ + # %1 - distribution environment name DISTRIBUTION_ENVIRONMENT_NOT_AVAILABLE: { code: 500, message: "Error: Requested distribution environment '%1' is not available.", messageId: "SVC4136" } -#---------SVC4137------------------------------ -# %1 - distribution environment name + #---------SVC4137------------------------------ + # %1 - distribution environment name DISTRIBUTION_ENVIRONMENT_NOT_FOUND: { code: 400, message: "Error: Requested distribution environment '%1' was not found.", messageId: "SVC4137" } -#---------SVC4138------------------------------ + #---------SVC4138------------------------------ DISTRIBUTION_ENVIRONMENT_INVALID: { code: 400, message: "Error: Invalid distribution environment.", messageId: "SVC4138" } -#---------SVC4200------------------------------ -# %1 - Service/Resource -# %2 - max icon name length + #---------SVC4200------------------------------ + # %1 - Service/Resource + # %2 - max icon name length COMPONENT_ICON_EXCEEDS_LIMIT: { code: 400, message: "Error: Invalid Content. %1 icon name exceeds limit of %2 characters.", messageId: "SVC4200" } -#---------SVC4300------------------------------ + #---------SVC4300------------------------------ RESTRICTED_ACCESS: { code: 403, message: "Error: Restricted access.", messageId: "SVC4300" } -#---------SVC4301------------------------------ + #---------SVC4301------------------------------ RESTRICTED_OPERATION: { code: 403, message: "Error: Restricted operation.", messageId: "SVC4301" } -#---------SVC4500------------------------------ + #---------SVC4500------------------------------ MISSING_BODY: { code: 400 , message: "Error: Missing request body.", messageId: "SVC4500" } -#---------SVC4501------------------------------ + #---------SVC4501------------------------------ MISSING_PUBLIC_KEY: { code: 400 , message: "Error: Invalid Content. Missing mandatory parameter 'apiPublicKey'." , messageId: "SVC4501" } -#---------SVC4502------------------------------ + #---------SVC4502------------------------------ DISTRIBUTION_ENV_DOES_NOT_EXIST: { code: 400 , message: "Error: Invalid Body : Missing mandatory parameter 'distrEnvName'." , messageId: "SVC4502" } -#-----------SVC4503--------------------------- -# %1 - service name + #-----------SVC4503--------------------------- + # %1 - service name SERVICE_NOT_FOUND: { code: 404, message: "Error: Requested '%1' service was not found.", messageId: "SVC4503" } -#---------SVC4504------------------------------ -# %1 - Service/Resource -# %2 - service/resource version + #---------SVC4504------------------------------ + # %1 - Service/Resource + # %2 - service/resource version COMPONENT_VERSION_NOT_FOUND: { code: 404, message: "Error: %1 version %2 was not found.", messageId: "SVC4504" } -#-----------SVC4505--------------------------- + #-----------SVC4505--------------------------- #%1-artifact name ARTIFACT_NOT_FOUND: { @@ -643,807 +649,788 @@ errors: message: "Error: Artifact '%1' was not found.", messageId: "SVC4505" } -#---------SVC4506------------------------------ + #---------SVC4506------------------------------ MISSING_ENV_NAME: { code: 400 , message: "Error: Invalid Content. Missing mandatory parameter 'distrEnvName'.", messageId: "SVC4506" } -#---------SVC4507------------------------------ + #---------SVC4507------------------------------ COMPONENT_INVALID_TAGS_NO_COMP_NAME: { code: 400, message: "Error: Invalid Content. One of the tags should be the component name.", messageId: "SVC4507" } -#---------SVC4508------------------------------ + #---------SVC4508------------------------------ SERVICE_NAME_CANNOT_BE_CHANGED: { code: 400, message: "Error: Service name cannot be changed once the service is certified.", messageId: "SVC4508" } -#---------SVC4509------------------------------ + #---------SVC4509------------------------------ SERVICE_ICON_CANNOT_BE_CHANGED: { code: 400, message: "Error: Icon cannot be changed once the service is certified.", messageId: "SVC4509" } -#---------SVC4510------------------------------ -# %1 - icon name max length + #---------SVC4510------------------------------ + # %1 - icon name max length SERVICE_ICON_EXCEEDS_LIMIT: { code: 400, message: "Error: Invalid Content. Icon name exceeds limit of %1 characters.", messageId: "SVC4510" } -#---------SVC4511------------------------------ + #---------SVC4511------------------------------ DISTRIBUTION_REQUESTED_NOT_FOUND: { code: 404, message: "Error: Requested distribution was not found.", messageId: "SVC4511" } -#---------SVC4512------------------------------ -# %1 - Distribution ID + #---------SVC4512------------------------------ + # %1 - Distribution ID DISTRIBUTION_REQUESTED_FAILED: { code: 403, message: "Error: Requested distribution '%1' failed.", messageId: "SVC4512" } -#---------SVC4513------------------------------ + #---------SVC4513------------------------------ RESOURCE_CATEGORY_CANNOT_BE_CHANGED: { code: 400, message: "Error: Resource category cannot be changed once the resource is certified.", messageId: "SVC4513" } -#---------SVC4514------------------------------ + #---------SVC4514------------------------------ RESOURCE_NAME_CANNOT_BE_CHANGED: { code: 400, message: "Error: Resource name cannot be changed once the resource is certified.", messageId: "SVC4514" } -#---------SVC4515------------------------------ + #---------SVC4515------------------------------ RESOURCE_ICON_CANNOT_BE_CHANGED: { code: 400, message: "Error: Icon cannot be changed once the resource is certified.", messageId: "SVC4515" } -#---------SVC4516------------------------------ + #---------SVC4516------------------------------ RESOURCE_VENDOR_NAME_CANNOT_BE_CHANGED: { code: 400, message: "Error: Vendor name cannot be changed once the resource is certified.", messageId: "SVC4516" } -#---------SVC4517------------------------------ + #---------SVC4517------------------------------ RESOURCE_DERIVED_FROM_CANNOT_BE_CHANGED: { code: 400, message: "Error: Derived from resource template cannot be changed once the resource is certified.", messageId: "SVC4517" } -#---------SVC4518------------------------------ -# %1 - max length + #---------SVC4518------------------------------ + # %1 - max length COMPONENT_SINGLE_TAG_EXCEED_LIMIT: { code: 400, message: "Error: Invalid Content. Single tag exceeds limit of %1 characters.", messageId: "SVC4518" } -#---------SVC4519------------------------------ + #---------SVC4519------------------------------ INVALID_DEFAULT_VALUE: { code: 400, message: "Error: mismatch in data-type occurred for property %1. data type is %2 and default value found is %3.", messageId: "SVC4519" } -#---------SVC4520------------------------------ -# %1 - service or resource + #---------SVC4520------------------------------ + # %1 - service or resource ADDITIONAL_INFORMATION_MAX_NUMBER_REACHED: { code: 409, message: "Error: Maximal number of additional %1 parameters was reached.", messageId: "SVC4520" } -#---------SVC4521------------------------------ + #---------SVC4521------------------------------ ADDITIONAL_INFORMATION_EMPTY_STRING_NOT_ALLOWED: { code: 400, message: "Error: Invalid Content. The Additional information label and value cannot be empty.", messageId: "SVC4521" } -#---------SVC4522------------------------------ -# %1 - label/value -# %2 - Maximal length of %1 + #---------SVC4522------------------------------ + # %1 - label/value + # %2 - Maximal length of %1 ADDITIONAL_INFORMATION_EXCEEDS_LIMIT: { code: 400, message: "Error: Invalid Content. Additional information %1 exceeds limit of %2 characters.", messageId: "SVC4522" } -#---------SVC4523------------------------------ + #---------SVC4523------------------------------ ADDITIONAL_INFORMATION_KEY_NOT_ALLOWED_CHARACTERS: { code: 400, message: 'Error: Invalid Content. Additional information label is not allowed to contain characters like <>:"\/|?* and space characters other than regular space.', messageId: "SVC4523" } -#---------SVC4524------------------------------ + #---------SVC4524------------------------------ ADDITIONAL_INFORMATION_NOT_FOUND: { code: 409, message: "Error: Requested additional information was not found.", messageId: "SVC4524" } -#---------SVC4525------------------------------ + #---------SVC4525------------------------------ ADDITIONAL_INFORMATION_VALUE_NOT_ALLOWED_CHARACTERS: { code: 400, message: 'Error: Invalid Content. Additional information contains non-english characters.', messageId: "SVC4525" } -#---------SVC4526------------------------------ + #---------SVC4526------------------------------ RESOURCE_INSTANCE_NOT_FOUND: { code: 404, message: "Error: Requested '%1' resource instance was not found.", messageId: "SVC4526" } -#---------SVC4527------------------------------ + #---------SVC4527------------------------------ ASDC_VERSION_NOT_FOUND: { code: 500, message: 'Error: ASDC version cannot be displayed.', messageId: "SVC4527" } -#---------SVC4528------------------------------ -# %1-artifact url/artifact label/artifact description/VNF Service Indicator + #---------SVC4528------------------------------ + # %1-artifact url/artifact label/artifact description/VNF Service Indicator MISSING_DATA: { code: 400, message: "Error: Invalid content. Missing %1.", messageId: "SVC4528" } -#---------SVC4529------------------------------ -# %1-artifact url/artifact label/artifact description/artifact name -# %2 - Maximal length of %1 + #---------SVC4529------------------------------ + # %1-artifact url/artifact label/artifact description/artifact name + # %2 - Maximal length of %1 EXCEEDS_LIMIT: { code: 400, message: "Error: Invalid Content. %1 exceeds limit of %2 characters.", messageId: "SVC4529" } -#---------SVC4530------------------------------ + #---------SVC4530------------------------------ ARTIFACT_INVALID_TIMEOUT: { code: 400, message: "Error: Invalid Content. Artifact Timeout should be set to valid positive non-zero number of minutes.", messageId: "SVC4530" } -#---------SVC4531------------------------------ + #---------SVC4531------------------------------ SERVICE_IS_VNF_CANNOT_BE_CHANGED: { code: 400, message: "Error: VNF Indicator cannot be updated for certified service.", messageId: "SVC4531" } - #---------SVC4532------------------------------ + #---------SVC4532------------------------------ RESOURCE_INSTANCE_NOT_FOUND_ON_SERVICE: { code: 404, message: "Error: Requested '%1' resource instance was not found on the service '%2.", messageId: "SVC4532" } - #---------SVC4533------------------------------ - # %1 - "HEAT"/"HEAT_ENV"/"MURANO_PKG"/"YANG_XML" + #---------SVC4533------------------------------ + # %1 - "HEAT"/"HEAT_ENV"/"MURANO_PKG"/"YANG_XML" WRONG_ARTIFACT_FILE_EXTENSION: { code: 400, message: "Error: Invalid file extension for %1 artifact type.", messageId: "SVC4533" } -#---------SVC4534------------------------------ -# %1 - "HEAT"/"HEAT_ENV" + #---------SVC4534------------------------------ + # %1 - "HEAT"/"HEAT_ENV" INVALID_YAML: { code: 400, message: "Error: Uploaded YAML file for %1 artifact is invalid.", messageId: "SVC4534" } -#---------SVC4535------------------------------ -# %1 - "HEAT" + #---------SVC4535------------------------------ + # %1 - "HEAT" INVALID_DEPLOYMENT_ARTIFACT_HEAT: { code: 400, message: "Error: Invalid %1 artifact.", messageId: "SVC4535" } -#---------SVC4536------------------------------ -# %1 - "Resource"/"Service" -# %2 - resource/service name -# %3 - "HEAT"/"HEAT_ENV"/"MURANO_PKG" -# %4 - "HEAT"/"HEAT_ENV"/"MURANO_PKG + #---------SVC4536------------------------------ + # %1 - "Resource"/"Service" + # %2 - resource/service name + # %3 - "HEAT"/"HEAT_ENV"/"MURANO_PKG" + # %4 - "HEAT"/"HEAT_ENV"/"MURANO_PKG DEPLOYMENT_ARTIFACT_OF_TYPE_ALREADY_EXISTS: { code: 400, message: "Error: %1 '%2' already has a deployment artifact of %3 type .Please delete or update an existing %4 artifact.", messageId: "SVC4536" } -#---------SVC4537------------------------------ + #---------SVC4537------------------------------ MISSING_HEAT: { code: 400, message: "Error: Missing HEAT artifact. HEAT_ENV artifact cannot be uploaded without corresponding HEAT template.", messageId: "SVC4537" } -#---------SVC4538------------------------------ + #---------SVC4538------------------------------ MISMATCH_HEAT_VS_HEAT_ENV: { code: 400, message: "Error: Invalid artifact content. Parameter's set in HEAT_ENV '%1' artifact doesn't match the parameters in HEAT '%2' artifact.", messageId: "SVC4538" } -#---------SVC4539------------------------------ + #---------SVC4539------------------------------ INVALID_RESOURCE_PAYLOAD: { code: 400, message: "Error: Invalid resource payload.", messageId: "SVC4539" } -#---------SVC4540------------------------------ + #---------SVC4540------------------------------ INVALID_TOSCA_FILE_EXTENSION: { code: 400, message: "Error: Invalid file extension for TOSCA template.", messageId: "SVC4540" } -#---------SVC4541------------------------------ + #---------SVC4541------------------------------ INVALID_YAML_FILE: { code: 400, message: "Error: Invalid YAML file.", messageId: "SVC4541" } -#---------SVC4542------------------------------ + #---------SVC4542------------------------------ INVALID_TOSCA_TEMPLATE: { code: 400, message: "Error: Invalid TOSCA template.", messageId: "SVC4542" } -#---------SVC4543------------------------------ + #---------SVC4543------------------------------ NOT_RESOURCE_TOSCA_TEMPLATE: { code: 400, message: "Error: Imported Service TOSCA template.", messageId: "SVC4543" } -#---------SVC4544------------------------------ + #---------SVC4544------------------------------ NOT_SINGLE_RESOURCE: { code: 400, message: "Error: Imported TOSCA template should contain one resource definition.", messageId: "SVC4544" } -#---------SVC4545------------------------------ + #---------SVC4545------------------------------ INVALID_RESOURCE_NAMESPACE: { code: 400, message: "Error: Invalid resource namespace.", messageId: "SVC4545" } -#---------SVC4546------------------------------ + #---------SVC4546------------------------------ RESOURCE_ALREADY_EXISTS: { code: 400, message: "Error: Imported resource already exists in ASDC Catalog.", messageId: "SVC4546" } -#---------SVC4549------------------------------ + #---------SVC4549------------------------------ INVALID_RESOURCE_CHECKSUM: { code: 400, message: "Error: Invalid resource checksum.", messageId: "SVC4549" } -#---------SVC4550------------------------------ - #%1 - Consumer salt - INVALID_LENGTH: { - code: 400, - message: "Error: Invalid %1 length.", - messageId: "SVC4550" - } #---------SVC4551------------------------------ - #%1 - ECOMP User name + # %1 - ECOMP User name ECOMP_USER_NOT_FOUND: { code: 404, message: "Error: ECOMP User '%1' was not found.", messageId: "SVC4551" } -#---------SVC4552------------------------------ - CONSUMER_ALREADY_EXISTS: { - code: 409, - message: "Error: ECOMP User already exists.", - messageId: "SVC4552" - } -#---------SVC4553----------------------------- - #%1 - Consumer name / Consumer password/ Consumer salt - INVALID_CONTENT_PARAM: { - code: 400, - message: "Error: %1 is invalid.", - messageId: "SVC4553" - } #---------SVC4554------------------------------ -# %1 - "Resource"/"Service" + # %1 - Artifact Id + # %2 - "Resource"/"Service" COMPONENT_ARTIFACT_NOT_FOUND: { code: 404, - message: "Error: Requested artifact doesn't belong to specified %1.", + message: "Error: Requested artifact %1 doesn't belong to specified %2.", messageId: "SVC4554" } -#---------SVC4554------------------------------ -# %1 - "Service name" + #---------SVC4554------------------------------ + # %1 - "Service name" SERVICE_DEPLOYMENT_ARTIFACT_NOT_FOUND: { code: 403, message: "Error: Requested '%1' service is not ready for certification. Service has to have at least one deployment artifact.", messageId: "SVC4554" } -#---------SVC4555------------------------------ -#%1 - "Resource"/"Service"/"Product" -#%2 - "category" + #---------SVC4555------------------------------ + # %1 - "Resource"/"Service"/"Product" + # %2 - "category" COMPONENT_ELEMENT_INVALID_NAME_LENGTH: { code: 400, message: "Error: Invalid %1 %2 name length.", messageId: "SVC4555" } -#---------SVC4556------------------------------ -#%1 - "Resource"/"Service"/"Product" -#%2 - "category" + #---------SVC4556------------------------------ + # %1 - "Resource"/"Service"/"Product" + # %2 - "category" COMPONENT_ELEMENT_INVALID_NAME_FORMAT: { code: 400, message: "Error: Invalid %1 %2 name format.", messageId: "SVC4556" } -#---------SVC4557------------------------------ -#%1 - "Resource"/"Service"/"Product" -#%2 - "category name" + #---------SVC4557------------------------------ + # %1 - "Resource"/"Service"/"Product" + # %2 - "category name" COMPONENT_CATEGORY_ALREADY_EXISTS: { code: 409, message: "Error: %1 category name '%2' already exists.", messageId: "SVC4557" } -#---------SVC4558------------------------------ -# %1 - "service"/"VF" -# %2 - "Resource name" + #---------SVC4558------------------------------ + # %1 - "service"/"VF" + # %2 - "Resource name" VALIDATED_RESOURCE_NOT_FOUND: { code: 403, message: "Error: Submit for Testing is not permitted as your '%1' includes non-validated '%2' resource.", messageId: "SVC4558" } -#---------SVC4559------------------------------ -# %1 - "service"/"VF" -# %2 - "Resource name" + #---------SVC4559------------------------------ + # %1 - "service"/"VF" + # %2 - "Resource name" FOUND_ALREADY_VALIDATED_RESOURCE: { code: 403, message: "Error: Submit for Testing is not permitted as your '%1' includes non-validated '%2' resource. Please use already available validated resource version.", messageId: "SVC4559" } -#---------SVC4560------------------------------ -# %1 - "service"/"VF" -# %2 - "Resource name" + #---------SVC4560------------------------------ + # %1 - "service"/"VF" + # %2 - "Resource name" FOUND_LIST_VALIDATED_RESOURCES: { code: 403, message: "Error: Submit for Testing is not permitted as your '%1' includes non-validated '%2' resource. Please use one of available validated resource versions.", messageId: "SVC4560" } -#---------SVC4561------------------------------ -# %1 - "resource"/"product" -# %2 - "category" -# %3 - "category name" + #---------SVC4561------------------------------ + # %1 - "resource"/"product" + # %2 - "category" + # %3 - "category name" COMPONENT_CATEGORY_NOT_FOUND: { code: 404, message: "Error: Requested %1 %2 '%3' was not found.", messageId: "SVC4561" } -#---------SVC4562------------------------------ -# %1 - "Resource"/"Product" -# %2 - "sub-category name" -# %3 - "category name" + #---------SVC4562------------------------------ + # %1 - "Resource"/"Product" + # %2 - "sub-category name" + # %3 - "category name" COMPONENT_SUB_CATEGORY_EXISTS_FOR_CATEGORY: { code: 409, message: "Error: %1 sub-category '%2' already exists under '%3' category.", messageId: "SVC4562" } -#---------SVC4563------------------------------ -# %1 - "Product" -# %2 - "grouping name" -# %3 - "sub-category name" + #---------SVC4563------------------------------ + # %1 - "Product" + # %2 - "grouping name" + # %3 - "sub-category name" COMPONENT_GROUPING_EXISTS_FOR_SUB_CATEGORY: { code: 409, message: "Error: %1 grouping '%2' already exists under '%3' sub-category.", messageId: "SVC4563" } -#---------SVC4564------------------------------ -# %1 - product name + #---------SVC4564------------------------------ + # %1 - product name PRODUCT_NOT_FOUND: { code: 404, message: "Error: Requested '%1' product was not found.", messageId: "SVC4564" } -#---------SVC4565------------------------------ -# %1 - "HEAT" -# %2 - parameter type ("string" , "boolean" , "number") -# %3 - parameter name + #---------SVC4565------------------------------ + # %1 - "HEAT" + # %2 - parameter type ("string" , "boolean" , "number") + # %3 - parameter name INVALID_HEAT_PARAMETER_VALUE: { code: 400, message: "Error: Invalid %1 artifact. Invalid %2 value set for '%3' parameter.", messageId: "SVC4565" } -#---------SVC4566------------------------------ -# %1 - "HEAT" -# %2 - parameter type ("string" , "boolean" , "number") + #---------SVC4566------------------------------ + # %1 - "HEAT" + # %2 - parameter type ("string" , "boolean" , "number") INVALID_HEAT_PARAMETER_TYPE: { code: 400, message: "Error: Invalid %1 artifact. Unsupported '%2' parameter type.", messageId: "SVC4566" } -#---------SVC4567------------------------------ -# %1 - "YANG_XML" + #---------SVC4567------------------------------ + # %1 - "YANG_XML" INVALID_XML: { code: 400, message: "Error: Uploaded XML file for %1 artifact is invalid.", messageId: "SVC4567" } -#---------SVC4567------------------------------ -# %1 - "User Name and UserId" -# %2 -"checked-out"/"in-certification" + #---------SVC4569------------------------------ + # %1 - "User Name and UserId" + # %2 -"component names ot IDs" CANNOT_DELETE_USER_WITH_ACTIVE_ELEMENTS: { - code: 409, - message: "Error: User cannot be deleted. User '%1' has %2 projects.", - messageId: "SVC4567" + code: 412, + message: "Error: User cannot be deleted. User '%1' has projects that cannot be committed: %2.", + messageId: "SVC4569" } -#---------SVC4568------------------------------ -# %1 - "User Name and UserId" -# %2 -"checked-out"/"in-certification" + #---------SVC4568------------------------------ + # %1 - "User Name and UserId" + # %2 -"checked-out"/"in-certification" CANNOT_UPDATE_USER_WITH_ACTIVE_ELEMENTS: { code: 409, message: "Error: Role cannot be changed. User '%1' has %2 projects.", messageId: "SVC4568" } -#---------SVC4570------------------------------ + #---------SVC4570------------------------------ UPDATE_USER_ADMIN_CONFLICT: { code: 409, message: "Error: An administrator is not allowed to change his/her role.", messageId: "SVC4570" } -#---------SVC4571------------------------------ + #---------SVC4571------------------------------ SERVICE_CANNOT_CONTAIN_SUBCATEGORY: { code: 400, message: "Error: Sub category cannot be defined for service", messageId: "SVC4571" } -#---------SVC4572------------------------------ -# %1 - "Resource"/"Service" + #---------SVC4572------------------------------ + # %1 - "Resource"/"Service" COMPONENT_TOO_MUCH_CATEGORIES: { code: 400, message: "Error: %1 must have only 1 category", messageId: "SVC4572" } -#---------SVC4574------------------------------ + #---------SVC4574------------------------------ RESOURCE_TOO_MUCH_SUBCATEGORIES: { code: 400, message: "Error: Resource must have only 1 sub category", messageId: "SVC4574" } -#---------SVC4575------------------------------ + #---------SVC4575------------------------------ COMPONENT_MISSING_SUBCATEGORY: { code: 400, message: "Error: Missing sub category", messageId: "SVC4575" } - #---------SVC4576------------------------------ -# %1 - "component type" + #---------SVC4576------------------------------ + # %1 - "component type" UNSUPPORTED_ERROR: { code: 400, message: "Error : Requested component type %1 is unsupported.", messageId: "SVC4576" } #---------SVC4577------------------------------ -# %1 - "resource type" + # %1 - "resource type" RESOURCE_CANNOT_CONTAIN_RESOURCE_INSTANCES: { code: 409, message: "Error : Resource of type %1 cannot contain resource instances.", messageId: "SVC4577" } -#---------SVC4578------------------------------ -# %1 - "Resource"/"Service" -# %2 - resource/service name -# %3 - "artifact name" + #---------SVC4578------------------------------ + # %1 - "Resource"/"Service" + # %2 - resource/service name + # %3 - "artifact name" DEPLOYMENT_ARTIFACT_NAME_ALREADY_EXISTS: { code: 400, message: "Error: %1 '%2' already has a deployment artifact named '%3'.", messageId: "SVC4578" } -#---------SVC4579------------------------------ -# %1 - "Category"/"Sub-Category"/"Group" -# %2 - category/sub-category/grouping name. + #---------SVC4579------------------------------ + # %1 - "Category"/"Sub-Category"/"Group" + # %2 - category/sub-category/grouping name. INVALID_GROUP_ASSOCIATION: { code: 400, message: "Error: Invalid group association. %1 '%2' was not found.", messageId: "SVC4579" } -#---------SVC4580------------------------------ + #---------SVC4580------------------------------ EMPTY_PRODUCT_CONTACTS_LIST: { code: 400, message: "Error: Invalid content. At least one Product Contact has to be specified.", messageId: "SVC4580" } -#---------SVC4581------------------------------ -# %1 - UserId + #---------SVC4581------------------------------ + # %1 - UserId INVALID_PRODUCT_CONTACT: { code: 400, message: "Error: Invalid content. User '%1' cannot be set as Product Contact.", messageId: "SVC4581" } -#---------SVC4582------------------------------ -# %1 - Product -# %2 - "abbreviated"/"full" + #---------SVC4582------------------------------ + # %1 - Product + # %2 - "abbreviated"/"full" MISSING_ONE_OF_COMPONENT_NAMES: { code: 400, message: "Error: Invalid content. Missing %1 %2 name.", messageId: "SVC4582" } -#---------SVC4583------------------------------ -# %1 - "Icon" -# %2 - "resource"/"service"/"product" + #---------SVC4583------------------------------ + # %1 - "Icon" + # %2 - "resource"/"service"/"product" COMPONENT_PARAMETER_CANNOT_BE_CHANGED: { code: 400, message: "Error: %1 cannot be changed once the %2 is certified.", messageId: "SVC4583" } -#---------SVC4584------------------------------ -# %1 - service/VF name -# %2 - "service" /"VF" -# %3 - resource instance origin type -# %4 - resource instance name -# %5 - requirement/capability -# %6 - requirement/capability name -# %7 - "fulfilled" (for req)/"consumed (for cap)" + #---------SVC4584------------------------------ + # %1 - service/VF name + # %2 - "service" /"VF" + # %3 - resource instance origin type + # %4 - resource instance name + # %5 - requirement/capability + # %6 - requirement/capability name + # %7 - "fulfilled" (for req)/"consumed (for cap)" REQ_CAP_NOT_SATISFIED_BEFORE_CERTIFICATION: { code: 403, message: "Error: Requested '%1' %2 is not ready for certification. %3 '%4' has to have %5 '%6' %7.", messageId: "SVC4584" } -#---------SVC4585------------------------------ + #---------SVC4585------------------------------ INVALID_OCCURRENCES: { code: 400, message: "Error: Invalid occurrences format.", messageId: "SVC4585" } -#---------SVC4586------------------------------ -#---------SVC4586------------------------------ + #---------SVC4586------------------------------ + #---------SVC4586------------------------------ INVALID_SERVICE_API_URL: { code: 400, message: 'Error: Invalid Service API URL. Please check whether your URL has a valid domain extension and does not contain the following characters - #?&@%+;,=$<>~^`\[]{}|"*!', messageId: "SVC4586" } -#---------SVC4587------------------------------ -# %1 - Data type name + #---------SVC4587------------------------------ + # %1 - Data type name DATA_TYPE_ALREADY_EXIST: { code: 409, message: 'Error: Data type %1 already exists.', messageId: "SVC4587" } -#---------SVC4588------------------------------ -# %1 - Data type name + #---------SVC4588------------------------------ + # %1 - Data type name DATA_TYPE_NOR_PROPERTIES_NEITHER_DERIVED_FROM: { code: 400, message: 'Error: Invalid Data type %1. Data type must have either a valid derived from declaration or at least one valid property', messageId: "SVC4588" } -#---------SVC4589------------------------------ -# %1 - Data type name + #---------SVC4589------------------------------ + # %1 - Data type name DATA_TYPE_PROPERTIES_CANNOT_BE_EMPTY: { code: 400, message: "Error: Invalid Data type %1. 'properties' parameter cannot be empty if provided.", messageId: "SVC4589" } -#---------SVC4590------------------------------ -# %1 - Property type name -# %2 - Property name + #---------SVC4590------------------------------ + # %1 - Property type name + # %2 - Property name INVALID_PROPERTY_TYPE: { code: 400, message: "Error: Invalid Property type %1 in property %2.", messageId: "SVC4590" } -#---------SVC4591------------------------------ -# %1 - Property inner type -# %2 - Property name + #---------SVC4591------------------------------ + # %1 - Property inner type + # %2 - Property name INVALID_PROPERTY_INNER_TYPE: { code: 400, message: "Error: Invalid property inner type %1, in property %2", messageId: "SVC4591" } -#---------SVC4592------------------------------ -# %1 - component instance name -# %2 - "resource instance"/"service instance" + #---------SVC4592------------------------------ + # %1 - component instance name + # %2 - "resource instance"/"service instance" COMPONENT_INSTANCE_NOT_FOUND: { code: 404, message: "Error: Requested '%1' %2 was not found.", messageId: "SVC4592" } -#---------SVC4593------------------------------ -# %1 - component instance name -# %2 - "resource instance"/"service instance" -# %3 - "resource/"service"/"product" -# %4 - container name + #---------SVC4593------------------------------ + # %1 - component instance name + # %2 - "resource instance"/"service instance" + # %3 - "resource/"service"/"product" + # %4 - container name COMPONENT_INSTANCE_NOT_FOUND_ON_CONTAINER: { code: 404, message: "Error: Requested '%1' %2 was not found on the %3 '%4'.", messageId: "SVC4593" } -#---------SVC4594------------------------------ -#%1 - requirement / capability -#%2 - requirement name + #---------SVC4594------------------------------ + #%1 - requirement / capability + #%2 - requirement name IMPORT_DUPLICATE_REQ_CAP_NAME: { code: 400, message: "Error: Imported TOSCA template contains more than one %1 named '%2'.", messageId: "SVC4594" } -#---------SVC4595------------------------------ -#%1 - requirement / capability -#%2 - requirement name -#%3 - parent containing the requirement + #---------SVC4595------------------------------ + #%1 - requirement / capability + #%2 - requirement name + #%3 - parent containing the requirement IMPORT_REQ_CAP_NAME_EXISTS_IN_DERIVED: { code: 400, message: "Error: Imported TOSCA template contains %1 '%2' that is already defined by derived template %3.", messageId: "SVC4595" } -#---------SVC4596------------------------------ -# %1 - Data type name + #---------SVC4596------------------------------ + # %1 - Data type name DATA_TYPE_DERIVED_IS_MISSING: { code: 400, message: "Error: Invalid Content. The ancestor data type %1 cannot be found in the system.", messageId: "SVC4596" } -#---------SVC4597------------------------------ -# %1 - Data type name -# %2 - Property names + #---------SVC4597------------------------------ + # %1 - Data type name + # %2 - Property names DATA_TYPE_PROPERTY_ALREADY_DEFINED_IN_ANCESTOR: { code: 400, message: "Error: Invalid Content. The data type %1 contains properties named %2 which are already defined in one of its ancestors.", messageId: "SVC4597" } -#---------SVC4598------------------------------ -# %1 - Data type name + #---------SVC4598------------------------------ + # %1 - Data type name DATA_TYPE_DUPLICATE_PROPERTY: { code: 400, message: "Error: Invalid Content. The data type %1 contains duplicate property.", messageId: "SVC4598" } -#---------SVC4599------------------------------ -# %1 - Data type name -# %2 - Property names + #---------SVC4599------------------------------ + # %1 - Data type name + # %2 - Property names DATA_TYPE_PROEPRTY_CANNOT_HAVE_SAME_TYPE_OF_DATA_TYPE: { code: 400, message: "Error: Invalid Content. The data type %1 contains properties %2 which their type is this data type.", messageId: "SVC4599" } -#---------SVC4600------------------------------ -# %1 - Data type name + #---------SVC4600------------------------------ + # %1 - Data type name DATA_TYPE_CANNOT_HAVE_PROPERTIES: { code: 400, message: "Error: Invalid Content. The data type %1 cannot have properties since it is of type scalar", messageId: "SVC4600" } -#---------SVC4601------------------------------ + #---------SVC4601------------------------------ NOT_TOPOLOGY_TOSCA_TEMPLATE: { code: 400, message: "Error: TOSCA yaml file %1 cannot be modeled to VF as it does not contain 'topology_template.", messageId: "SVC4601" } -#---------SVC4602-------------------------------- -# %1 - yaml file name -# %2 - node_template label -# %3 - node_template type + #---------SVC4602-------------------------------- + # %1 - yaml file name + # %2 - node_template label + # %3 - node_template type INVALID_NODE_TEMPLATE: { code: 400, message: "Error: TOSCA yaml file '%1' contains node_template '%2' of type '%3' that does not represent existing VFC/CP/VL", messageId: "SVC4602" } -#---------SVC4603------------------------------ -# %1 - component type -# %2 - component name -# %3 - state + #---------SVC4603------------------------------ + # %1 - component type + # %2 - component name + # %3 - state ILLEGAL_COMPONENT_STATE: { code: 403, - message: "Error: Component instance of %1 can not be created because the component '%2' is in an illegal state %3.", + message: "Error: Action is not allowed on %1 '%2' because it is in an illegal state %3.", messageId: "SVC4603" } -#---------SVC4604------------------------------ -# %1 - csar file name + #---------SVC4604------------------------------ + # %1 - csar file name CSAR_INVALID: { code: 400, message: "Error: TOSCA CSAR '%1' is invalid. 'TOSCA-Metadata/Tosca.meta' file must be provided.", messageId: "SVC4604" } -#---------SVC4605------------------------------ -# %1 - csar file name + #---------SVC4605------------------------------ + # %1 - csar file name CSAR_INVALID_FORMAT: { code: 400, message: "Error: TOSCA CSAR '%1' is invalid. Invalid 'TOSCA-Metadata/Tosca.meta' file format.", messageId: "SVC4605" } -#---------SVC4606------------------------------ -# %1 - property name -# %2 - property type -# %3 - property innerType -# %4 - default value is + #---------SVC4606------------------------------ + # %1 - property name + # %2 - property type + # %3 - property innerType + # %4 - default value is INVALID_COMPLEX_DEFAULT_VALUE: { code: 400, message: "Error: Invalid default value of property %1. Data type is %2 with inner type %3 and default value found is %4.", messageId: "SVC4606" } -#---------SVC4607------------------------------ -# %1 - csar file name + #---------SVC4607------------------------------ + # %1 - csar file name CSAR_NOT_FOUND: { code: 400, message: "Error: TOSCA CSAR '%1' is not found.", messageId: "SVC4607" } -#---------SVC4608------------------------------ -# %1 - artifact name -# %2 - component type -# %3 - actual component type + #---------SVC4608------------------------------ + # %1 - artifact name + # %2 - component type + # %3 - actual component type MISMATCH_BETWEEN_ARTIFACT_TYPE_AND_COMPONENT_TYPE: { code: 400, message: "Error: Artifact %1 is only compatible with component of type %2, but component type is %3.", messageId: "SVC4608" } -#---------SVC4609------------------------------ -# %1 - "INVALID_JSON" + #---------SVC4609------------------------------ + # %1 - "INVALID_JSON" INVALID_JSON: { code: 400, message: "Error: Uploaded JSON file for %1 artifact is invalid.", messageId: "SVC4609" } -#---------SVC4610------------------------------ -# %1 - csar file name -# %2 - missing file name + #---------SVC4610------------------------------ + # %1 - csar file name + # %2 - missing file name YAML_NOT_FOUND_IN_CSAR: { code: 400, message: "Error - TOSCA CSAR %1 is invalid. TOSCA-Metadata/Tosca.meta refers to file %2 that is not provided.", messageId: "SVC4610" } -#---------SVC4611------------------------------ -# %1 - group name + #---------SVC4611------------------------------ + # %1 - group name GROUP_MEMBER_EMPTY: { code: 400, message: "Error: Invalid Content. Group %1 member list was provided but does not have values", messageId: "SVC4611" } -#---------SVC4612------------------------------ -# %1 - group name + #---------SVC4612------------------------------ + # %1 - group name GROUP_TYPE_ALREADY_EXIST: { code: 409, message: 'Error: Group type %1 already exists.', messageId: "SVC4612" } -#---------SVC4613------------------------------ -# %1 - group name -# %2 - VF name(component name) -# %3 - actual component type [VF] + #---------SVC4613------------------------------ + # %1 - group name + # %2 - VF name(component name) + # %3 - actual component type [VF] GROUP_ALREADY_EXIST: { code: 409, message: "Error: Group with name '%1' already exists in %2 %3.", messageId: "SVC4613" } -#---------SVC4614------------------------------ -# %1 - group type + #---------SVC4614------------------------------ + # %1 - group type GROUP_TYPE_IS_INVALID: { code: 400, message: "Error: Invalid content. Group type %1 does not exist", messageId: "SVC4614" } -#---------SVC4615------------------------------ -# %1 - group name + #---------SVC4615------------------------------ + # %1 - group name GROUP_MISSING_GROUP_TYPE: { code: 400, message: "Error: Invalid Content. Missing Group Type for group '%1'", messageId: "SVC4615" } -#---------SVC4616------------------------------ -# %1 - member name -# %2 - group name -# %3 - VF name -# %4 - component type [VF ] + #---------SVC4616------------------------------ + # %1 - member name + # %2 - group name + # %3 - VF name + # %4 - component type [VF ] GROUP_INVALID_COMPONENT_INSTANCE: { code: 400, message: "Error: Member '%1' listed in group '%2' is not part of '%3' %4.", messageId: "SVC4616" } -#---------SVC4617------------------------------ -# %1 - member name -# %2 - group name -# %3 - group type + #---------SVC4617------------------------------ + # %1 - member name + # %2 - group name + # %3 - group type GROUP_INVALID_TOSCA_NAME_OF_COMPONENT_INSTANCE: { code: 400, message: "Error: member %1 listed in group %2 is not part of allowed members of group type %3.", messageId: "SVC4617" } -#---------SVC4618------------------------------ -# %1 - missing file name -# %2 - csar file name + #---------SVC4618------------------------------ + # %1 - missing file name + # %2 - csar file name ARTIFACT_NOT_FOUND_IN_CSAR: { code: 400, message: "Error: artifact %1 is defined in CSAR %2 manifest but is not provided", @@ -1458,424 +1445,398 @@ errors: message: "Error: artifact %1 in type %2 already exists in type %3.", messageId: "SVC4619" } -#---------SVC4620------------------------------ + #---------SVC4620------------------------------ FAILED_RETRIVE_ARTIFACTS_TYPES: { code: 400, message: "Error: Failed to retrieve list of suported artifact types.", messageId: "SVC4620" } -#---------SVC4621------------------------------ -# %1 - artifact name -# %2 - master + #---------SVC4621------------------------------ + # %1 - artifact name + # %2 - master ARTIFACT_ALRADY_EXIST_IN_MASTER_IN_CSAR: { code: 400, message: "Error: artifact %1 already exists in master %2 .", messageId: "SVC4621" } -#---------SVC4622------------------------------ -# %1 - artifact name -# %2 - artifact type -# %3 - master name -# %4 - master type + #---------SVC4622------------------------------ + # %1 - artifact name + # %2 - artifact type + # %3 - master name + # %4 - master type ARTIFACT_NOT_VALID_IN_MASTER: { code: 400, message: "Error: artifact %1 in type %2 can not be exists under master %3 in type %4.", messageId: "SVC4622" } -#---------SVC4623------------------------------ -# %1 - artifact name -# %2 - artifact type -# %3 - env name -# %4 - existing env + #---------SVC4623------------------------------ + # %1 - artifact name + # %2 - artifact type + # %3 - env name + # %4 - existing env ARTIFACT_NOT_VALID_ENV: { code: 400, message: "Error: Artifact %1 in type %2 with env %3 already exists with another env %4", messageId: "SVC4623" } -#---------SVC4624------------------------------ -# %1 - groups names -# %2 - VF name -# %3 - component type [VF ] + #---------SVC4624------------------------------ + # %1 - groups names + # %2 - VF name + # %3 - component type [VF ] GROUP_IS_MISSING: { code: 400, message: "Error: Invalid Content. The groups '%1' cannot be found under %2 %3.", messageId: "SVC4624" } -#---------SVC4625------------------------------ -# %1 - groups name + #---------SVC4625------------------------------ + # %1 - groups name GROUP_ARTIFACT_ALREADY_ASSOCIATED: { code: 400, message: "Error: Invalid Content. Artifact already associated to group '%1'.", messageId: "SVC4625" } -#---------SVC4626------------------------------ -# %1 - groups name + #---------SVC4626------------------------------ + # %1 - groups name GROUP_ARTIFACT_ALREADY_DISSOCIATED: { code: 400, message: "Error: Invalid Content. Artifact already dissociated from group '%1'.", messageId: "SVC4626" } -#---------SVC4627------------------------------ -# %1 - property name -# %2 - group name -# %3 - group type name + #---------SVC4627------------------------------ + # %1 - property name + # %2 - group name + # %3 - group type name GROUP_PROPERTY_NOT_FOUND: { code: 400, message: "Error: property %1 listed in group %2 is not exist in group type %3.", messageId: "SVC4627" } -#---------SVC4628------------------------------ -# %1 - csarUUID -# %2 - VF name + #---------SVC4628------------------------------ + # %1 - csarUUID + # %2 - VF name VSP_ALREADY_EXISTS: { code: 400, message: "Error: The VSP with UUID %1 was already imported for VF %2. Please select another or update the existing VF.", messageId: "SVC4628" } -#---------SVC4629------------------------------ -# %1 - VF name + #---------SVC4629------------------------------ + # %1 - VF name MISSING_CSAR_UUID: { code: 400, message: "Error: The Csar UUID or payload name is missing for VF %1.", messageId: "SVC4629" } -#---------SVC4630------------------------------ -# %1 - VF name -# %2 - new csarUUID -# %3 - old csarUUID + #---------SVC4630------------------------------ + # %1 - VF name + # %2 - new csarUUID + # %3 - old csarUUID RESOURCE_LINKED_TO_DIFFERENT_VSP: { code: 400, message: "Error: Resource %1 cannot be updated using CsarUUID %2 since the resource is linked to a different VSP with csarUUID %3.", messageId: "SVC4630" } -#---------SVC4631------------------------------ -# %1 - policy name + #---------SVC4631------------------------------ + # %1 - policy name POLICY_TYPE_ALREADY_EXIST: { code: 409, message: "Error: Policy type %1 already exists.", messageId: "SVC4631" } -#---------SVC4632------------------------------ -# %1 - target name -# %2 - policy type name + #---------SVC4632------------------------------ + # %1 - target name + # %2 - policy type name TARGETS_NON_VALID: { code: 400, message: "Error: target %1 listed in policy type %2 is not a group or resource.", messageId: "SVC4632" } -#---------SVC4633------------------------------ -# %1 - policy name + #---------SVC4633------------------------------ + # %1 - policy name TARGETS_EMPTY: { code: 400, message: "Error: Invalid Content. Policy %1 target list was provided but does not have values", messageId: "SVC4633" } -#---------SVC4634------------------------------ + #---------SVC4634------------------------------ DATA_TYPE_CANNOT_BE_EMPTY: { code: 500, message: "Error: Data types are empty. Please import the data types.", messageId: "SVC4634" } -#---------SVC4635------------------------------ -# %1 - csar uuid + #---------SVC4635------------------------------ + # %1 - csar uuid RESOURCE_FROM_CSAR_NOT_FOUND: { code: 400, message: "Error: resource from csar uuid %1 not found", messageId: "SVC4635" } -#---------SVC4636------------------------------ -# %1 - Data type name + #---------SVC4636------------------------------ + # %1 - Data type name DATA_TYPE_CANNOT_BE_UPDATED_BAD_REQUEST: { code: 400, message: 'Error: Data type %1 cannot be upgraded. The new data type does not contain old properties or the type of one of the properties has been changed.', messageId: "SVC4636" } -#-----------SVC4637--------------------------- -#%1 - attribute name + #-----------SVC4637--------------------------- + #%1 - attribute name ATTRIBUTE_NOT_FOUND: { code: 404, message: "Error: Requested '%1' attribute was not found.", messageId: "SVC4637" } -#-----------SVC4638--------------------------- -#%1 - attribute name + #-----------SVC4638--------------------------- + #%1 - attribute name ATTRIBUTE_ALREADY_EXIST: { code: 409, message: "Error: Attribute with '%1' name already exists.", messageId: "SVC4638" } -#-----------SVC4639--------------------------- -#%1 - property name + #-----------SVC4639--------------------------- + #%1 - property name PROPERTY_NAME_ALREADY_EXISTS: { code: 409, message: "Error: Property with '%1' name and different type already exists.", messageId: "SVC4639" } -#-----------SVC4640--------------------------- -#%1 - property name + #-----------SVC4640--------------------------- + #%1 - property name INVALID_PROPERTY: { code: 409, message: "Error: Invalid property received.", messageId: "SVC4640" } -#---------SVC4641----------------------------- -#%1 - invalid filter -#%2 - valid filters + #---------SVC4641----------------------------- + #%1 - invalid filter + #%2 - valid filters INVALID_FILTER_KEY: { code: 400, message: "Error: The filter %1 is not applicable. Please use one of the following filters: %2", messageId: "SVC4641" } -#---------SVC4642----------------------------- -#%1 - asset type -#%2 - filter + #---------SVC4642----------------------------- + #%1 - asset type + #%2 - filter NO_ASSETS_FOUND: { code: 404, message: "No %1 were found to match criteria %2", messageId: "SVC4642" } -#---------SVC4643------------------------------ -# %1 - "Resource"/"Product" -# %2 - "sub-category name" -# %3 - "category name" + #---------SVC4643------------------------------ + # %1 - "Resource"/"Product" + # %2 - "sub-category name" + # %3 - "category name" COMPONENT_SUB_CATEGORY_NOT_FOUND_FOR_CATEGORY: { code: 404, message: "Error: %1 sub-category '%2' not found under category '%3'.", messageId: "SVC4643" } -#---------SVC4644------------------------------ -# %1 - Format + #---------SVC4644------------------------------ + # %1 - Format CORRUPTED_FORMAT: { code: 400, message: "Error: %1 format is corrupted.", messageId: "SVC4644" } -#---------SVC4645------------------------------ -# %1 - "groupType" + #---------SVC4645------------------------------ + # %1 - "groupType" INVALID_VF_MODULE_TYPE: { code: 400, message: "Error: Invalid group type '%1' (should be VfModule).", messageId: "SVC4645" } -#---------SVC4646------------------------------ -# %1 - "groupName" + #---------SVC4646------------------------------ + # %1 - "groupName" INVALID_VF_MODULE_NAME: { code: 400, message: "Error: Invalid Content. Group name '%1' contains invalid characters", messageId: "SVC4646" } -#---------SVC4647------------------------------ -# %1 - "modifiedName" + #---------SVC4647------------------------------ + # %1 - "modifiedName" INVALID_VF_MODULE_NAME_MODIFICATION: { code: 400, message: "Error: Invalid VF Module name modification, can not modify '%1'", messageId: "SVC4647" } -#---------SVC4648------------------------------ -# %1 - "inputId" -# %2 - "componentId" + #---------SVC4648------------------------------ + # %1 - "inputId" + # %2 - "componentId" INPUT_IS_NOT_CHILD_OF_COMPONENT: { code: 400, message: "Error: Input id: '%1' is not child of component id: '%2'", messageId: "SVC4648" } -#---------SVC4649------------------------------ -# %1 - "groupName" + #---------SVC4649------------------------------ + # %1 - "groupName" GROUP_HAS_CYCLIC_DEPENDENCY: { code: 400, message: "Error: The group '%1' has cyclic dependency", messageId: "SVC4649" } -#---------SVC4650------------------------------ -# %1 - "Component Type" -# %2 - <ServiceName> -# %3 - error description + #---------SVC4650------------------------------ + # %1 - "Component Type" + # %2 - <ServiceName> + # %3 - error description AAI_ARTIFACT_GENERATION_FAILED: { code: 500, message: "Error: %1 %2 automatic generation of artifacts failed. Description: %3", messageId: "SVC4650" } -#---------SVC4651------------------------------ + #---------SVC4651------------------------------ PARENT_RESOURCE_DOES_NOT_EXTEND: { code: 400, message: "Error: Once resource is certified, derived_from can be changed only to a sibling", messageId: "SVC4651" } -#---------SVC4652------------------------------ -# %1 - resource/service + #---------SVC4652------------------------------ + # %1 - resource/service COMPONENT_INVALID_SUBCATEGORY: { code: 400, message: "Error: Invalid Content. Invalid %1 sub category.", messageId: "SVC4652" } -#---------SVC4653------------------------------ -# %1 - group instance uniqueId -# %2 - service uniqueId + #---------SVC4653------------------------------ + # %1 - group instance uniqueId + # %2 - service uniqueId GROUP_INSTANCE_NOT_FOUND_ON_COMPONENT_INSTANCE: { code: 404, message: "Error: Requested group instance %1 was not found on component %2.", messageId: "SVC4653" } -#---------SVC4654------------------------------ -# %1 - group property name -# %2 - valid min limit value -# %3 - valid max limit value + #---------SVC4654------------------------------ + # %1 - group property name + # %2 - valid min limit value + # %3 - valid max limit value INVALID_GROUP_MIN_MAX_INSTANCES_PROPERTY_VALUE: { code: 400, message: "Error: Value of %1 must be not higher than %2, and not lower than %3.", messageId: "SVC4654" } -#---------SVC4655------------------------------ -# %1 - group property name -# %2 - valid min limit value -# %3 - valid max limit value + #---------SVC4655------------------------------ + # %1 - group property name + # %2 - valid min limit value + # %3 - valid max limit value INVALID_GROUP_INITIAL_COUNT_PROPERTY_VALUE: { code: 400, message: "Error: Value of %1 must be between %2 and %3.", messageId: "SVC4655" } -#---------SVC4656------------------------------ -# %1 - group property name -# %2 - lower/higher -# %3 - valid max/min value + #---------SVC4656------------------------------ + # %1 - group property name + # %2 - lower/higher + # %3 - valid max/min value INVALID_GROUP_PROPERTY_VALUE_LOWER_HIGHER: { code: 400, message: "Error: Value of %1 must be %2 or equals to %3.", messageId: "SVC4656" } -#---------SVC4657------------------------------ -# %1 - certificationRequest / startTesting + #---------SVC4657------------------------------ + # %1 - certificationRequest / startTesting RESOURCE_VFCMT_LIFECYCLE_STATE_NOT_VALID: { code: 400, message: "Error - Lifecycle state %1 is not valid for resource of type VFCMT", messageId: "SVC4657" } -#---------SVC4658------------------------------ -# %1 – asset type [service / resource ] -# %2 – main asset uuid -# %3 – not found asset type [service / resource] -# %4 – not found asset name + #---------SVC4658------------------------------ + # %1 – asset type [service / resource ] + # %2 – main asset uuid + # %3 – not found asset type [service / resource] + # %4 – not found asset name ASSET_NOT_FOUND_DURING_CSAR_CREATION: { code: 400, message: "Error: CSAR packaging failed for %1 %2. %3 %4 was not found", messageId: "SVC4658" } -#---------SVC4659------------------------------ -# %1 – asset type [service / resource ] -# %2 – main asset uuid -# %3 – Artifact name -# %4 – Artifact uuid + #---------SVC4659------------------------------ + # %1 – asset type [service / resource ] + # %2 – main asset uuid + # %3 – Artifact name + # %4 – Artifact uuid ARTIFACT_PAYLOAD_NOT_FOUND_DURING_CSAR_CREATION: { code: 400, message: "Error: CSAR packaging failed for %1 %2. Artifact %3 [%4] was not found", messageId: "SVC4659" } -#---------SVC4660------------------------------ -# %1 - assetType -# %2 - matching generic node type name + #---------SVC4660------------------------------ + # %1 - assetType + # %2 - matching generic node type name GENERIC_TYPE_NOT_FOUND: { code: 404, message: "Creation of %1 failed. Generic type %2 was not found", messageId: "SVC4660" } -#---------SVC4661------------------------------ -# %1 - assetType -# %2 - matching generic node type name + #---------SVC4661------------------------------ + # %1 - assetType + # %2 - matching generic node type name TOSCA_SCHEMA_FILES_NOT_FOUND: { code: 400, message: "Error: CSAR packaging failed. TOSCA schema files for SDC-Version: %1 and Conformance-Level %2 were not found", messageId: "SVC4661" } -#---------SVC4662------------------------------ -# %1 - file name -# %2 - parser error + #---------SVC4662------------------------------ + # %1 - file name + # %2 - parser error TOSCA_PARSE_ERROR: { code: 400, message: "Error: Invalid TOSCA template in file %1. %2", messageId: "SVC4662" } -#---------SVC4663------------------------------ -# %1 - max length + #---------SVC4663------------------------------ + # %1 - max length RESOURCE_VENDOR_MODEL_NUMBER_EXCEEDS_LIMIT: { code: 400, message: "Error: Invalid Content. Resource vendor model number exceeds limit of %1 characters.", messageId: "SVC4663" } -#---------SVC4664------------------------------ + #---------SVC4664------------------------------ INVALID_RESOURCE_VENDOR_MODEL_NUMBER: { code: 400, message: 'Error: Invalid Content. Resource vendor model number is not allowed to contain characters like <>:"\/|?* and space characters other than regular space.', messageId: "SVC4664" } -#---------SVC4665------------------------------ -# %1 - max length - SERVICE_TYPE_EXCEEDS_LIMIT: { - code: 400, - message: "Error: Invalid Content. Service type exceeds limit of %1 characters.", - messageId: "SVC4665" - } -#---------SVC4666------------------------------ - INVALID_SERVICE_TYPE: { - code: 400, - message: 'Error: Invalid Content. Serivce type is not allowed to contain characters like <>:"\/|?* and space characters other than regular space.', - messageId: "SVC4666" - } -#---------SVC4667------------------------------ -# %1 - max length - SERVICE_ROLE_EXCEEDS_LIMIT: { - code: 400, - message: "Error: Invalid Content. Service role exceeds limit of %1 characters.", - messageId: "SVC4667" - } -#---------SVC4668------------------------------ - INVALID_SERVICE_ROLE: { - code: 400, - message: 'Error: Invalid Content. Service role is not allowed to contain characters like <>:"\/|?* and space characters other than regular space.', - messageId: "SVC4668" - } -#---------SVC4669----------------------------- + #---------SVC4669----------------------------- INVALID_RESOURCE_TYPE: { code: 400, message: "Error: Invalid resource type.", messageId: "SVC4669" } -#---------SVC4670------------------------------ + #---------SVC4670------------------------------ ARTIFACT_NAME_INVALID: { code: 400, message: "Error: Artifact name is invalid.", messageId: "SVC4670" } -#---------SVC4671------------------------------ -# %1 - VSP name -# %2 - VFC name + #---------SVC4671------------------------------ + # %1 - VSP name + # %2 - VFC name CFVC_LOOP_DETECTED: { code: 400, message: 'Error: VSP %1 cannot be imported. The VSP contains internal loop in VFC %2', messageId: "SVC4671" } -#---------SVC4672------------------------------ -# %1 - capability uniqueId -# %2 - instance uniqueId -# %3 - container uniqueId + #---------SVC4672------------------------------ + # %1 - capability uniqueId + # %2 - instance uniqueId + # %3 - container uniqueId CAPABILITY_OF_INSTANCE_NOT_FOUND_ON_CONTAINER: { code: 404, message: "Error: Requested capability %1 of instance %2 was not found on the container %3.", messageId: "SVC4672" } -#---------SVC4673------------------------------ -# %1 - requirement uniqueId -# %2 - instance uniqueId -# %3 - container uniqueId + #---------SVC4673------------------------------ + # %1 - requirement uniqueId + # %2 - instance uniqueId + # %3 - container uniqueId REQUIREMENT_OF_INSTANCE_NOT_FOUND_ON_CONTAINER: { code: 404, message: "Error: Requested requirement %1 of instance %2 was not found on the container %3.", messageId: "SVC4673" } -#---------SVC4674----------------------------- -# %1 - relation Id -# %2 - container uniqueId + #---------SVC4674----------------------------- + # %1 - relation Id + # %2 - container uniqueId RELATION_NOT_FOUND: { code: 404, message: "Error: Requested relation %1 was not found on the container %2.", @@ -1883,168 +1844,168 @@ errors: } -#---------SVC4675------------------------------ + #---------SVC4675------------------------------ INVALID_SERVICE_STATE: { code: 409, message: "Service state is invalid for this action", messageId: "SVC4675" } -#---------SVC4676------------------------------ + #---------SVC4676------------------------------ INVALID_RESPONSE_FROM_PROXY: { code: 502, message: "Error: The server was acting as a gateway or proxy and received an invalid response from the upstream server", messageId: "SVC4676" } -#---------SVC4677------------------------------ + #---------SVC4677------------------------------ API_RESOURCE_NOT_FOUND: { code: 404, message: "Error: Requested '%1' was not found.", messageId: "SVC4677" } -#---------SVC4678------------------------------ + #---------SVC4678------------------------------ BAD_REQUEST_MISSING_RESOURCE: { code: 400, message: "Error: The required resource name/id is missing in the request", messageId: "SVC4678" } -#---------SVC4679------------------------------ -# %1 forwarding path name maximum length + #---------SVC4679------------------------------ + # %1 forwarding path name maximum length FORWARDING_PATH_NAME_MAXIMUM_LENGTH: { code: 400, message: "Forwarding path name too long, , maximum allowed 200 characters : '%1'.", messageId: "SVC4679" } -#---------SVC4680------------------------------ -# %1 Forwarding path name already in use + #---------SVC4680------------------------------ + # %1 Forwarding path name already in use FORWARDING_PATH_NAME_ALREADY_IN_USE: { code: 400, message: "Forwarding path name already in use : '%1'.", messageId: "SVC4680" } -#---------SVC4681------------------------------ -# %1 Forwarding path name empty + #---------SVC4681------------------------------ + # %1 Forwarding path name empty FORWARDING_PATH_NAME_EMPTY: { code: 400, message: "Forwarding Path Name can't be empty .", messageId: "SVC4681" } -#---------SVC4682------------------------------ -# %1 - resource uniqueId -# %2 - resource component type + #---------SVC4682------------------------------ + # %1 - resource uniqueId + # %2 - resource component type RESOURCE_CANNOT_CONTAIN_POLICIES: { code: 400, message: "Error: The resource %1 type of %2 cannot contain policies.", messageId: "SVC4682" } -#---------SVC4683------------------------------ -# %1 - policy uniqueId -# %2 - component uniqueId + #---------SVC4683------------------------------ + # %1 - policy uniqueId + # %2 - component uniqueId POLICY_NOT_FOUND_ON_CONTAINER: { code: 404, message: "Error: Requested policy %1 was not found on the container %2.", messageId: "SVC4683" -} -#---------SVC4684------------------------------ -# %1 - policy name + } + #---------SVC4684------------------------------ + # %1 - policy name INVALID_POLICY_NAME: { code: 400, message: "Error: Invalid policy name %1 received.", messageId: "SVC4684" } -#---------SVC4685------------------------------ -# %1 - policy name + #---------SVC4685------------------------------ + # %1 - policy name POLICY_NAME_ALREADY_EXIST: { code: 409, message: "Error: The policy with the name %1 already exists.", messageId: "SVC4685" } -#---------SVC4686------------------------------ -# %1 - policy name + #---------SVC4686------------------------------ + # %1 - policy name POLICY_TARGET_DOES_NOT_EXIST: { code: 400, message: "Error: The targets %1 are not valid, all targets have to be on the topologyTemplate.", messageId: "SVC4686" } -#---------SVC4687------------------------------ -# %1 - policy type -# %2 - component type + #---------SVC4687------------------------------ + # %1 - policy type + # %2 - component type EXCLUDED_POLICY_TYPE: { code: 400, message: "Error: The policy of the type %1 excluded to add to a component of the type %2.", messageId: "SVC4687" } #---------SVC4688------------------------------ -# %1 - group type -# %2 - component type + # %1 - group type + # %2 - component type GROUP_TYPE_ILLEGAL_PER_COMPONENT: { code: 400, message: "Error: group type %1 not permitted in component of type %2", messageId: "SVC4688" } #---------SVC4689------------------------------ -# %1 - group type -# %2 - component type + # %1 - group type + # %2 - component type POLICY_TARGET_TYPE_DOES_NOT_EXIST: { code: 400, message: "Error: The target types %1 are not valid.", messageId: "SVC4689" } -#---------SVC4690------------------------------ -# %1 forwarding path protocol maximum length + #---------SVC4690------------------------------ + # %1 forwarding path protocol maximum length FORWARDING_PATH_PROTOCOL_MAXIMUM_LENGTH: { code: 400, message: "Forwarding path protocol too long, , maximum allowed 200 characters : '%1'.", messageId: "SVC4690" } -#---------SVC4691------------------------------ -# %1 forwarding path destination port maximum length + #---------SVC4691------------------------------ + # %1 forwarding path destination port maximum length FORWARDING_PATH_DESTINATION_PORT_MAXIMUM_LENGTH: { code: 400, message: "Forwarding path destination port too long, , maximum allowed 200 characters : '%1'.", messageId: "SVC4691" } -#---------POL4692------------------------------ + #---------POL4692------------------------------ MISSING_OLD_COMPONENT_INSTANCE: { code: 400 , message: "Error: Missing 'componentInstanceId' HTTP param.", messageId: "POL4692" } -#---------POL4693------------------------------ + #---------POL4693------------------------------ MISSING_NEW_COMPONENT_INSTANCE: { code: 400 , message: "Error: Missing 'newComponentInstanceId' HTTP param.", messageId: "POL4693" } -#---------SVC4694------------------------------ -# %1 External Reference Value + #---------SVC4694------------------------------ + # %1 External Reference Value EXT_REF_NOT_FOUND: { code: 404, message: "Error: External Reference '%1' was not found.", messageId: "SVC4694" } -#---------SVC4695----------------------------- -# %1 - Interface Operation Name + #---------SVC4695----------------------------- + # %1 - Interface Operation Name INTERFACE_OPERATION_NAME_ALREADY_IN_USE: { code: 409, message: "Error: Interface Operation name '%1' already in use, Your current changes will not be saved.", messageId: "SVC4695" } -#---------SVC4696----------------------------- -# %1 - Interface Operation Name + #---------SVC4696----------------------------- + # %1 - Interface Operation Name INTERFACE_OPERATION_NAME_INVALID: { code: 400, message: "Error: Interface Operation name '%1' is Invalid, Operation name should not contain special character, space and should not be greater than 200 characters.", messageId: "SVC4696" } -#---------SVC4697----------------------------- + #---------SVC4697----------------------------- INTERFACE_OPERATION_NAME_MANDATORY: { code: 400, message: "Error: Interface Operation name is mandatory, Operation name can't be empty.", @@ -2057,14 +2018,14 @@ errors: message: "Error: Invalid input, only one operation is allowed in local interface type '%1'.", messageId: "SVC4698" } -#---------SVC4699----------------------------- -# %1 - Interface Operation input parameter name + #---------SVC4699----------------------------- + # %1 - Interface Operation input parameter name INTERFACE_OPERATION_INPUT_NAME_ALREADY_IN_USE: { - code: 400, - message: "Error: Interface Operation input parameter name '%1' already in use, Your current changes will not be saved.", - messageId: "SVC4699" + code: 400, + message: "Error: Interface Operation input parameter name '%1' already in use, Your current changes will not be saved.", + messageId: "SVC4699" } -#---------SVC4700----------------------------- + #---------SVC4700----------------------------- INTERFACE_OPERATION_INPUT_NAME_MANDATORY: { code: 400, message: "Error: Interface operation input parameter name should not be empty.", @@ -2077,61 +2038,68 @@ errors: message: "Error: Interface operation not found in the component '%1'.", messageId: "SVC4701" } -#---------SVC4702----------------------------- + #---------SVC4702----------------------------- INTERFACE_OPERATION_NOT_DELETED: { code: 400, message: "Error: Failed to delete interface operation.", messageId: "SVC4702" } -#-----------SVC4692--------------------------- + #-----------SVC4692--------------------------- RESOURCE_LIFECYCLE_STATE_NOT_VALID: { code: 400, message: "Error: Lifecycle state %1 is not valid for resource", messageId: "SVC4692" } -#-----------SVC4693--------------------------- -#%1 - component name + #-----------SVC4693--------------------------- + #%1 - component name COMPONENT_IS_ARCHIVED: { code: 400, - message: "Error: Component %1 is arhived", + message: "Error: Component %1 is archived", messageId: "SVC4693" } -#-----------SVC4703--------------------------- -#%1 - component name + #-----------SVC4703--------------------------- + #%1 - component name COMPONENT_IS_NOT_HIHGEST_CERTIFIED: { code: 400, message: "Error: Component %1 is not highest certified", messageId: "SVC4703" } -#---------SVC4704------------------------------ -# %1 - "service"/"VF" -# %2 - "Resource name" + #---------SVC4704------------------------------ + # %1 - "service"/"VF" + # %2 - "Resource name" ARCHIVED_ORIGINS_FOUND: { code: 403, message: "Error: Action is not permitted as your '%1' '%2' includes archived resources", messageId: "SVC4704" } -#---------SVC4705------------------------------ -# %1-artifact name + #---------SVC4705------------------------------ + # %1-artifact name ARTIFACT_PAYLOAD_EMPTY: { code: 400, message: "Error: Invalid content. Uploaded file %1 is empty. Please retry with the correct file.", messageId: "SVC4705" } -#---------SVC4706------------------------------ -# %1-input(s) name(s) string + #---------SVC4800------------------------------ + # %1 - "component id" + UPDATE_CATALOG_FAILED: { + code: 403, + message: "Error: update catalog for component '%1' failed.", + messageId: "SVC4800" + } + #---------SVC4706------------------------------ + # %1-input(s) name(s) string INPUTS_NOT_FOUND: { code: 400, message: "Error: missing input value(s) %1.", messageId: "SVC4706" } #---------SVC4707----------------------------- -# %1 – asset type [service / resource ] -# %2 – main asset uuid + # %1 – asset type [service / resource ] + # %2 – main asset uuid ERROR_DURING_CSAR_CREATION: { - code: 404, - message: "Error: CSAR packaging failed for %1 %2.", - messageId: "SVC4706" + code: 404, + message: "Error: CSAR packaging failed for %1 %2.", + messageId: "SVC4706" } #---------SVC4708----------------------------- # %1 - Interface Operation input property name, component type @@ -2160,18 +2128,128 @@ errors: message: "Error: Interface not found in the component '%1'.", messageId: "SVC4711" } + #---------SVC4709----------------------------- + INVALID_PROPERTY_CONSTRAINTS: { + # %1 – property constraints type + # %2 – received property constraints value + # %3 – property type + code: 400, + message: "Error: Invalid %1 %2 for the type %3 have been received.", + messageId: "SVC4709" + } + #---------SVC4710----------------------------- + INVALID_PROPERTY_CONSTRAINTS_FORMAT: { + # %1 – received property constraints json section + code: 400, + message: "Error: Invalid format of the received property constraints section: %1. The property constraints section should be a list.", + messageId: "SVC4710" + } + #---------SVC4711----------------------------- + CANNOT_DELETE_VALID_VALUES: { + # %1 – property constraints type + # %2 – missing valid values + code: 400, + message: "Error: Deletion of existing %1 is not permitted on an update. Missing values: %2", + messageId: "SVC4711" + } + #---------SVC4712------------------------------ + MISSING_PROPERTY_NAME: { + code: 400 , + message: "Error: Invalid Content. Missing mandatory parameter 'name'." , + messageId: "SVC4712" + } + #---------SVC4713------------------------------ + MISSING_PROPERTY_VALUE: { + code: 400 , + message: "Error: Invalid Content. Missing mandatory parameter 'value'." , + messageId: "SVC4713" + } + + #---------SVC4712--------------------------- + INVALID_INSTANTIATION_TYPE: { + code: 400, + message: "Invalid instantiationType: %1", + messageId: "SVC4712" + } + + #----------SVC4713--------------------------- + MISSING_ECOMP_GENERATED_NAMING: { + code: 400, + message: "Missing ecompGeneratedNaming property", + messageId: "SVC4713" + } + + #-----------SVC4714-------------------------- + NAMING_POLICY_EXCEEDS_LIMIT: { + code: 400, + message: "Error: Invalid Content. Naming policy exceeds limit of %1 characters.", + messageId: "SVC4714" + } + + #---------SVC4715------------------------------ + INVALID_NAMING_POLICY: { + code: 400, + message: 'Error: Invalid Content. Naming policy is not allowed to contain characters like <>:"\/|?* and space characters other than regular space.', + messageId: "SVC4715" + } + + #---------SVC4716------------------------------ + INVALID_ENVIRONMENT_CONTEXT: { + code: 400, + message: 'Error: Invalid Environment context: %1', + messageId: "SVC4716" + } + + #---------SVC4717------------------------------ + UNSUPPORTED_DISTRIBUTION_STATUS: { + code: 400, + message: 'Error: Unsupported distribution action: %1', + messageId: "SVC4717" + } + #---------SVC4718------------------------------ + CONTAINER_CANNOT_CONTAIN_INSTANCE: { + # %1 - "container type" + # %2- “component type” + code: 400 , + message: "Error : %1 can’t contain component instance %2" , + messageId: "SVC4718" + } + #---------SVC4719------------------------------ + CONTAINER_CANNOT_CONTAIN_COMPONENT_IN_STATE: { + # %1 - "container type" + # %2- "lifecycle state" + code: 400 , + message: "Error: Container %1 can’t contain component in state %2" , + messageId: "SVC4719" + } + + #---------SVC4720------------------------------ + MISSING_MANDATORY_PROPERTY: { + # %1 - "property name" + code: 400 , + message: "Error: Missing mandatory %1 property" , + messageId: "SVC4720" + } + + #---------SVC4721------------------------------ + MANDATORY_PROPERTY_MISSING_VALUE: { + # %1 - "property name" + code: 400 , + message: "Error: Missing value for the mandatory %1 property" , + messageId: "SVC4721" + } #---------SVC4712----------------------------- INTERFACE_LIFECYCLE_TYPES_NOT_FOUND: { - code: 404, - message: "Error: Interface Lifecycle types not found.", - messageId: "SVC4712" + code: 404, + message: "Error: Interface Lifecycle types not found.", + messageId: "SVC4712" } #---------SVC4713----------------------------- # %1 - Interface Operation Name INTERFACE_OPERATION_INVALID_FOR_GLOBAL_TYPE: { - code: 400, - message: "Error: Invalid input, only pre-defined operation names are allowed in global interface type '%1'", - messageId: "SVC4713" + code: 400, + message: "Error: Invalid input, only pre-defined operation names are allowed in global interface type '%1'", + messageId: "SVC4713" } #---------SVC4714----------------------------- @@ -2284,9 +2362,23 @@ errors: } #---------SVC4729------------------------------ - # %1 - resource Id + # %1 - resource Id CAPABILITY_PROPERTIES_NOT_FOUND: { code: 400, message: "Error: Capability properties not found in the resource '%1'.", messageId: "SVC4729" - }
\ No newline at end of file + } +#---------SVC4730------------------------------ + # %1 - property name + PROPERTY_EXCEEDS_LIMIT: { + code: 400, + message: "Error: Invalid Content. %1 exceeds limit.", + messageId: "SVC4722" + } +#---------SVC4731------------------------------ + INVALID_PROPERY: { + # %1 - property name + code: 400, + message: 'Error: Invalid Content. %1 has invalid format.', + messageId: "SVC4723" + } diff --git a/catalog-be/src/main/resources/config/logback.xml b/catalog-be/src/main/resources/config/logback.xml index 7044d345c5..2098836dd3 100644 --- a/catalog-be/src/main/resources/config/logback.xml +++ b/catalog-be/src/main/resources/config/logback.xml @@ -1,315 +1,253 @@ <?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="5 seconds"> - <property scope="system" name="ECOMP-component-name" value="SDC" /> - <property scope="system" name="ECOMP-subcomponent-name" value="SDC-BE" /> - <property file="${config.home}/catalog-be/configuration.yaml" /> - <property scope="context" name="enable-all-log" value="false" /> - - <!-- value used by pattern field list (| - is inter-field separator, || - unavailable or not applicable field value) (m - mandatory, o- optional)--> - <!--timestamp(m)| requestID(m)| serviceInstanceID(o)| threadID(m)| physicalServerName(o)| serviceName(m)| userID(m)| logLevel(m)| severity(o)| serverIpAddress(m)| serverName(m)| clientIpAddress(o)| className(m)| timer(o)| detailedMessage(o)--> - <property name="default-log-pattern" - value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{BeginTimestamp}|%X{EndTimestamp}|%X{uuid}|%X{serviceInstanceID}|%thread|%X{ServerName}|%X{ServiceName}|${ECOMP-subcomponent-name}|%X{userId}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%level|%X{alarmSeverity}|%X{localAddr}|%X{ElapsedTime}|${beFqdn}|%X{remoteAddr}|%logger{35}|%X{timer}|ActivityType=<%M>, Desc=<%msg>%n" /> - - <property name="error-log-pattern" - value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{ErrorCategory}|%X{ErrorCode}|%msg|%n" /> - - <property name="audit-log-pattern" value="%X{AuditBeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|ActivityType=<%M>, Desc=<%msg>%n" /> - - <property name="metric-log-pattern" value="%X{MetricBeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|ActivityType=<%M>, Desc=<%msg>%n" /> - - <property name="debug-log-pattern" value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%msg|^\n%n"/> - - <!-- All log --> - <if condition='property("enable-all-log").equalsIgnoreCase("true")'> - <then> - <appender name="ALL_ROLLING" - class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/all.log - </file> - - <rollingPolicy - class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> - <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/all.log.%i - </fileNamePattern> - <minIndex>1</minIndex> - <maxIndex>10</maxIndex> - </rollingPolicy> - - <triggeringPolicy - class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> - <maxFileSize>20MB</maxFileSize> - </triggeringPolicy> - <encoder> - <pattern>${default-log-pattern}</pattern> - </encoder> - </appender> - - <appender name="ASYNC_ALL" class="ch.qos.logback.classic.AsyncAppender"> - <appender-ref ref="ALL_ROLLING" /> - </appender> - </then> - </if> - - <!-- Error log --> - <appender name="ERROR_ROLLING" - class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/error.log - </file> - - <!-- Audit messages filter - deny audit messages --> - <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> - <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator"> - <marker>AUDIT_MARKER</marker> - </evaluator> - <onMismatch>NEUTRAL</onMismatch> - <onMatch>DENY</onMatch> - </filter> - - <!-- Transaction messages filter - deny Transaction messages --> - <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> - <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator"> - <marker>TRANSACTION_MARKER</marker> - </evaluator> - <onMismatch>NEUTRAL</onMismatch> - <onMatch>DENY</onMatch> - </filter> - - <!-- deny all events with a level below INFO, that is TRACE and DEBUG --> - <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> - <level>INFO</level> - </filter> - - <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> - <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/error.log.%i - </fileNamePattern> - <minIndex>1</minIndex> - <maxIndex>10</maxIndex> - </rollingPolicy> - - <triggeringPolicy - class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> - <maxFileSize>20MB</maxFileSize> - </triggeringPolicy> - <encoder> - <pattern>${error-log-pattern}</pattern> - </encoder> - </appender> - - <!-- Debug log --> - <appender name="DEBUG_ROLLING" - class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/debug.log - </file> - - <!-- No need to deny audit messages - they are INFO only, will be denied - anyway --> - <!-- Transaction messages filter - deny Transaction messages, there are - some DEBUG level messages among them --> - <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> - <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator"> - <marker>TRANSACTION_MARKER</marker> - </evaluator> - <onMismatch>NEUTRAL</onMismatch> - <onMatch>DENY</onMatch> - </filter> - - <!-- accept DEBUG and TRACE level --> - <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> - <evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator"> - <expression> - e.level.toInt() <= DEBUG.toInt() - </expression> - </evaluator> - <OnMismatch>DENY</OnMismatch> - <!--<OnMatch>NEUTRAL</OnMatch>--> - <OnMatch>ACCEPT</OnMatch> - </filter> - - <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> - <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/debug.log.%i - </fileNamePattern> - <minIndex>1</minIndex> - <maxIndex>10</maxIndex> - </rollingPolicy> - - <triggeringPolicy - class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> - <maxFileSize>20MB</maxFileSize> - </triggeringPolicy> - <encoder> - <pattern>${debug-log-pattern}</pattern> - </encoder> - </appender> - - - <!-- ASDC debug by package--> - <appender name="PACKAGE_DEBUG_ROLLING" - class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/debug_by_package.log - </file> - - <!-- No need to deny audit messages - they are INFO only, will be denied - anyway --> - <!-- Transaction messages filter - deny Transaction messages, there are - some DEBUG level messages among them --> - <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> - <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator"> - <marker>TRANSACTION_MARKER</marker> - </evaluator> - <onMismatch>NEUTRAL</onMismatch> - <onMatch>DENY</onMatch> - </filter> - - <!-- accept DEBUG and TRACE level --> - <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> - <evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator"> - <expression> - e.level.toInt() <= DEBUG.toInt() - </expression> - </evaluator> - <OnMismatch>DENY</OnMismatch> - <OnMatch>NEUTRAL</OnMatch> - </filter> - - <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> - <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/debug_by_package.log.%i - </fileNamePattern> - <minIndex>1</minIndex> - <maxIndex>10</maxIndex> - </rollingPolicy> - - <triggeringPolicy - class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> - <maxFileSize>20MB</maxFileSize> - </triggeringPolicy> - <encoder> - <pattern>${debug-log-pattern}</pattern> - </encoder> - </appender> - - <!-- Audit log --> - <appender name="AUDIT_ROLLING" - class="ch.qos.logback.core.rolling.RollingFileAppender"> - - <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/audit.log - </file> - - <!-- Audit messages filter - accept audit messages --> - <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> - <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator"> - <marker>AUDIT_MARKER</marker> - <marker>AUDIT</marker> - </evaluator> - <onMismatch>DENY</onMismatch> - <onMatch>ACCEPT</onMatch> - </filter> - - <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> - <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/audit.log.%i - </fileNamePattern> - <minIndex>1</minIndex> - <maxIndex>10</maxIndex> - </rollingPolicy> - - <triggeringPolicy - class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> - <maxFileSize>20MB</maxFileSize> - </triggeringPolicy> - <encoder> - <pattern>${audit-log-pattern}</pattern> - </encoder> - </appender> - - <!-- Metrics log --> - <appender name="METRICS_ROLLING" - class="ch.qos.logback.core.rolling.RollingFileAppender"> - - <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/metrics.log - </file> - - <!-- Metric messages filter - accept metric messages --> - <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> - <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator"> - <marker>METRICS</marker> - </evaluator> - <onMismatch>DENY</onMismatch> - <onMatch>ACCEPT</onMatch> - </filter> - - <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> - <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/metrics.log.%i - </fileNamePattern> - <minIndex>1</minIndex> - <maxIndex>10</maxIndex> - </rollingPolicy> - - <triggeringPolicy - class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> - <maxFileSize>20MB</maxFileSize> - </triggeringPolicy> - <encoder> - <pattern>${metric-log-pattern}</pattern> - </encoder> - </appender> - - <!-- SdncTransaction log --> - <appender name="TRANSACTION_ROLLING" - class="ch.qos.logback.core.rolling.RollingFileAppender"> - - <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/transaction.log - </file> - - <!-- Transaction messages filter - accept audit messages --> - <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> - <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator"> - <marker>TRANSACTION_MARKER</marker> - </evaluator> - <onMismatch>DENY</onMismatch> - <onMatch>ACCEPT</onMatch> - </filter> - - <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> - <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/transaction.log.%i - </fileNamePattern> - <minIndex>1</minIndex> - <maxIndex>10</maxIndex> - </rollingPolicy> - - <triggeringPolicy - class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> - <maxFileSize>20MB</maxFileSize> - </triggeringPolicy> - <encoder> - <pattern>${default-log-pattern}</pattern> - </encoder> - </appender> - - <!-- Asynchronicity Configurations --> - <appender name="ASYNC_DEBUG" class="ch.qos.logback.classic.AsyncAppender"> - <appender-ref ref="DEBUG_ROLLING" /> - </appender> - - <appender name="ASYNC_TRANSACTION" class="ch.qos.logback.classic.AsyncAppender"> - <appender-ref ref="TRANSACTION_ROLLING" /> - </appender> - - <appender name="ASYNC_ERROR" class="ch.qos.logback.classic.AsyncAppender"> - <appender-ref ref="ERROR_ROLLING" /> - </appender> - - <root level="INFO"> - <appender-ref ref="ASYNC_ERROR" /> - <appender-ref ref="ASYNC_DEBUG" /> - <appender-ref ref="AUDIT_ROLLING" /> - <appender-ref ref="ASYNC_TRANSACTION" /> - <appender-ref ref="METRICS_ROLLING" /> - <if condition='property("enable-all-log").equalsIgnoreCase("true")'> - <then> - <appender-ref ref="ALL_ROLLING" /> - </then> - </if> - </root> - - <logger name="org.openecomp.sdc" level="INFO" /> -</configuration>
\ No newline at end of file + <property scope="system" name="ECOMP-component-name" value="SDC"/> + <property scope="system" name="ECOMP-subcomponent-name" value="SDC-BE"/> + <property file="${config.home}/catalog-be/configuration.yaml"/> + <property scope="context" name="enable-all-log" value="false"/> + <property name="p_msg" value="%replace(%replace(%replace(%replace(%msg){'\t','\\\\t'}){'\n', '\\\\n'}){'\\\|', '-'}){'\r','\\\\r'}"/> + <property name="p_ex" value="%replace(%replace(%replace(%replace(%exception{full}){'\t','\\\\t'}){'\n', '\\\\n'}){'\\\|', '-'}){'\r','\\\\r'}"/> + <property name="p_debugInfo" value="%replace(%replace(%replace(%replace(%thread#%level#%logger{35}#%msg){'\t','\\\\t'}){'\n', '\\\\n'}){'\\\|', '-'}){'\r','\\\\r'}"/> + + <property name="all-log-pattern" + value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{BeginTimestamp}|%X{EndTimestamp}|%X{uuid}|%X{serviceInstanceID}|%thread|%X{ServerName}|%X{ServiceName}|${ECOMP-subcomponent-name}|%X{userId}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceID}|%level|%X{alarmSeverity}|%X{localAddr}|%X{ElapsedTime}|${beFqdn}|%X{remoteAddr}|%logger{35}|%X{timer}|ActivityType=<%M>, Desc=<${p_msg}>%n"/> + + <property name="debug-log-pattern" + value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|${p_debugInfo} ${p_ex}|^\n%n%nopex"/> + + <property name="error-log-pattern" + value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{ErrorCategory}|%X{ErrorCode}|${p_msg} ${p_ex}|%n%nopex"/> + + <property name="audit-log-pattern" + value="%X{EntryTimestamp}|%X{LogTimestamp}|%X{RequestID}|%X{ServiceInstanceID}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{Severity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%logger{35}|%X{Unused}|%X{ProcessKey}|%marker|InvocationID=%X{InvocationID}|%X{CustomField3}|%X{CustomField4}|ActivityType=<%M>, Desc=<${p_msg}>%n"/> + + <property name="metric-log-pattern" + value="%X{InvokeTimestamp}|%X{EndTimestamp}|%X{RequestID}|%X{ServiceInstanceID}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceID}|%.-5level|%X{Severity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|||%X{ClassName}|%X{Unused}|%X{ProcessKey}|%marker|InvocationID=%X{OutgoingInvocationId}|%X{CustomField3}|%X{CustomField4}|ActivityType=<%M>, Desc=<%msg>%n" /> + + <property name="supportability-log-pattern" + value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{SupportablityComponentName}|%X{SupportablityAction}|%thread|%X{SupportablityComponentUUID}|%X{SupportablityStatus}|ActivityType=<%M>, Desc=<${p_msg}>%n"/> + + + <!-- All log --> + <if condition='property("enable-all-log").equalsIgnoreCase("true")'> + <then> + <appender name="ALL_ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/all.log</file> + + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/all.log.%i + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>10</maxIndex> + </rollingPolicy> + + <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>20MB</maxFileSize> + </triggeringPolicy> + + <encoder> + <pattern>${all-log-pattern}</pattern> + </encoder> + </appender> + </then> + </if> + + + <!-- Debug log --> + <appender name="DEBUG_ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/debug.log</file> + + <!-- Audit and Metric messages filter - deny audit and metric messages --> + <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> + <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator"> + <marker>ENTRY</marker> + <marker>EXIT</marker> + <marker>INVOKE</marker> + <marker>INVOKE-RETURN</marker> + <marker>INVOKE-SYNCHRONOUS</marker> + </evaluator> + <onMismatch>NEUTRAL</onMismatch> + <onMatch>DENY</onMatch> + </filter> + + <!-- accept INFO, DEBUG and TRACE level --> + <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> + <evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator"> + <expression> + e.level.toInt() <= INFO.toInt() + </expression> + </evaluator> + <OnMismatch>DENY</OnMismatch> + <OnMatch>ACCEPT</OnMatch> + </filter> + + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/debug.log.%i + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>10</maxIndex> + </rollingPolicy> + + <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>20MB</maxFileSize> + </triggeringPolicy> + + <encoder> + <pattern>${debug-log-pattern}</pattern> + </encoder> + </appender> + + + <!-- Error log --> + <appender name="ERROR_ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/error.log</file> + + <!-- deny all events with a level below WARN, that is INFO TRACE and DEBUG --> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>WARN</level> + </filter> + + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/error.log.%i + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>10</maxIndex> + </rollingPolicy> + + <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>20MB</maxFileSize> + </triggeringPolicy> + + <encoder> + <pattern>${error-log-pattern}</pattern> + </encoder> + </appender> + + + <!-- Audit log --> + <appender name="AUDIT_ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/audit.log</file> + + <!-- Audit messages filter - accept audit messages --> + <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> + <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator"> + <marker>ENTRY</marker> + <marker>EXIT</marker> + </evaluator> + <onMismatch>DENY</onMismatch> + <onMatch>ACCEPT</onMatch> + </filter> + + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/audit.log.%i + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>10</maxIndex> + </rollingPolicy> + + <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>20MB</maxFileSize> + </triggeringPolicy> + + <encoder> + <pattern>${audit-log-pattern}</pattern> + </encoder> + </appender> + + + <!-- Metrics log --> + <appender name="METRICS_ROLLING" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + + <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/metrics.log + </file> + + <!-- Metric messages filter - accept metric messages --> + <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> + <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator"> + <marker>INVOKE</marker> + <marker>INVOKE-RETURN</marker> + <marker>INVOKE-SYNCHRONOUS</marker> + </evaluator> + <onMismatch>DENY</onMismatch> + <onMatch>ACCEPT</onMatch> + </filter> + + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/metrics.log.%i + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>10</maxIndex> + </rollingPolicy> + + <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>20MB</maxFileSize> + </triggeringPolicy> + + <encoder> + <pattern>${metric-log-pattern}</pattern> + </encoder> + </appender> + + + <!-- Supporability log --> + <appender name="SUPPORTABILITY_ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender"> + + <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/supportability.log</file> + + <!-- Supporability messages filter - accept suppportability messages --> + <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> + <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator"> + <marker>SUPPORTABILITY_MARKER</marker> + </evaluator> + <onMismatch>DENY</onMismatch> + <onMatch>ACCEPT</onMatch> + </filter> + + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/supportability.log.%i + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>10</maxIndex> + </rollingPolicy> + + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>20MB</maxFileSize> + </triggeringPolicy> + + <encoder> + <pattern>${supportability-log-pattern}</pattern> + </encoder> + </appender> + + + <!-- Asynchronicity Configurations --> + <appender name="ASYNC_DEBUG" class="ch.qos.logback.classic.AsyncAppender"> + <appender-ref ref="DEBUG_ROLLING"/> + </appender> + + <appender name="ASYNC_ERROR" class="ch.qos.logback.classic.AsyncAppender"> + <appender-ref ref="ERROR_ROLLING"/> + </appender> + + <appender name="ASYNC_ALL" class="ch.qos.logback.classic.AsyncAppender"> + <appender-ref ref="ALL_ROLLING"/> + </appender> + + + <root level="INFO"> + <appender-ref ref="ASYNC_DEBUG"/> + <appender-ref ref="ASYNC_ERROR"/> + <appender-ref ref="AUDIT_ROLLING"/> + <appender-ref ref="METRICS_ROLLING"/> + <appender-ref ref="SUPPORTABILITY_ROLLING"/> + <if condition='property("enable-all-log").equalsIgnoreCase("true")'> + <then> + <appender-ref ref="ASYNC_ALL"/> + </then> + </if> + </root> + + <logger name="org.openecomp.sdc" level="INFO"/> +</configuration> diff --git a/catalog-be/src/main/resources/elasticsearch.yml b/catalog-be/src/main/resources/elasticsearch.yml deleted file mode 100644 index 71ccdbb8f5..0000000000 --- a/catalog-be/src/main/resources/elasticsearch.yml +++ /dev/null @@ -1,399 +0,0 @@ - -cluster.name: elasticsearch - -discovery.zen.ping.multicast.enabled: false -discovery.zen.ping.unicast.enabled: true -discovery.zen.ping.unicast.hosts: elasticsearch_host - -http.cors.enabled: true - -path.home: "/home/vagrant/catalog-be/config" - -elasticSearch.transportclient: true - -transport.client.initial_nodes: - - elasticsearch_host:9300 - -#shield.user: asdc:Aa12345 -#shield.ssl.keystore.path: "/vagrant/install/resources/catalog-be/keystore/es-client.jks" -#shield.ssl.keystore.password: Aa123456 -#shield.transport.ssl: true - -##################### Elasticsearch Configuration Example ##################### - -# This file contains an overview of various configuration settings, -# targeted at operations staff. Application developers should -# consult the guide at <http://elasticsearch.org/guide>. -# -# The installation procedure is covered at -# <http://elasticsearch.org/guide/en/elasticsearch/reference/current/setup.html>. -# -# Elasticsearch comes with reasonable defaults for most settings, -# so you can try it out without bothering with configuration. -# -# Most of the time, these defaults are just fine for running a production -# cluster. If you're fine-tuning your cluster, or wondering about the -# effect of certain configuration option, please _do ask_ on the -# mailing list or IRC channel [http://elasticsearch.org/community]. - -# Any element in the configuration can be replaced with environment variables -# by placing them in ${...} notation. For example: -# -# node.rack: ${RACK_ENV_VAR} - -# For information on supported formats and syntax for the config file, see -# <http://elasticsearch.org/guide/en/elasticsearch/reference/current/setup-configuration.html> - - -################################### Cluster ################################### - -# Cluster name identifies your cluster for auto-discovery. If you're running -# multiple clusters on the same network, make sure you're using unique names. -# -# cluster.name: elasticsearch - - -#################################### Node ##################################### - -# Node names are generated dynamically on startup, so you're relieved -# from configuring them manually. You can tie this node to a specific name: -# -# node.name: "Franz Kafka" - -# Every node can be configured to allow or deny being eligible as the master, -# and to allow or deny to store the data. -# -# Allow this node to be eligible as a master node (enabled by default): -# -# node.master: true -# -# Allow this node to store data (enabled by default): -# -# node.data: true - -# You can exploit these settings to design advanced cluster topologies. -# -# 1. You want this node to never become a master node, only to hold data. -# This will be the "workhorse" of your cluster. -# -# node.master: false -# node.data: true -# -# 2. You want this node to only serve as a master: to not store any data and -# to have free resources. This will be the "coordinator" of your cluster. -# -# node.master: true -# node.data: false -# -# 3. You want this node to be neither master nor data node, but -# to act as a "search load balancer" (fetching data from nodes, -# aggregating results, etc.) -# -# node.master: false -# node.data: false - -# Use the Cluster Health API [http://localhost:9200/_cluster/health], the -# Node Info API [http://localhost:9200/_nodes] or GUI tools -# such as <http://www.elasticsearch.org/overview/marvel/>, -# <http://github.com/karmi/elasticsearch-paramedic>, -# <http://github.com/lukas-vlcek/bigdesk> and -# <http://mobz.github.com/elasticsearch-head> to inspect the cluster state. - -# A node can have generic attributes associated with it, which can later be used -# for customized shard allocation filtering, or allocation awareness. An attribute -# is a simple key value pair, similar to node.key: value, here is an example: -# -# node.rack: rack314 - -# By default, multiple nodes are allowed to start from the same installation location -# to disable it, set the following: -# node.max_local_storage_nodes: 1 - - -#################################### Index #################################### - -# You can set a number of options (such as shard/replica options, mapping -# or analyzer definitions, translog settings, ...) for indices globally, -# in this file. -# -# Note, that it makes more sense to configure index settings specifically for -# a certain index, either when creating it or by using the index templates API. -# -# See <http://elasticsearch.org/guide/en/elasticsearch/reference/current/index-modules.html> and -# <http://elasticsearch.org/guide/en/elasticsearch/reference/current/indices-create-index.html> -# for more information. - -# Set the number of shards (splits) of an index (5 by default): -# -# index.number_of_shards: 5 - -# Set the number of replicas (additional copies) of an index (1 by default): -# -# index.number_of_replicas: 1 - -# Note, that for development on a local machine, with small indices, it usually -# makes sense to "disable" the distributed features: -# -index.number_of_shards: 1 -index.number_of_replicas: 0 - -# These settings directly affect the performance of index and search operations -# in your cluster. Assuming you have enough machines to hold shards and -# replicas, the rule of thumb is: -# -# 1. Having more *shards* enhances the _indexing_ performance and allows to -# _distribute_ a big index across machines. -# 2. Having more *replicas* enhances the _search_ performance and improves the -# cluster _availability_. -# -# The "number_of_shards" is a one-time setting for an index. -# -# The "number_of_replicas" can be increased or decreased anytime, -# by using the Index Update Settings API. -# -# Elasticsearch takes care about load balancing, relocating, gathering the -# results from nodes, etc. Experiment with different settings to fine-tune -# your setup. - -# Use the Index Status API (<http://localhost:9200/A/_status>) to inspect -# the index status. - - -#################################### Paths #################################### - -# Path to directory containing configuration (this file and logging.yml): -# -path.conf: /src/test/resources - -# Path to directory where to store index data allocated for this node. -# -path.data: target/esdata -# -# Can optionally include more than one location, causing data to be striped across -# the locations (a la RAID 0) on a file level, favouring locations with most free -# space on creation. For example: -# -# path.data: /path/to/data1,/path/to/data2 - -# Path to temporary files: -# -path.work: /target/eswork - -# Path to log files: -# -path.logs: /target/eslogs - -# Path to where plugins are installed: -# -# path.plugins: /path/to/plugins - - -#################################### Plugin ################################### - -# If a plugin listed here is not installed for current node, the node will not start. -# -# plugin.mandatory: mapper-attachments,lang-groovy - - -################################### Memory #################################### - -# Elasticsearch performs poorly when JVM starts swapping: you should ensure that -# it _never_ swaps. -# -# Set this property to true to lock the memory: -# -# bootstrap.mlockall: true - -# Make sure that the ES_MIN_MEM and ES_MAX_MEM environment variables are set -# to the same value, and that the machine has enough memory to allocate -# for Elasticsearch, leaving enough memory for the operating system itself. -# -# You should also make sure that the Elasticsearch process is allowed to lock -# the memory, eg. by using `ulimit -l unlimited`. - - -############################## Network And HTTP ############################### - -# Elasticsearch, by default, binds itself to the 0.0.0.0 address, and listens -# on port [9200-9300] for HTTP traffic and on port [9300-9400] for node-to-node -# communication. (the range means that if the port is busy, it will automatically -# try the next port). - -# Set the bind address specifically (IPv4 or IPv6): -# -# network.bind_host: 192.168.0.1 - -# Set the address other nodes will use to communicate with this node. If not -# set, it is automatically derived. It must point to an actual IP address. -# -# network.publish_host: 192.168.0.1 - -# Set both 'bind_host' and 'publish_host': -# -# network.host: 192.168.0.1 - -# Set a custom port for the node to node communication (9300 by default): -# -# transport.tcp.port: 9300 - -# Enable compression for all communication between nodes (disabled by default): -# -# transport.tcp.compress: true - -# Set a custom port to listen for HTTP traffic: -# -# http.port: 9200 - -# Set a custom allowed content length: -# -# http.max_content_length: 100mb - -# Disable HTTP completely: -# -# http.enabled: false - - -################################### Gateway ################################### - -# The gateway allows for persisting the cluster state between full cluster -# restarts. Every change to the state (such as adding an index) will be stored -# in the gateway, and when the cluster starts up for the first time, -# it will read its state from the gateway. - -# There are several types of gateway implementations. For more information, see -# <http://elasticsearch.org/guide/en/elasticsearch/reference/current/modules-gateway.html>. - -# The default gateway type is the "local" gateway (recommended): -# -# gateway.type: local - -# Settings below control how and when to start the initial recovery process on -# a full cluster restart (to reuse as much local data as possible when using shared -# gateway). - -# Allow recovery process after N nodes in a cluster are up: -# -gateway.recover_after_nodes: 1 - -# Set the timeout to initiate the recovery process, once the N nodes -# from previous setting are up (accepts time value): -# -# gateway.recover_after_time: 5m - -# Set how many nodes are expected in this cluster. Once these N nodes -# are up (and recover_after_nodes is met), begin recovery process immediately -# (without waiting for recover_after_time to expire): -# -gateway.expected_nodes: 1 - - -############################# Recovery Throttling ############################# - -# These settings allow to control the process of shards allocation between -# nodes during initial recovery, replica allocation, rebalancing, -# or when adding and removing nodes. - -# Set the number of concurrent recoveries happening on a node: -# -# 1. During the initial recovery -# -# cluster.routing.allocation.node_initial_primaries_recoveries: 4 -# -# 2. During adding/removing nodes, rebalancing, etc -# -# cluster.routing.allocation.node_concurrent_recoveries: 2 - -# Set to throttle throughput when recovering (eg. 100mb, by default 20mb): -# -# indices.recovery.max_bytes_per_sec: 20mb - -# Set to limit the number of open concurrent streams when -# recovering a shard from a peer: -# -# indices.recovery.concurrent_streams: 5 - - -################################## Discovery ################################## - -# Discovery infrastructure ensures nodes can be found within a cluster -# and master node is elected. Multicast discovery is the default. - -# Set to ensure a node sees N other master eligible nodes to be considered -# operational within the cluster. Its recommended to set it to a higher value -# than 1 when running more than 2 nodes in the cluster. -# -# discovery.zen.minimum_master_nodes: 1 - -# Set the time to wait for ping responses from other nodes when discovering. -# Set this option to a higher value on a slow or congested network -# to minimize discovery failures: -# -# discovery.zen.ping.timeout: 3s - -# For more information, see -# <http://elasticsearch.org/guide/en/elasticsearch/reference/current/modules-discovery-zen.html> - -# Unicast discovery allows to explicitly control which nodes will be used -# to discover the cluster. It can be used when multicast is not present, -# or to restrict the cluster communication-wise. -# -# 1. Disable multicast discovery (enabled by default): -# -# discovery.zen.ping.multicast.enabled: false -# -# 2. Configure an initial list of master nodes in the cluster -# to perform discovery when new nodes (master or data) are started: -# -# discovery.zen.ping.unicast.hosts: ["host1", "host2:port"] - -# EC2 discovery allows to use AWS EC2 API in order to perform discovery. -# -# You have to install the cloud-aws plugin for enabling the EC2 discovery. -# -# For more information, see -# <http://elasticsearch.org/guide/en/elasticsearch/reference/current/modules-discovery-ec2.html> -# -# See <http://elasticsearch.org/tutorials/elasticsearch-on-ec2/> -# for a step-by-step tutorial. - -# GCE discovery allows to use Google Compute Engine API in order to perform discovery. -# -# You have to install the cloud-gce plugin for enabling the GCE discovery. -# -# For more information, see <https://github.com/elasticsearch/elasticsearch-cloud-gce>. - -# Azure discovery allows to use Azure API in order to perform discovery. -# -# You have to install the cloud-azure plugin for enabling the Azure discovery. -# -# For more information, see <https://github.com/elasticsearch/elasticsearch-cloud-azure>. - -################################## Slow Log ################################## - -# Shard level query and fetch threshold logging. - -#index.search.slowlog.threshold.query.warn: 10s -#index.search.slowlog.threshold.query.info: 5s -#index.search.slowlog.threshold.query.debug: 2s -#index.search.slowlog.threshold.query.trace: 500ms - -#index.search.slowlog.threshold.fetch.warn: 1s -#index.search.slowlog.threshold.fetch.info: 800ms -#index.search.slowlog.threshold.fetch.debug: 500ms -#index.search.slowlog.threshold.fetch.trace: 200ms - -#index.indexing.slowlog.threshold.index.warn: 10s -#index.indexing.slowlog.threshold.index.info: 5s -#index.indexing.slowlog.threshold.index.debug: 2s -#index.indexing.slowlog.threshold.index.trace: 500ms - -################################## GC Logging ################################ - -#monitor.jvm.gc.young.warn: 1000ms -#monitor.jvm.gc.young.info: 700ms -#monitor.jvm.gc.young.debug: 400ms - -#monitor.jvm.gc.old.warn: 10s -#monitor.jvm.gc.old.info: 5s -#monitor.jvm.gc.old.debug: 2s - diff --git a/catalog-be/src/main/resources/import/tosca/heat-types/extVl/extVl.yml b/catalog-be/src/main/resources/import/tosca/heat-types/extVl/extVl.yml index 53b453c67d..581d688bcc 100644 --- a/catalog-be/src/main/resources/import/tosca/heat-types/extVl/extVl.yml +++ b/catalog-be/src/main/resources/import/tosca/heat-types/extVl/extVl.yml @@ -17,7 +17,7 @@ node_types: network_scope: type: string constraints: - valid_values: ["VF", "SERVICE", "GLOBAL"] + - valid_values: ["VF", "SERVICE", "GLOBAL"] description: > Uniquely identifies the network scope. Valid values for the network scope includes: diff --git a/catalog-be/src/main/resources/portal.properties b/catalog-be/src/main/resources/portal.properties index 185a4fb9dc..a182e80972 100644 --- a/catalog-be/src/main/resources/portal.properties +++ b/catalog-be/src/main/resources/portal.properties @@ -54,6 +54,7 @@ use_rest_for_functional_menu=true # Name of java class that implements the OnBoardingApiService interface. portal.api.impl.class = org.openecomp.sdc.be.ecomp.PortalRestAPICentralServiceImpl +# Use this tag if the app is centralized remote/local role_access_centralized = remote # URL of the Portal where this app is onboarded @@ -75,4 +76,8 @@ portal_app_name = Ipwxi2oLvDxctMA1royaRw1W0jhucLx+grHzci3ePIA= # then only the ueb_app_key is required. ueb_app_key = REPLACE-ME-UEB-APP-KEY-EPSDK-APP-OS - +# Connection and Read timeout values +#ext_req_connection_timeout = 15000 +#ext_req_read_timeout = 20000 +#Add AAF namespace if the app is centralized +aaf_namespace = com.att.sdc diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py index 74ecf71784..969c2f805f 100644 --- a/catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py +++ b/catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py @@ -60,13 +60,13 @@ def importHeatTypes(scheme, beHost, bePort, adminUser, fileDir, updateversion): "extContrailCP", "portMirroringByPolicy", "forwardingPath", + "configuration", "VRFObject", "extVirtualMachineInterfaceCP", "VLANNetworkReceptor", "VRFEntry", "subInterfaceV2", "contrailV2VLANSubInterfaceV2", - "configuration", "fabricConfiguration" ] diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importNodeType.py b/catalog-be/src/main/resources/scripts/import/tosca/importNodeType.py index 24218b6a73..1418722dff 100644 --- a/catalog-be/src/main/resources/scripts/import/tosca/importNodeType.py +++ b/catalog-be/src/main/resources/scripts/import/tosca/importNodeType.py @@ -56,7 +56,8 @@ def createUserNormativeType(scheme, beHost, bePort, adminUser, fileDir, ELEMENT_ c.setopt(c.WRITEFUNCTION, buffer.write) if scheme == 'https': - c.setopt(c.SSL_VERIFYPEER, 0) + c.setopt(pycurl.SSL_VERIFYPEER, 0) + c.setopt(pycurl.SSL_VERIFYHOST, 0) res = c.perform() diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeAll.py b/catalog-be/src/main/resources/scripts/import/tosca/importNormativeAll.py index 19ffc1762f..e4f536ff85 100644 --- a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeAll.py +++ b/catalog-be/src/main/resources/scripts/import/tosca/importNormativeAll.py @@ -4,6 +4,7 @@ from StringIO import StringIO import json import copy import time +# from importNormativeElements import createNormativeElement from importNormativeElements import * from importNormativeTypes import importNormativeTypes from importHeatTypes import importHeatTypes diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeElements.py b/catalog-be/src/main/resources/scripts/import/tosca/importNormativeElements.py index 3d5e9fd13b..47ed633b06 100644 --- a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeElements.py +++ b/catalog-be/src/main/resources/scripts/import/tosca/importNormativeElements.py @@ -17,11 +17,9 @@ from importCommon import * # python importUsers.py [-f <input file> | --ifile=<input file> ] # # # ################################################################################################################################################################################# -def import_element(scheme, be_host, be_port, admin_user, exit_on_success, file_dir, url_suffix, element_name, - element_form_name, +def import_element(scheme, be_host, be_port, admin_user, exit_on_success, file_dir, url_suffix, element_name, element_form_name, with_metadata=False): - result = createNormativeElement(scheme, be_host, be_port, admin_user, file_dir, url_suffix, element_name, - element_form_name, with_metadata) + result = createNormativeElement(scheme, be_host, be_port, admin_user, file_dir, url_suffix, element_name, element_form_name, with_metadata) print_frame_line() print_name_and_return_code(result[0], result[1]) print_frame_line() @@ -33,6 +31,7 @@ def import_element(scheme, be_host, be_port, admin_user, exit_on_success, file_d error_and_exit(0, None) + def createNormativeElement(scheme, be_host, be_port, admin_user, file_dir, url_suffix, element_name, element_form_name, with_metadata=False): try: @@ -41,37 +40,35 @@ def createNormativeElement(scheme, be_host, be_port, admin_user, file_dir, url_s c = pycurl.Curl() url = scheme + '://' + be_host + ':' + be_port + url_suffix - c.setopt(pycurl.URL, url) - c.setopt(pycurl.POST, 1) + c.setopt(c.URL, url) + c.setopt(c.POST, 1) admin_header = 'USER_ID: ' + admin_user c.setopt(pycurl.HTTPHEADER, [admin_header]) type_file_name = file_dir + "/" + element_name - multi_part_form_data = create_multipart_form_data(element_form_name, type_file_name, with_metadata, - element_name) + multi_part_form_data = create_multipart_form_data(element_form_name, type_file_name, with_metadata, element_name) c.setopt(pycurl.HTTPPOST, multi_part_form_data) - c.setopt(pycurl.WRITEFUNCTION, buffer.write) + c.setopt(c.WRITEFUNCTION, buffer.write) if scheme == 'https': - # security "man in middle" vulnerability c.setopt(pycurl.SSL_VERIFYPEER, 0) c.setopt(pycurl.SSL_VERIFYHOST, 0) c.perform() - http_res = c.getinfo(pycurl.RESPONSE_CODE) + http_res = c.getinfo(c.RESPONSE_CODE) if http_res is not None: debug("http response=", http_res) debug("response buffer", buffer.getvalue()) c.close() - return element_name, http_res, buffer.getvalue() + return (element_name, http_res, buffer.getvalue()) except Exception as inst: print("ERROR=" + str(inst)) - return element_name, None, None + return (element_name, None, None) def create_multipart_form_data(element_form_name, type_file_name, with_metadata, element_name): diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeRelationships.py b/catalog-be/src/main/resources/scripts/import/tosca/importNormativeRelationships.py index a86e520558..7adcf333c7 100644 --- a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeRelationships.py +++ b/catalog-be/src/main/resources/scripts/import/tosca/importNormativeRelationships.py @@ -5,7 +5,7 @@ import json import copy from importNormativeElements import createNormativeElement from importCommon import * -import importCommon +import importCommon ################################################################################################################################################################################################# # # @@ -22,62 +22,62 @@ import importCommon # # ################################################################################################################################################################################################# - + def usage(): - print sys.argv[0], '[optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ]' + print sys.argv[0], '[optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ]' def importNormativeRelationships(scheme, beHost, bePort, adminUser, exitOnSuccess, fileDir): - result = createNormativeElement(scheme, beHost, bePort, adminUser, fileDir, "/sdc2/rest/v1/catalog/uploadType/relationship", "relationshipTypes", "relationshipTypeZip") - - print_frame_line() - print_name_and_return_code(result[0], result[1]) - print_frame_line() + result = createNormativeElement(scheme, beHost, bePort, adminUser, fileDir, "/sdc2/rest/v1/catalog/uploadType/relationship", "relationshipTypes", "relationshipTypeZip") + + print_frame_line() + print_name_and_return_code(result[0], result[1]) + print_frame_line() - if ( result[1] == None or result[1] not in [200, 201, 409] ): - importCommon.error_and_exit(1, None) - else: - if (exitOnSuccess == True): - importCommon.error_and_exit(0, None) + if ( result[1] == None or result[1] not in [200, 201, 409] ): + importCommon.error_and_exit(1, None) + else: + if (exitOnSuccess == True): + importCommon.error_and_exit(0, None) def main(argv): - print 'Number of arguments:', len(sys.argv), 'arguments.' - - beHost = 'localhost' - bePort = '8080' - adminUser = 'jh0003' - scheme = 'http' - - try: - opts, args = getopt.getopt(argv,"i:p:u:h:s:",["ip=","port=","user=","scheme="]) - except getopt.GetoptError: - usage() - importCommon.error_and_exit(2, 'Invalid input') - - for opt, arg in opts: - #print opt, arg - if opt == '-h': - usage() - sys.exit(3) - elif opt in ("-i", "--ip"): - beHost = arg - elif opt in ("-p", "--port"): - bePort = arg - elif opt in ("-u", "--user"): - adminUser = arg - elif opt in ("-s", "--scheme"): - scheme = arg - - print 'scheme =',scheme,', be host =',beHost,', be port =', bePort,', user =', adminUser - - if ( beHost == None ): - usage() - sys.exit(3) - - importNormativeRelationships(scheme, beHost, bePort, adminUser, True, "../../../import/tosca/relationship-types/") + print 'Number of arguments:', len(sys.argv), 'arguments.' + + beHost = 'localhost' + bePort = '8080' + adminUser = 'jh0003' + scheme = 'http' + + try: + opts, args = getopt.getopt(argv,"i:p:u:h:s:",["ip=","port=","user=","scheme="]) + except getopt.GetoptError: + usage() + importCommon.error_and_exit(2, 'Invalid input') + + for opt, arg in opts: + #print opt, arg + if opt == '-h': + usage() + sys.exit(3) + elif opt in ("-i", "--ip"): + beHost = arg + elif opt in ("-p", "--port"): + bePort = arg + elif opt in ("-u", "--user"): + adminUser = arg + elif opt in ("-s", "--scheme"): + scheme = arg + + print 'scheme =',scheme,', be host =',beHost,', be port =', bePort,', user =', adminUser + + if ( beHost == None ): + usage() + sys.exit(3) + + importNormativeRelationships(scheme, beHost, bePort, adminUser, True, "../../../import/tosca/relationship-types/") if __name__ == "__main__": - main(sys.argv[1:]) + main(sys.argv[1:]) diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/importNormativeTypes.py index b74cead75e..6eea374716 100644 --- a/catalog-be/src/main/resources/scripts/import/tosca/importNormativeTypes.py +++ b/catalog-be/src/main/resources/scripts/import/tosca/importNormativeTypes.py @@ -19,158 +19,154 @@ import importCommon ######################################################################################################################################################################################### def createNormativeType(scheme, beHost, bePort, adminUser, fileDir, ELEMENT_NAME, updateversion): - try: - log("in create normative type ", ELEMENT_NAME) - debug("userId", adminUser) - debug("fileDir", fileDir) - - buffer = StringIO() - c = pycurl.Curl() - - url = scheme + '://' + beHost + ':' + bePort + '/sdc2/rest/v1/catalog/upload/multipart' - if updateversion != None: - url += '?createNewVersion=' + updateversion - c.setopt(pycurl.URL, url) - c.setopt(pycurl.POST, 1) - - adminHeader = 'USER_ID: ' + adminUser - # c.setopt(pycurl.HTTPHEADER, ['Content-Type: application/json', 'Accept: application/json', adminHeader]) - c.setopt(pycurl.HTTPHEADER, [adminHeader]) - - yml_path = fileDir + ELEMENT_NAME + "/" + ELEMENT_NAME + ".yml" - path = fileDir + ELEMENT_NAME + "/" + ELEMENT_NAME + ".zip" - - zf = zipfile.ZipFile(path, "w") - zf.write(yml_path, ELEMENT_NAME + '.yml') - zf.close() - - debug(path) - CURRENT_JSON_FILE = fileDir + ELEMENT_NAME + "/" + ELEMENT_NAME + ".json" - # sed -i 's/"userId": ".*",/"userId": "'${USER_ID}'",/' ${CURRENT_JSON_FILE} - - jsonFile = open(CURRENT_JSON_FILE) - - debug("before load json") - json_data = json.load(jsonFile, strict=False) - debug(json_data) - - jsonAsStr = json.dumps(json_data) - - send = [('resourceMetadata', jsonAsStr), ('resourceZip', (pycurl.FORM_FILE, path))] - debug(send) - c.setopt(pycurl.HTTPPOST, send) - - # data = json.dumps(user) - # c.setopt(c.POSTFIELDS, data) - - if scheme == 'https': - # security "man in middle" vulnerability - c.setopt(pycurl.SSL_VERIFYPEER, 0) - c.setopt(pycurl.SSL_VERIFYHOST, 0) - - # c.setopt(c.WRITEFUNCTION, lambda x: None) - c.setopt(pycurl.WRITEFUNCTION, buffer.write) - # print("before perform") - c.perform() - - # print("Before get response code") - httpRes = c.getinfo(pycurl.RESPONSE_CODE) - if (httpRes != None): - debug("http response=", httpRes) - # print('Status: ' + str(responseCode)) - debug(buffer.getvalue()) - c.close() - - return ELEMENT_NAME, httpRes, buffer.getvalue() - - except Exception as inst: - print("ERROR=" + str(inst)) - return ELEMENT_NAME, None, None + + try: + log("in create normative type ", ELEMENT_NAME) + debug("userId", adminUser) + debug("fileDir", fileDir) + + buffer = StringIO() + c = pycurl.Curl() + + url = scheme + '://' + beHost + ':' + bePort + '/sdc2/rest/v1/catalog/upload/multipart' + if updateversion != None: + url += '?createNewVersion=' + updateversion + c.setopt(c.URL, url) + c.setopt(c.POST, 1) + + adminHeader = 'USER_ID: ' + adminUser + #c.setopt(pycurl.HTTPHEADER, ['Content-Type: application/json', 'Accept: application/json', adminHeader]) + c.setopt(pycurl.HTTPHEADER, [adminHeader]) + + yml_path = fileDir + ELEMENT_NAME + "/" + ELEMENT_NAME + ".yml" + path = fileDir + ELEMENT_NAME + "/" + ELEMENT_NAME + ".zip" + + zf = zipfile.ZipFile(path, "w") + zf.write(yml_path, ELEMENT_NAME + '.yml') + zf.close() + + debug(path) + CURRENT_JSON_FILE=fileDir + ELEMENT_NAME + "/" + ELEMENT_NAME + ".json" + #sed -i 's/"userId": ".*",/"userId": "'${USER_ID}'",/' ${CURRENT_JSON_FILE} + + jsonFile = open(CURRENT_JSON_FILE) + + debug("before load json") + json_data = json.load(jsonFile, strict=False) + debug(json_data) + + jsonAsStr = json.dumps(json_data) + + send = [('resourceMetadata', jsonAsStr), ('resourceZip', (pycurl.FORM_FILE, path))] + debug(send) + c.setopt(pycurl.HTTPPOST, send) + + #data = json.dumps(user) + #c.setopt(c.POSTFIELDS, data) + + if scheme == 'https': + c.setopt(pycurl.SSL_VERIFYPEER, 0) + c.setopt(pycurl.SSL_VERIFYHOST, 0) + + #c.setopt(c.WRITEFUNCTION, lambda x: None) + c.setopt(c.WRITEFUNCTION, buffer.write) + #print("before perform") + res = c.perform() + + #print("Before get response code") + httpRes = c.getinfo(c.RESPONSE_CODE) + if (httpRes != None): + debug("http response=", httpRes) + #print('Status: ' + str(responseCode)) + debug(buffer.getvalue()) + c.close() + + return (ELEMENT_NAME, httpRes, buffer.getvalue()) + + except Exception as inst: + print("ERROR=" + str(inst)) + return (ELEMENT_NAME, None, None) def usage(): - print sys.argv[0], \ - '[optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | ' \ - '--ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ] ' \ - '[-v <true|false> | --updateversion=<true|false>]' + print sys.argv[0], '[optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ] [-v <true|false> | --updateversion=<true|false>]' def importNormativeTypes(scheme, beHost, bePort, adminUser, fileDir, updateversion): - normativeTypes = ["root", "compute", "softwareComponent", "webServer", "webApplication", "DBMS", "database", - "objectStorage", "blockStorage", "containerRuntime", "containerApplication", "loadBalancer", - "port", "network"] - # normativeTypes = [ "root" ] - responseCodes = [200, 201] - - if (updateversion == 'false'): - responseCodes = [200, 201, 409] - - results = [] - for normativeType in normativeTypes: - result = createNormativeType(scheme, beHost, bePort, adminUser, fileDir, normativeType, updateversion) - results.append(result) - if (result[1] == None or result[1] not in responseCodes): - print "Failed creating normative type " + normativeType + ". " + str(result[1]) - return results + + normativeTypes = [ "root", "compute", "softwareComponent", "webServer", "webApplication", "DBMS", "database", "objectStorage", "blockStorage", "containerRuntime", "containerApplication", "loadBalancer", "port", "network"] + #normativeTypes = [ "root" ] + responseCodes = [200, 201] + + if(updateversion == 'false'): + responseCodes = [200, 201, 409] + + results = [] + for normativeType in normativeTypes: + result = createNormativeType(scheme, beHost, bePort, adminUser, fileDir, normativeType, updateversion) + results.append(result) + if ( result[1] == None or result[1] not in responseCodes ): + print "Failed creating normative type " + normativeType + ". " + str(result[1]) + return results def main(argv): - print 'Number of arguments:', len(sys.argv), 'arguments.' - - beHost = 'localhost' - bePort = '8080' - adminUser = 'jh0003' - updateversion = 'true' - scheme = 'http' - - try: - opts, args = getopt.getopt(argv, "i:p:u:v:h:s:", ["ip=", "port=", "user=", "updateversion=", "scheme="]) - except getopt.GetoptError: - usage() - error_and_exit(2, 'Invalid input') - - for opt, arg in opts: - # print opt, arg - if opt == '-h': - usage() - sys.exit(3) - elif opt in ("-i", "--ip"): - beHost = arg - elif opt in ("-p", "--port"): - bePort = arg - elif opt in ("-u", "--user"): - adminUser = arg - elif opt in ("-s", "--scheme"): - scheme = arg - elif opt in ("-v", "--updateversion"): - if (arg.lower() == "false" or arg.lower() == "no"): - updateversion = 'false' - - print 'scheme =', scheme, ', be host =', beHost, ', be port =', bePort, ', user =', adminUser, ', updateversion =', updateversion - - if (beHost == None): - usage() - sys.exit(3) - - results = importNormativeTypes(scheme, beHost, bePort, adminUser, "../../../import/tosca/normative-types/", - updateversion) - - print "-----------------------------" - for result in results: - print "{0:20} | {1:6}".format(result[0], result[1]) - print "-----------------------------" - - responseCodes = [200, 201] - - if (updateversion == 'false'): - responseCodes = [200, 201, 409] - - failedNormatives = filter(lambda x: x[1] == None or x[1] not in responseCodes, results) - if (len(failedNormatives) > 0): - error_and_exit(1, None) - else: - error_and_exit(0, None) + print 'Number of arguments:', len(sys.argv), 'arguments.' + + beHost = 'localhost' + bePort = '8080' + adminUser = 'jh0003' + updateversion = 'true' + scheme = 'http' + + try: + opts, args = getopt.getopt(argv,"i:p:u:v:h:s:",["ip=","port=","user=","updateversion=","scheme="]) + except getopt.GetoptError: + usage() + error_and_exit(2, 'Invalid input') + + for opt, arg in opts: + #print opt, arg + if opt == '-h': + usage() + sys.exit(3) + elif opt in ("-i", "--ip"): + beHost = arg + elif opt in ("-p", "--port"): + bePort = arg + elif opt in ("-u", "--user"): + adminUser = arg + elif opt in ("-s", "--scheme"): + scheme = arg + elif opt in ("-v", "--updateversion"): + if (arg.lower() == "false" or arg.lower() == "no"): + updateversion = 'false' + + print 'scheme =',scheme,', be host =',beHost,', be port =', bePort,', user =', adminUser, ', updateversion =', updateversion + + if ( beHost == None ): + usage() + sys.exit(3) + + results = importNormativeTypes(scheme, beHost, bePort, adminUser, "../../../import/tosca/normative-types/", updateversion) + + print "-----------------------------" + for result in results: + print "{0:20} | {1:6}".format(result[0], result[1]) + print "-----------------------------" + + responseCodes = [200, 201] + + if(updateversion == 'false'): + responseCodes = [200, 201, 409] + + failedNormatives = filter(lambda x: x[1] == None or x[1] not in responseCodes, results) + if (len(failedNormatives) > 0): + error_and_exit(1, None) + else: + error_and_exit(0, None) if __name__ == "__main__": - main(sys.argv[1:]) + main(sys.argv[1:]) + diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importONAPNormativeAll.py b/catalog-be/src/main/resources/scripts/import/tosca/importONAPNormativeAll.py index 3e9103a95f..c573a448a4 100644 --- a/catalog-be/src/main/resources/scripts/import/tosca/importONAPNormativeAll.py +++ b/catalog-be/src/main/resources/scripts/import/tosca/importONAPNormativeAll.py @@ -66,8 +66,8 @@ def main(argv): opts = [] try: - opts, args = getopt.getopt(argv, "i:p:u:d:v:h:s", - ["scheme=", "ip=", "port=", "user=", "debug=", "updateversion="]) + opts, args = getopt.getopt(argv, "i:p:u:d:v:h:s:", + ["ip=", "port=", "user=", "debug=", "updateversion=", "scheme="]) except getopt.GetoptError: usage() error_and_exit(2, 'Invalid input') diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importUsersFromYaml.py b/catalog-be/src/main/resources/scripts/import/tosca/importUsersFromYaml.py index 23e854bcb8..09fe726cec 100644 --- a/catalog-be/src/main/resources/scripts/import/tosca/importUsersFromYaml.py +++ b/catalog-be/src/main/resources/scripts/import/tosca/importUsersFromYaml.py @@ -60,7 +60,8 @@ def getUser(scheme, beHost, bePort, user): c.setopt(c.URL, url) if scheme == 'https': - c.setopt(c.SSL_VERIFYPEER, 0) + c.setopt(pycurl.SSL_VERIFYPEER, 0) + c.setopt(pycurl.SSL_VERIFYHOST, 0) #adminHeader = 'USER_ID: ' + adminUser c.setopt(pycurl.HTTPHEADER, ['Content-Type: application/json', 'Accept: application/json']) @@ -106,7 +107,8 @@ def createUser(scheme, beHost, bePort, user, adminUser): c.setopt(c.POSTFIELDS, data) if scheme == 'https': - c.setopt(c.SSL_VERIFYPEER, 0) + c.setopt(pycurl.SSL_VERIFYPEER, 0) + c.setopt(pycurl.SSL_VERIFYHOST, 0) c.setopt(c.WRITEFUNCTION, lambda x: None) #print("before perform") diff --git a/catalog-be/src/main/resources/scripts/import/tosca/typesToUpgrade.json b/catalog-be/src/main/resources/scripts/import/tosca/typesToUpgrade.json index 1ef72856a4..ffda46e042 100644 --- a/catalog-be/src/main/resources/scripts/import/tosca/typesToUpgrade.json +++ b/catalog-be/src/main/resources/scripts/import/tosca/typesToUpgrade.json @@ -1,7 +1,35 @@ { "heat": [ - "Generic_PNF" + "AbstractSubstitute", + "cinderVolume", + "contrailAbstractSubstitute", + "contrailCompute", + "contrailNetworkRules", + "contrailPort", + "contrailV2NetworkRules", + "contrailV2VirtualMachineInterface", + "contrailVirtualNetwork", + "contrailV2VLANSubInterface", + "contrailV2VLANSubInterfaceV2", + "contrailVirtualNetwork", + "extContrailCP", + "extCp", + "extNeutronCP", + "extVirtualMachineInterfaceCP", + "extVl", + "forwardingPath", + "Generic_PNF", + "Generic_Service", + "Generic_VF", + "Generic_VFC", + "globalCompute", + "globalPort", + "neutronNet", + "neutronPort", + "novaServer", + "securityRules" ], "normative": [ + "loadBalancer" ] -}
\ No newline at end of file +} diff --git a/catalog-be/src/main/resources/scripts/import/tosca/upgradeONAPNormative.py b/catalog-be/src/main/resources/scripts/import/tosca/upgradeONAPNormative.py index b4447c26d1..222d22d1f1 100644 --- a/catalog-be/src/main/resources/scripts/import/tosca/upgradeONAPNormative.py +++ b/catalog-be/src/main/resources/scripts/import/tosca/upgradeONAPNormative.py @@ -59,7 +59,6 @@ def main(argv): updateOnapVersion = 'false' importCommon.debugFlag = False scheme = 'http' - opts = [] try: opts, args = getopt.getopt(argv, "i:p:u:d:v:h:s", diff --git a/catalog-be/src/main/resources/swagger/index.html b/catalog-be/src/main/resources/swagger/index.html index 1e6926d136..0e9a9e8de3 100644 --- a/catalog-be/src/main/resources/swagger/index.html +++ b/catalog-be/src/main/resources/swagger/index.html @@ -1,20 +1,3 @@ -<!-- - ~ Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. - ~ - ~ 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. - --> - - <!DOCTYPE html> <html> <head> diff --git a/catalog-be/src/main/resources/swagger/o2c.html b/catalog-be/src/main/resources/swagger/o2c.html index cec91e5bd1..88e8bf114b 100644 --- a/catalog-be/src/main/resources/swagger/o2c.html +++ b/catalog-be/src/main/resources/swagger/o2c.html @@ -1,20 +1,3 @@ -<!-- - ~ Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. - ~ - ~ 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. - --> - - <script> var qp = null; if(window.location.hash) { |