summaryrefslogtreecommitdiffstats
path: root/catalog-be/src/test/resources
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-be/src/test/resources')
-rw-r--r--catalog-be/src/test/resources/application-context-test.xml17
-rw-r--r--catalog-be/src/test/resources/config/catalog-be/DME2preferredRouter.txt0
-rw-r--r--catalog-be/src/test/resources/config/catalog-be/configuration.yaml67
-rw-r--r--catalog-be/src/test/resources/config/catalog-be/distribution-engine-configuration.yaml39
-rw-r--r--catalog-be/src/test/resources/config/catalog-be/error-configuration.yaml228
-rw-r--r--catalog-be/src/test/resources/cucumber/tenantIsolation.feature42
-rw-r--r--catalog-be/src/test/resources/logback-test.xml2
-rw-r--r--catalog-be/src/test/resources/paths/elasticsearch.yml392
-rw-r--r--catalog-be/src/test/resources/paths/path-context.xml71
9 files changed, 839 insertions, 19 deletions
diff --git a/catalog-be/src/test/resources/application-context-test.xml b/catalog-be/src/test/resources/application-context-test.xml
new file mode 100644
index 0000000000..9d50219354
--- /dev/null
+++ b/catalog-be/src/test/resources/application-context-test.xml
@@ -0,0 +1,17 @@
+<?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"
+ 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">
+
+ <context:annotation-config />
+ <aop:aspectj-autoproxy proxy-target-class="true" />
+
+ <bean class="org.openecomp.sdc.be.components.distribution.engine.DmaapConsumer" />
+ <bean class="org.openecomp.sdc.be.components.distribution.engine.DmaapClientFactory" />
+ <bean class="org.openecomp.sdc.be.components.distribution.engine.ExecutorFactory" />
+ <bean class="org.openecomp.sdc.be.components.distribution.engine.DmaapHealth" />
+
+</beans>
diff --git a/catalog-be/src/test/resources/config/catalog-be/DME2preferredRouter.txt b/catalog-be/src/test/resources/config/catalog-be/DME2preferredRouter.txt
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/catalog-be/src/test/resources/config/catalog-be/DME2preferredRouter.txt
diff --git a/catalog-be/src/test/resources/config/catalog-be/configuration.yaml b/catalog-be/src/test/resources/config/catalog-be/configuration.yaml
index 2ec7124e1c..f948f6e3cc 100644
--- a/catalog-be/src/test/resources/config/catalog-be/configuration.yaml
+++ b/catalog-be/src/test/resources/config/catalog-be/configuration.yaml
@@ -6,7 +6,8 @@ identificationHeaderFields:
- HTTP_CSP_WSTYPE
# catalog backend hostname
-beFqdn: sdccatalog.att.com
+beFqdn: localhost
+# sdccatalog.att.com
# catalog backend http port
beHttpPort: 8080
@@ -20,14 +21,14 @@ beProtocol: http
# catalog backend ssl port
beSslPort: 8443
-version: 1.0
+version: 1.1.0
released: 2012-11-30
toscaConformanceLevel: 5.0
minToscaConformanceLevel: 3.0
titanCfgFile: /home/vagrant/catalog-be/config/catalog-be/titan.properties
-titanInMemoryGraph: true
-titanLockTimeout: 600
+titanInMemoryGraph: false
+titanLockTimeout: 1800
# The interval to try and reconnect to titan DB when it is down during ASDC startup:
titanReconnectIntervalInSeconds: 3
@@ -40,7 +41,6 @@ esReconnectIntervalInSeconds: 3
uebHealthCheckReconnectIntervalInSeconds: 15
uebHealthCheckReadTimeout: 4
-
# Protocols
protocols:
- http
@@ -74,7 +74,7 @@ neo4j:
cassandraConfig:
cassandraHosts: ['localhost']
- localDataCenter:
+ localDataCenter: datacenter1
reconnectTimeout : 30000
authenticate: false
username: koko
@@ -147,6 +147,7 @@ resourceTypes: &allResourceTypes
- VF
- VFCMT
- Abstract
+ - CVFC
# validForResourceTypes usage
# validForResourceTypes:
@@ -296,9 +297,6 @@ serviceDeploymentArtifacts:
YANG_XML:
acceptedTypes:
- xml
- UCPE_LAYER_2_CONFIGURATION:
- acceptedTypes:
- - xml
VNF_CATALOG:
acceptedTypes:
- xml
@@ -308,6 +306,10 @@ serviceDeploymentArtifacts:
MODEL_QUERY_SPEC:
acceptedTypes:
- xml
+ UCPE_LAYER_2_CONFIGURATION:
+ acceptedTypes:
+ - xml
+
#AAI Artifacts
AAI_SERVICE_MODEL:
acceptedTypes:
@@ -507,6 +509,7 @@ resourceInformationalArtifacts:
acceptedTypes:
validForResourceTypes:
- VFC
+ - CVFC
- CP
- VL
- VF
@@ -524,6 +527,7 @@ resourceInformationalArtifacts:
validForResourceTypes:
- VF
- VFC
+ - CVFC
resourceInformationalDeployedArtifacts:
@@ -552,6 +556,11 @@ onboarding:
downloadCsarUri: "/onboarding-api/v1.0/vendor-software-products/packages"
healthCheckUri: "/onboarding-api/v1.0/healthcheck"
+dcae:
+ protocol: http
+ host: 127.0.0.1
+ port: 8080
+ healthCheckUri: "/dcae/healthCheck"
switchoverDetector:
gBeFqdn: AIO-BE.ecomp.idns.cip.com
@@ -574,7 +583,7 @@ switchoverDetector:
applicationL1Cache:
datatypes:
- enabled: false
+ enabled: true
firstRunDelay: 10
pollIntervalInSec: 60
@@ -586,8 +595,8 @@ applicationL2Cache:
servicesSizeInCache: 200
productsSizeInCache: 100
queue:
- syncIntervalInSecondes: 60
- waitOnShutDownInMinutes: 30
+ syncIntervalInSecondes: 43200
+ waitOnShutDownInMinutes: 10
numberOfCacheWorkers: 4
toscaValidators:
@@ -611,10 +620,12 @@ vfModuleProperties:
genericAssetNodeTypes:
VFC: org.openecomp.resource.abstract.nodes.VFC
+ CVFC: org.openecomp.resource.abstract.nodes.VFC
VF : org.openecomp.resource.abstract.nodes.VF
PNF: org.openecomp.resource.abstract.nodes.PNF
Service: org.openecomp.resource.abstract.nodes.service
+workloadContext: Production
environmentContext:
defaultValue: General_Revenue-Bearing
validValues:
@@ -632,3 +643,35 @@ environmentContext:
- Needed_Non-Revenue
- Useful_Non-Revenue
- General_Non-Revenue
+
+dmaapConsumerConfiguration:
+ hosts: olsd004.wnsnet.attws.com:3905
+ consumerGroup: asdc
+ consumerId: invalidMamaUser #mama - in Order To Consume Remove This String And Replace It With -> mama
+ timeoutMs: 15000
+ limit: 1
+ pollingInterval: 2
+ topic: com.att.sdc.23911-SDCforTestDev-v001
+ latitude: 32.109333
+ longitude: 34.855499
+ version: 1.0
+ serviceName: dmaap-v1.dev.dmaap.dt.saat.acsi.att.com/events
+ environment: TEST
+ partner: BOT_R
+ routeOffer: MR1
+ protocol: https
+ contenttype: application/json
+ dme2TraceOn: true
+ aftEnvironment: AFTUAT
+ aftDme2ConnectionTimeoutMs: 15000
+ aftDme2RoundtripTimeoutMs: 240000
+ aftDme2ReadTimeoutMs: 50000
+ dme2preferredRouterFilePath: DME2preferredRouter.txt
+ timeLimitForNotificationHandleMs: 0
+ credential:
+ username: m09875@sdc.att.com
+ password: hmXYcznAljMSisdy8zgcag==
+
+dmeConfiguration:
+ dme2Search: DME2SEARCH
+ dme2Resolve: DME2RESOLVE
diff --git a/catalog-be/src/test/resources/config/catalog-be/distribution-engine-configuration.yaml b/catalog-be/src/test/resources/config/catalog-be/distribution-engine-configuration.yaml
index ac6ff13473..b59d8cc22a 100644
--- a/catalog-be/src/test/resources/config/catalog-be/distribution-engine-configuration.yaml
+++ b/catalog-be/src/test/resources/config/catalog-be/distribution-engine-configuration.yaml
@@ -40,4 +40,41 @@ createTopic:
partitionCount: 1
replicationCount: 1
-startDistributionEngine: true \ No newline at end of file
+startDistributionEngine: true
+
+opEnvRecoveryIntervalSec: 180
+allowedTimeBeforeStaleSec: 300
+
+aaiConfig:
+ httpRequestConfig:
+ serverRootUrl: https://aai-uint3.test.att.com:8443
+ resourceNamespaces:
+ operationalEnvironments: /aai/v12/cloud-infrastructure/operational-environments
+
+ httpClientConfig:
+ timeouts:
+ readTimeoutMs: 5000
+ connectTimeoutMs: 1000
+ clientCertificate:
+ keyStore: /opt/app/jetty/base/be/etc/non-prod.jks
+ keyStorePassword: hmXYcznAljMSisdy8zgcag==
+ headers:
+ X-FromAppId: asdc
+ numOfRetries: 3
+
+msoConfig:
+ httpRequestConfig:
+ serverRootUrl: https://127.0.0.1/onap/mso/infra/modelDistributions/v1
+ resourceNamespaces:
+ distributions: /distributions
+
+ httpClientConfig:
+ timeouts:
+ readTimeoutMs: 2000
+ connectTimeoutMs: 500
+ basicAuthorization:
+ userName: asdc
+ password: OTLEp5lfVhYdyw5EAtTUBQ==
+ numOfRetries: 3
+
+currentArtifactInstallationTimeout: 120
diff --git a/catalog-be/src/test/resources/config/catalog-be/error-configuration.yaml b/catalog-be/src/test/resources/config/catalog-be/error-configuration.yaml
index 591a961150..69fef0f979 100644
--- a/catalog-be/src/test/resources/config/catalog-be/error-configuration.yaml
+++ b/catalog-be/src/test/resources/config/catalog-be/error-configuration.yaml
@@ -1,4 +1,4 @@
-# Errors
+# Errors
errors:
OK: {
code: 200,
@@ -8,6 +8,10 @@ errors:
code: 201,
message: "OK"
}
+ ACCEPTED: {
+ code: 202,
+ message: "Accepted"
+ }
NO_CONTENT: {
code: 204,
message: "No Content"
@@ -1832,16 +1836,230 @@ errors:
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"
- } \ No newline at end of file
+ }
+#---------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
+ 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
+ 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
+ RELATION_NOT_FOUND: {
+ code: 404,
+ message: "Error: Requested relation %1 was not found on the container %2.",
+ messageId: "SVC4674"
+ }
+
+
+#---------SVC4675------------------------------
+ INVALID_SERVICE_STATE: {
+ code: 409,
+ message: "Service state is invalid for this action",
+ messageId: "SVC4675"
+ }
+
+#---------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------------------------------
+ API_RESOURCE_NOT_FOUND: {
+ code: 404,
+ message: "Error: Requested '%1' was not found.",
+ messageId: "SVC4677"
+ }
+
+#---------SVC4678------------------------------
+ BAD_REQUEST_MISSING_RESOURCE: {
+ code: 400,
+ message: "Error: The required resource name/id is missing in the request",
+ messageId: "SVC4678"
+ }
+#---------SVC4679------------------------------
+# %1 invalid forwarding path name
+ FORWARDING_PATH_INVALID_NAME: {
+ code: 400,
+ message: "Invalid forwarding path name : '%1'.",
+ messageId: "SVC4679"
+ }
+#---------SVC4680------------------------------
+# %1 Forwarding path name
+ FORWARDING_PATH_INVALID_UNIQUE_NAME: {
+ code: 400,
+ message: "Forwarding path name is not unique : '%1'.",
+ messageId: "SVC4680"
+ }
+#---------SVC4681------------------------------
+# %1 Forwarding path missing name
+ FORWARDING_PATH_MISSING_NAME: {
+ code: 400,
+ message: "Forwarding path name is missing.",
+ messageId: "SVC4681"
+ }
+#---------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
+ 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
+ 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
+ RELATION_NOT_FOUND: {
+ code: 404,
+ message: "Error: Requested relation %1 was not found on the container %2.",
+ messageId: "SVC4674"
+ }
+
+
+#---------SVC4675------------------------------
+ INVALID_SERVICE_STATE: {
+ code: 409,
+ message: "Service state is invalid for this action",
+ messageId: "SVC4675"
+ }
+
+#---------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------------------------------
+ API_RESOURCE_NOT_FOUND: {
+ code: 404,
+ message: "Error: Requested '%1' was not found.",
+ messageId: "SVC4677"
+ }
+
+#---------SVC4678------------------------------
+ BAD_REQUEST_MISSING_RESOURCE: {
+ code: 400,
+ message: "Error: The required resource name/id is missing in the request",
+ messageId: "SVC4678"
+ }
+#---------SVC4679------------------------------
+# %1 invalid forwarding path name
+ FORWARDING_PATH_INVALID_NAME: {
+ code: 400,
+ message: "Invalid forwarding path name : '%1'.",
+ messageId: "SVC4679"
+ }
+#---------SVC4680------------------------------
+# %1 Forwarding path name
+ FORWARDING_PATH_INVALID_UNIQUE_NAME: {
+ code: 400,
+ message: "Forwarding path name is not unique : '%1'.",
+ messageId: "SVC4680"
+ }
+#---------SVC4681------------------------------
+# %1 Forwarding path missing name
+ FORWARDING_PATH_MISSING_NAME: {
+ code: 400,
+ message: "Forwarding path name is missing.",
+ messageId: "SVC4681"
+ }
+#---------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
+ 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
+ INVALID_POLICY_NAME: {
+ code: 400,
+ message: "Error: Invalid policy name %1 received.",
+ messageId: "SVC4684"
+ }
+#---------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 type
+# %2 - policy 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: "SVC4686"
+ }
+
+#---------SVC4687------------------------------
+# %1 External Reference Value
+ EXT_REF_NOT_FOUND: {
+ code: 404,
+ message: "Error: External Reference '%1' was not found.",
+ messageId: "SVC4687"
+ }
+ \ No newline at end of file
diff --git a/catalog-be/src/test/resources/cucumber/tenantIsolation.feature b/catalog-be/src/test/resources/cucumber/tenantIsolation.feature
new file mode 100644
index 0000000000..8eaac41c49
--- /dev/null
+++ b/catalog-be/src/test/resources/cucumber/tenantIsolation.feature
@@ -0,0 +1,42 @@
+Feature: Tenant Isolation Feature
+
+ Scenario Outline: Recieve Notification Create Environment
+ #Example {"operationalEnvironmentId": "28122015552391", "operationalEnvironmentType": "ECOMP","action": "Create" }
+ Given Dmaap consumer recieved notification with fields <notificationFields>
+ #UP, DOWN
+ And AAI service status is <AAIServiceStatus> and Tenant returned is <tenant> and worload returned is <worload>
+ And AFT_DME service status is <AftDmeServiceStatus>
+ And UEB service status is <UebServiceStatus>
+ And Cassandra service status is <CassandraServiceStatus>
+ #NOT_RELEVANT, NOT_FOUND, FOUND_IN_PROGRESS (Status In Progress), FOUND_COMPLETED (Status Complete), FOUND_FAILED (Status Failed)
+ And Record status is <recordStatus>
+ ####################################################################################
+ When handle message is activated
+ ####################################################################################
+ Then handle message activates validation of eventType <isEventTypeValidated>
+ And trying to write message to audit log and table <isAuditUpdated>
+ And handle message activates validation of action <isActionValidated>
+ And handle message activates validation of state <isStateValidated>
+ And trying to save in-progress record <isSaveActivated>
+ And trying to get environment info from A&AI API <isAAIActivated>
+ And trying to retrieve Ueb Addresses From AftDme <isAftDmeActivated>
+ And trying to create Ueb keys <isCreateKeysActivated>
+ And trying to create Ueb Topics <isCreateTopicsActivated>
+ And handle message finished successfully <isSuccessfull>
+
+ Examples:
+ | notificationFields | AAIServiceStatus | tenant | worload | AftDmeServiceStatus | UebServiceStatus | CassandraServiceStatus | recordStatus | isEventTypeValidated | isAuditUpdated | isActionValidated | isStateValidated | isSaveActivated | isAAIActivated | isAftDmeActivated | isCreateKeysActivated | isCreateTopicsActivated | isSuccessfull |
+ | {"operationalEnvironmentType": "NON-ECOMP","action": "Create" } | UP | TEST | ECOMP_E2E-IST | DOWN | DOWN | UP | FOUND_COMPLETED | true | true | false | false | false | false | false | false | false | false |
+ | {"operationalEnvironmentType": "ECOMP","action": "Delete" } | UP | TEST | ECOMP_E2E-IST | DOWN | DOWN | UP | FOUND_COMPLETED | true | false | true | false | false | false | false | false | false | false |
+ | {"operationalEnvironmentType": "ECOMP","action": "Create" } | UP | TEST | ECOMP_E2E-IST | DOWN | DOWN | DOWN | NOT_RELEVANT | true | false | true | true | false | false | false | false | false | false |
+ | {"operationalEnvironmentType": "ECOMP","action": "Create" } | UP | TEST | ECOMP_E2E-IST | DOWN | DOWN | UP | FOUND_IN_PROGRESS | true | false | true | true | false | false | false | false | false | false |
+ | {"operationalEnvironmentType": "ECOMP","action": "Create" } | UP | | ECOMP_E2E-IST | DOWN | DOWN | UP | FOUND_FAILED | true | false | true | true | true | true | false | false | false | false |
+ | {"operationalEnvironmentType": "ECOMP","action": "Create" } | UP | TEST | | DOWN | DOWN | UP | FOUND_FAILED | true | false | true | true | true | true | false | false | false | false |
+ | {"operationalEnvironmentType": "ECOMP","action": "Create" } | UP | | | DOWN | DOWN | UP | FOUND_FAILED | true | false | true | true | true | true | false | false | false | false |
+ | {"operationalEnvironmentType": "ECOMP","action": "Create" } | DOWN | TEST | ECOMP_E2E-IST | DOWN | DOWN | UP | FOUND_COMPLETED | true | false | true | true | true | true | false | false | false | false |
+ | {"operationalEnvironmentType": "ECOMP","action": "Create" } | DOWN | TEST | ECOMP_E2E-IST | DOWN | DOWN | UP | FOUND_FAILED | true | false | true | true | true | true | false | false | false | false |
+ | {"operationalEnvironmentType": "ECOMP","action": "Update" } | DOWN | TEST | ECOMP_E2E-IST | DOWN | DOWN | UP | FOUND_COMPLETED | true | false | true | true | true | true | false | false | false | false |
+ | {"operationalEnvironmentType": "ECOMP","action": "Create" } | UP | TEST | ECOMP_E2E-IST | DOWN | DOWN | UP | NOT_FOUND | true | false | true | true | true | true | true | false | false | false |
+ | {"operationalEnvironmentType": "ECOMP","action": "Create" } | UP | TEST | ECOMP_E2E-IST | UP | DOWN | UP | NOT_FOUND | true | false | true | true | true | true | true | true | false | false |
+ | {"operationalEnvironmentType": "ECOMP","action": "Create" } | UP | TEST | ECOMP_E2E-IST | UP | UP | UP | NOT_FOUND | true | false | true | true | true | true | true | true | true | true |
+ | {"operationalEnvironmentType": "ECOMP","action": "Update" } | UP | TEST | ECOMP_E2E-IST | UP | UP | UP | NOT_FOUND | true | false | true | true | true | true | true | true | true | true |
diff --git a/catalog-be/src/test/resources/logback-test.xml b/catalog-be/src/test/resources/logback-test.xml
index d2b9bff23f..f1c51e2567 100644
--- a/catalog-be/src/test/resources/logback-test.xml
+++ b/catalog-be/src/test/resources/logback-test.xml
@@ -7,7 +7,7 @@
</Pattern>
</encoder>
</appender>
- <root level="OFF">
+ <root level="DEBUG">
<appender-ref ref="STDOUT" />
</root>
</configuration> \ No newline at end of file
diff --git a/catalog-be/src/test/resources/paths/elasticsearch.yml b/catalog-be/src/test/resources/paths/elasticsearch.yml
new file mode 100644
index 0000000000..e1808ad7cc
--- /dev/null
+++ b/catalog-be/src/test/resources/paths/elasticsearch.yml
@@ -0,0 +1,392 @@
+
+elasticSearch.local: true
+elasticSearch.transportclient: false
+cluster.name: elasticsearch_1_5_2222
+
+discovery.zen.ping.multicast.enabled: false
+discovery.zen.ping.unicast.enabled: true
+discovery.zen.ping.unicast.hosts: 1.2.3.4
+transport.client.initial_nodes:
+ - 1.2.3.4:9300
+
+
+#plugin.types: "DeleteByQueryPlugin"
+
+##################### 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.home: /src/test/resources
+# 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/test/resources/paths/path-context.xml b/catalog-be/src/test/resources/paths/path-context.xml
new file mode 100644
index 0000000000..f0067dfe55
--- /dev/null
+++ b/catalog-be/src/test/resources/paths/path-context.xml
@@ -0,0 +1,71 @@
+<?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"
+ 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">
+
+ <context:annotation-config />
+ <aop:aspectj-autoproxy proxy-target-class="true" />
+
+ <context:component-scan
+ base-package="org.openecomp.sdc.be.dao.impl,
+ org.openecomp.sdc.be.dao.es,
+ org.openecomp.sdc.be.resources.impl,
+ org.openecomp.sdc.be.dao.neo4j,
+ org.openecomp.sdc.be.model.operations.impl,
+ org.openecomp.sdc.be.model.cache,
+ org.openecomp.sdc.be.dao.titan,
+ org.openecomp.sdc.be.user,
+ org.openecomp.sdc.be.impl,
+ org.openecomp.sdc.be.auditing.impl,
+ org.openecomp.sdc.be.components.impl,
+ org.openecomp.sdc.be.components.merge,
+ org.openecomp.sdc.be.components.property,
+ org.openecomp.sdc.be.components.distribution.engine,
+ org.openecomp.sdc.be.distribution,
+ org.openecomp.sdc.be.components.validation
+ org.openecomp.sdc.be.switchover.detector,
+ org.openecomp.sdc.be.tosca,
+ org.openecomp.sdc.be.model.jsontitan.operations,
+ org.openecomp.sdc.be.model.jsontitan.utils,
+ org.openecomp.sdc.be.components.csar,
+ org.openecomp.sdc.be.dao.jsongraph">
+
+ </context:component-scan>
+
+ <bean id="resourceImportManager" class="org.openecomp.sdc.be.components.impl.ResourceImportManager" />
+ <bean id="capabilityTypeImportManager" class="org.openecomp.sdc.be.components.impl.CapabilityTypeImportManager" />
+ <bean id="servletUtils" class="org.openecomp.sdc.be.impl.ServletUtils" />
+ <bean id="resourceBusinessLogic" class="org.openecomp.sdc.be.components.impl.ResourceBusinessLogic" />
+ <bean id="productBusinessLogic" class="org.openecomp.sdc.be.components.impl.ProductBusinessLogic" />
+ <bean id="artifactBusinessLogic" class="org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic" />
+ <bean id="lifecycleBusinessLogic" class="org.openecomp.sdc.be.components.lifecycle.LifecycleBusinessLogic" />
+ <bean id="transactionManager" class="org.openecomp.sdc.common.transaction.mngr.TransactionManager" />
+ <bean id="userBusinessLogic" class="org.openecomp.sdc.be.user.UserBusinessLogic" />
+ <bean id="elementsBusinessLogic" class="org.openecomp.sdc.be.components.impl.ElementBusinessLogic" />
+ <bean id="propertyBusinessLogic" class="org.openecomp.sdc.be.components.impl.PropertyBusinessLogic" />
+ <bean id="auditingManager" class="org.openecomp.sdc.be.auditing.impl.AuditingManager" />
+ <bean id="distributionBusinessLogic" class="org.openecomp.sdc.be.distribution.DistributionBusinessLogic" />
+ <bean id="interfaceLifecycleTypeImportManager" class="org.openecomp.sdc.be.components.impl.InterfaceLifecycleTypeImportManager" />
+ <bean id="distributionMonitoringBusinessLogic" class="org.openecomp.sdc.be.components.impl.DistributionMonitoringBusinessLogic" />
+ <bean id="additionalInformationBusinessLogic" class="org.openecomp.sdc.be.components.impl.AdditionalInformationBusinessLogic" />
+ <bean id="distribution-engine-cluster-health" class="org.openecomp.sdc.be.components.distribution.engine.DistributionEngineClusterHealth" />
+ <bean id="categoriesImportManager" class="org.openecomp.sdc.be.components.impl.CategoriesImportManager" />
+ <bean id="asset-metadata-utils" class="org.openecomp.sdc.be.ecomp.converters.AssetMetadataConverter" />
+ <bean id="titan-client" class="org.openecomp.sdc.be.components.path.beans.InMemoryTitanGraphClient" />
+ <bean class="org.openecomp.sdc.be.dao.config.DAOSpringConfig"/>
+ <bean id="component-cassandra-dao" class="org.openecomp.sdc.be.components.path.beans.ComponentCassandraDaoMock" />
+ <bean id="cassandra-client" class="org.openecomp.sdc.be.components.path.beans.CassandraClientMock" />
+ <bean id="audit-cassandra-dao" class="org.openecomp.sdc.be.components.path.beans.AuditCassandraDaoMock" />
+ <bean id="artifact-cassandra-dao" class="org.openecomp.sdc.be.components.path.beans.ArtifactCassandraDaoMock" />
+ <bean id="operational-environment-dao" class="org.openecomp.sdc.be.components.path.beans.EnvironmentCassandraDaoMock"/>
+ <bean id="sdc-schema-files-cassandra-dao" class="org.openecomp.sdc.be.components.path.beans.SdcSchemaFilesCassandraDaoMock" />
+ <bean id="tosca-operation-facade" class="org.openecomp.sdc.be.components.path.beans.ForwardingPathToscaOperationFacade" />
+ <bean id="distributionEngine" class="org.openecomp.sdc.be.components.path.beans.DistributionEngineMock"/>
+ <bean id="forwardingPathValidator" class="org.openecomp.sdc.be.components.path.beans.ForwardingPathValidatorMock" />
+ <util:properties id="elasticsearchConfig" location="paths/elasticsearch.yml" />
+
+</beans>