aboutsummaryrefslogtreecommitdiffstats
path: root/aai-traversal/src
diff options
context:
space:
mode:
Diffstat (limited to 'aai-traversal/src')
-rw-r--r--aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/conf/FileMonitorBeans.xml20
-rw-r--r--aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/conf/jaxrsBeans.groovy23
-rw-r--r--aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/conf/serviceBeans.xml98
-rw-r--r--aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/docs/README.txt1
-rw-r--r--aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/lib/README.txt1
-rw-r--r--aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/props/module.props1
-rw-r--r--aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/routes/aai.route4
-rw-r--r--aai-traversal/src/main/assemble/ajsc_module_assembly.xml66
-rw-r--r--aai-traversal/src/main/assemble/ajsc_props_assembly.xml23
-rw-r--r--aai-traversal/src/main/assemble/ajsc_runtime_assembly.xml44
-rw-r--r--aai-traversal/src/main/assembly/descriptor.xml32
-rw-r--r--aai-traversal/src/main/config/ajsc-jetty.xml164
-rw-r--r--aai-traversal/src/main/config/ajsc-jolokia-override-web.xml46
-rw-r--r--aai-traversal/src/main/config/ajsc-override-web.xml41
-rw-r--r--aai-traversal/src/main/config/ajsc-request.xml49
-rw-r--r--aai-traversal/src/main/config/hazelcast-client.properties25
-rw-r--r--aai-traversal/src/main/config/jul-redirect.properties13
-rw-r--r--aai-traversal/src/main/config/keyfile27
-rw-r--r--aai-traversal/src/main/config/runner-web.xml106
-rw-r--r--aai-traversal/src/main/docker/Dockerfile22
-rw-r--r--aai-traversal/src/main/docker/aai.sh (renamed from aai-traversal/src/main/resources/docker/aai.sh)0
-rw-r--r--aai-traversal/src/main/docker/docker-entrypoint.sh119
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/Profiles.java12
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/TraversalApp.java130
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/ajsc_aai/JaxrsErrorMessageLookupService.java99
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/ajsc_aai/JaxrsUserService.java55
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/ajsc_aai/filemonitor/ServicePropertiesListener.java21
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/ajsc_aai/filemonitor/ServicePropertiesMap.java127
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/ajsc_aai/filemonitor/ServicePropertyService.java21
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/ajsc_aai/util/ServicePropertiesMapBean.java38
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/config/DmaapConfig.java43
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/config/JettyPasswordDecoder.java14
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/config/PasswordDecoder.java6
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/config/PropertyPasswordConfiguration.java62
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/interceptors/AAIContainerFilter.java22
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/interceptors/AAIHeaderProperties.java18
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/interceptors/AAILogJAXRSInInterceptor.java286
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/interceptors/AAILogJAXRSOutInterceptor.java303
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/interceptors/PostAaiAjscInterceptor.java66
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/interceptors/PreAaiAjscInterceptor.java63
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/interceptors/package-info.java17
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/interceptors/post/AAIResponseFilterPriority.java13
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/interceptors/post/ResetLoggingContext.java50
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/interceptors/post/ResponseHeaderManipulation.java30
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/interceptors/post/ResponseTransactionLogging.java106
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/interceptors/pre/AAIRequestFilterPriority.java18
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/interceptors/pre/HeaderValidation.java88
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/interceptors/pre/RequestHeaderManipulation.java71
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/interceptors/pre/RequestModification.java77
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/interceptors/pre/RequestTransactionLogging.java113
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/interceptors/pre/SetLoggingContext.java70
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/rest/retired/RetiredConsumer.java2
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/rest/util/EchoResponse.java3
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/web/JerseyConfiguration.java127
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/web/LocalHostAccessLog.java39
-rw-r--r--aai-traversal/src/main/java/org/onap/aai/web/WebConfiguration.java27
-rw-r--r--aai-traversal/src/main/resources/application.properties72
-rw-r--r--aai-traversal/src/main/resources/docker/Dockerfile31
-rw-r--r--aai-traversal/src/main/resources/docker/commonLibs/README1
-rw-r--r--aai-traversal/src/main/resources/docker/docker-entrypoint.sh134
-rw-r--r--aai-traversal/src/main/resources/docker/init-chef.sh61
-rw-r--r--aai-traversal/src/main/resources/etc/.gitignore1
-rw-r--r--aai-traversal/src/main/resources/etc/appprops/Introscope.properties8
-rw-r--r--aai-traversal/src/main/resources/etc/appprops/PostProcessorInterceptors.properties3
-rw-r--r--aai-traversal/src/main/resources/etc/appprops/aaiEventDMaaPPublisher.properties4
-rw-r--r--aai-traversal/src/main/resources/etc/appprops/aaiconfig.properties (renamed from aai-traversal/src/test/resources/bundleconfig-local/etc/appprops/aaiconfig.properties)33
-rw-r--r--aai-traversal/src/main/resources/etc/appprops/default-logback.xml43
-rw-r--r--aai-traversal/src/main/resources/etc/appprops/error.properties172
-rw-r--r--aai-traversal/src/main/resources/etc/appprops/gremlin-server-config.yaml (renamed from aai-traversal/src/test/resources/inmemory_titan.properties)4
-rw-r--r--aai-traversal/src/main/resources/etc/appprops/logging.properties128
-rw-r--r--aai-traversal/src/main/resources/etc/appprops/methodMapper.properties24
-rw-r--r--aai-traversal/src/main/resources/etc/appprops/preferredRoute.txt1
-rw-r--r--aai-traversal/src/main/resources/etc/appprops/titan-cached.properties (renamed from aai-traversal/src/test/resources/config/etc/titan-cached.properties)5
-rw-r--r--aai-traversal/src/main/resources/etc/appprops/titan-realtime.properties (renamed from aai-traversal/src/test/resources/config/etc/titan-realtime.properties)7
-rw-r--r--aai-traversal/src/main/resources/etc/auth/aai_keystorebin0 -> 3811 bytes
-rw-r--r--aai-traversal/src/main/resources/etc/query/stored-queries.json266
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/closed-loop-named-query-1.0.json78
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getClfiRoadmTailSummary-1.0.json94
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComplexByPnfName-1.0.json32
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComponentList-1.0.json98
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComponentList-1.1.json135
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComponentList-1.2.json139
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVComplexHostname-1.0.json32
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVComplexLocationId-1.0.json32
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVLogicalLink-1.0.json58
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVLogicalLinkByCircuitId-1.0.json19
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVServiceTopology-1.0.json273
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVServiceTopology-1.1.json273
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVServiceTopology2-1.0.json321
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getL3networkCloudRegionByNetworkRole-1.0.json71
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getLogicalLinkByCloudRegionId-1.0.json32
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getPinterfacePhysicalLinkBySvcInstId-1.0.json84
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getRouterRoadmTailSummary-1.0.json120
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getServiceInstanceModel-1.0.json93
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getServiceInstanceSummary-1.0.json126
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getSvcSubscriberModelInfo-1.0.json46
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getTenantInfoAtSvcInstance-1.0.json87
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getTenantInfoAtSvcSubscription-1.0.json58
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getVnfVlanByCircuitId-1.0.json58
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getVserver-1.0.json126
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getWlBundleId-1.0.json81
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/vnf-to-esr-system-info-1.0.json71
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/named-query-json/vnf-to-service-instance-1.0.json45
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/resource-model-json/000-README (renamed from aai-traversal/src/test/resources/bundleconfig-local/etc/scriptdata/resource-model-json/000-README)0
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/service-model-json/000-README (renamed from aai-traversal/src/test/resources/bundleconfig-local/etc/scriptdata/service-model-json/000-README)0
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/action-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/action-data-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/allotted-resource-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/availability-zone-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/az-and-dvs-switches-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/class-of-service-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/cloud-region-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/complex-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/configuration-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/connector-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/constrained-element-set-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/ctag-assignment-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/ctag-pool-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/customer-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/cvlan-tag-entry-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/dvs-switch-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/edge-prop-names-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/element-choice-set-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/entitlement-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/esr-system-info-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/flavor-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/generic-vnf-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/group-assignment-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/image-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/include-node-filter-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/instance-group-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/inventory-item-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/inventory-item-data-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/ipsec-configuration-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/key-data-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l-interface-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l3-interface-ipv4-address-list-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l3-interface-ipv6-address-list-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l3-network-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/lag-interface-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/lag-link-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/license-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/license-key-resource-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/logical-link-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/metadatum-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-constraint-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-element-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-ver-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/multicast-configuration-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/named-query-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/named-query-element-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/network-policy-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/network-profile-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/newvce-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/oam-network-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/p-interface-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/physical-link-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/pnf-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/port-group-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/property-constraint-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/pserver-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/related-lookup-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/reserved-prop-names-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/result-data-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/route-table-reference-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/routing-instance-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/secondary-filter-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/segmentation-assignment-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-capability-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-instance-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-subscription-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/site-pair-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/site-pair-set-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/snapshot-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/sriov-vf-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/start-node-filter-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/subnet-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/tagged-inventory-item-list-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/tenant-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/tunnel-xconnect-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/update-node-key-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vce-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vf-module-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vig-server-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/virtual-data-center-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vlan-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vnf-image-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vnfc-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/volume-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/volume-group-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vpe-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vpls-pe-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vpn-binding-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vserver-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/zone-1.0.json11
-rw-r--r--aai-traversal/src/main/resources/etc/sysprops/sys-props.properties140
-rw-r--r--aai-traversal/src/main/resources/etc/sysprops/template.sys-props.properties115
-rw-r--r--aai-traversal/src/main/resources/localhost-access-logback.xml62
-rw-r--r--aai-traversal/src/main/resources/logback.xml391
-rw-r--r--aai-traversal/src/main/resources/realm.properties (renamed from aai-traversal/src/main/config/realm.properties)0
-rw-r--r--aai-traversal/src/main/runtime/context/__module.ajsc.namespace.name__#__module.ajsc.namespace.version__.context1
-rw-r--r--aai-traversal/src/main/runtime/context/default#0.context1
-rw-r--r--aai-traversal/src/main/runtime/deploymentPackage/__module.ajsc.namespace.name__#__module.ajsc.namespace.version__.json1
-rw-r--r--aai-traversal/src/main/runtime/shiroRole/ajscadmin.json1
-rw-r--r--aai-traversal/src/main/runtime/shiroRole/contextadmin#__module.ajsc.namespace.name__.json1
-rw-r--r--aai-traversal/src/main/runtime/shiroRole/contextadmin#default.json1
-rw-r--r--aai-traversal/src/main/runtime/shiroUser/ajsc.json1
-rw-r--r--aai-traversal/src/main/runtime/shiroUserRole/ajsc#ajscadmin.json1
-rw-r--r--aai-traversal/src/main/runtime/shiroUserRole/ajsc#contextadmin#__module.ajsc.namespace.name__.json1
-rw-r--r--aai-traversal/src/main/runtime/shiroUserRole/ajsc#contextadmin#default.json1
-rw-r--r--aai-traversal/src/main/scripts/common_functions.sh56
-rw-r--r--aai-traversal/src/main/scripts/deleteNamedQuery.sh18
-rw-r--r--aai-traversal/src/main/scripts/deleteTool.sh4
-rw-r--r--aai-traversal/src/main/scripts/getTool.sh4
-rw-r--r--aai-traversal/src/main/scripts/install/updateQueryData.sh8
-rw-r--r--aai-traversal/src/main/scripts/putTool.sh35
-rw-r--r--aai-traversal/src/main/swm/package/nix/common/deinstall.env10
-rw-r--r--aai-traversal/src/main/swm/package/nix/common/install_postproc.sh39
-rw-r--r--aai-traversal/src/main/swm/package/nix/deinstall/preproc/pre_proc4
-rw-r--r--aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/docker-compose.template.yaml51
-rw-r--r--aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/execTool.sh58
-rw-r--r--aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/kill_resources.sh7
-rw-r--r--aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/start_resources.sh6
-rw-r--r--aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/stop_resources.sh6
-rw-r--r--aai-traversal/src/main/swm/package/nix/initinst/postproc/post_proc4
-rw-r--r--aai-traversal/src/main/swm/package/nix/install/postproc/post_proc4
-rw-r--r--aai-traversal/src/main/swm/package/nix/install/preproc/pre_proc4
-rw-r--r--aai-traversal/src/main/xjb/bindings.xjb21
-rw-r--r--aai-traversal/src/test/java/org/onap/aai/AAIGremlinQueryTest.java126
-rw-r--r--aai-traversal/src/test/java/org/onap/aai/TraversalTestConfiguration.java125
-rw-r--r--aai-traversal/src/test/java/org/onap/aai/dbgraphgen/ModelBasedProcessingInvalidDataTest.java3
-rw-r--r--aai-traversal/src/test/java/org/onap/aai/dbgraphgen/ModelBasedProcessingTest.java3
-rw-r--r--aai-traversal/src/test/java/org/onap/aai/dbgraphmap/SearchGraphNamedQueryTest.java6
-rw-r--r--aai-traversal/src/test/java/org/onap/aai/dbgraphmap/SearchGraphTest.java5
-rw-r--r--aai-traversal/src/test/java/org/onap/aai/interceptors/AAILogJAXRSInInterceptorTest.java204
-rw-r--r--aai-traversal/src/test/java/org/onap/aai/interceptors/AAILogJAXRSOutInterceptorTest.java111
-rw-r--r--aai-traversal/src/test/java/org/onap/aai/interceptors/PostAaiAjscInterceptorTest.java75
-rw-r--r--aai-traversal/src/test/java/org/onap/aai/interceptors/PreAaiAjscInterceptorTest.java63
-rw-r--r--aai-traversal/src/test/java/org/onap/aai/rest/search/GetCustomQueryConfigTest.java2
-rw-r--r--aai-traversal/src/test/java/org/onap/aai/rest/search/ModelAndNamedQueryRestProviderTest.java2
-rw-r--r--aai-traversal/src/test/java/org/onap/aai/rest/search/QueryTest.java2
-rw-r--r--aai-traversal/src/test/java/org/onap/aai/rest/search/SearchProviderTest.java2
-rw-r--r--aai-traversal/src/test/java/org/onap/aai/rest/search/SimpleFormatTest.java2
-rw-r--r--aai-traversal/src/test/java/org/onap/aai/retiredcustomer/JaxrsUserServiceTest.java111
-rw-r--r--aai-traversal/src/test/java/org/onap/aai/util/AAIAppServletContextListenerTest.java178
-rw-r--r--aai-traversal/src/test/resources/application-test.properties70
-rw-r--r--aai-traversal/src/test/resources/bundleconfig-local/etc/auth/aai_policy.json37
-rw-r--r--aai-traversal/src/test/resources/log4j.properties3
-rw-r--r--aai-traversal/src/test/resources/logback.xml373
-rw-r--r--aai-traversal/src/test/resources/payloads/templates/pserver.json3
-rw-r--r--aai-traversal/src/test/resources/test_aaiconfig.properties99
253 files changed, 7402 insertions, 3114 deletions
diff --git a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/conf/FileMonitorBeans.xml b/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/conf/FileMonitorBeans.xml
deleted file mode 100644
index 37e929d..0000000
--- a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/conf/FileMonitorBeans.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
-
- <!--<bean-->
- <!--class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor" />-->
- <!---->
- <!--<bean id="ServicePropertiesListener" class="org.onap.aai.ajsc_aai.filemonitor.ServicePropertiesListener" />-->
- <!---->
- <!--<bean id="ServicePropertiesMap" class="org.onap.aai.ajsc_aai.filemonitor.ServicePropertiesMap" />-->
-
- <!--<bean id="ServicePropertyService" class="org.onap.aai.ajsc_aai.filemonitor.ServicePropertyService">-->
- <!--<property name="loadOnStartup" value="false" />-->
- <!--<property name="fileChangedListener" ref="ServicePropertiesListener" />-->
- <!--<property name="filePropertiesMap" ref="ServicePropertiesMap" />-->
- <!--<property name="ssfFileMonitorPollingInterval" value="15" />-->
- <!--<property name="ssfFileMonitorThreadpoolSize" value="10" />-->
- <!--</bean>-->
-</beans>
diff --git a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/conf/jaxrsBeans.groovy b/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/conf/jaxrsBeans.groovy
deleted file mode 100644
index 0749aa4..0000000
--- a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/conf/jaxrsBeans.groovy
+++ /dev/null
@@ -1,23 +0,0 @@
-beans{
- xmlns cxf: "http://camel.apache.org/schema/cxf"
- xmlns jaxrs: "http://cxf.apache.org/jaxrs"
- xmlns util: "http://www.springframework.org/schema/util"
-
- SearchProvider(org.onap.aai.rest.search.SearchProvider)
- ModelAndNamedQueryRestProvider(org.onap.aai.rest.search.ModelAndNamedQueryRestProvider)
- QueryConsumer(org.onap.aai.rest.QueryConsumer)
-
- V3ThroughV7Retired(org.onap.aai.rest.retired.V3ThroughV7Consumer)
-
- EchoResponse(org.onap.aai.rest.util.EchoResponse)
-
-
- util.list(id: 'jaxrsServices') {
-
- ref(bean:'SearchProvider')
- ref(bean:'ModelAndNamedQueryRestProvider')
- ref(bean:'QueryConsumer')
- ref(bean:'V3ThroughV7Retired')
- ref(bean:'EchoResponse')
- }
-} \ No newline at end of file
diff --git a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/conf/serviceBeans.xml b/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/conf/serviceBeans.xml
deleted file mode 100644
index 7dda68b..0000000
--- a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/conf/serviceBeans.xml
+++ /dev/null
@@ -1,98 +0,0 @@
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cxf="http://cxf.apache.org/core"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:task="http://www.springframework.org/schema/task" xmlns:jms="http://www.springframework.org/schema/jms"
- xsi:schemaLocation="
- http://cxf.apache.org/core
- http://cxf.apache.org/schemas/core.xsd
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-2.5.xsd
- http://www.springframework.org/schema/task
- http://www.springframework.org/schema/task/spring-task-3.0.xsd
- http://www.springframework.org/schema/jms
- http://www.springframework.org/schema/jms/spring-jms-4.1.xsd">
-
- <!-- Your bean definitions goes here -->
- <!-- <bean id="performanceLog" name="performanceLog" class="com.att.ajsc.csi.logging.PerformanceTracking"
- /> -->
- <!-- <bean id="processRestletHeaders" name="processRestletHeaders" class="ajsc.restlet.ProcessRestletHeaders"
- /> -->
- <bean id="servicePropsBean" name="servicePropsBean"
- class="org.onap.aai.ajsc_aai.util.ServicePropertiesMapBean" />
- <bean id="jsonProvider" class="org.onap.aai.restcore.CustomJacksonJaxBJsonProvider" />
-
- <bean id="inInterceptor" class="org.onap.aai.interceptors.AAILogJAXRSInInterceptor" />
- <bean id="outInterceptor" class="org.onap.aai.interceptors.AAILogJAXRSOutInterceptor" />
- <cxf:bus bus="cxfBus">
- <cxf:inInterceptors>
- <ref bean="inInterceptor" />
- </cxf:inInterceptors>
- <cxf:outInterceptors>
- <ref bean="outInterceptor" />
- </cxf:outInterceptors>
- </cxf:bus>
- <context:component-scan base-package="org.onap.aai.tasks" />
- <context:component-scan base-package="org.onap.aai.config" />
-
- <task:scheduler id="taskScheduler" pool-size="10" />
- <task:executor id="taskExecutor" pool-size="10"
- queue-capacity="5" />
- <task:annotation-driven executor="taskExecutor"
- scheduler="taskScheduler" />
-
- <bean id="jmsProperties"
- class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
- name="jmsProperties">
- <property name="order" value="99999" />
- <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
- <property name="ignoreUnresolvablePlaceholders" value="true" />
- <property name="properties">
- <value>
-
- <!-- JMS -->
- JMS.BROKER.URL=tcp://localhost:61446
- JMS.QUEUE.NAME=IN_QUEUE
-
- </value>
- </property>
- </bean>
-
- <!-- ActiveMQ connection factory -->
- <bean id="amqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
- <constructor-arg index="0" value="${JMS.BROKER.URL}" />
- </bean>
-
- <!-- ConnectionFactory Definition -->
- <bean id="connectionFactory"
- class="org.springframework.jms.connection.CachingConnectionFactory">
- <constructor-arg ref="amqConnectionFactory" />
- </bean>
-
- <!-- Destination Queue -->
- <bean id="destinationQueue" class="org.apache.activemq.command.ActiveMQQueue">
- <constructor-arg index="0" value="${JMS.QUEUE.NAME}" />
- </bean>
-
- <!-- JmsTemplate Definition -->
- <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
- <property name="connectionFactory" ref="connectionFactory" />
- <property name="defaultDestination" ref="destinationQueue" />
- </bean>
-
- <!-- Message Producer -->
- <bean id="messageProducer" class="org.onap.aai.dmaap.AAIDmaapEventJMSProducer" />
-
- <!-- Message Consumer from Default Destination -->
- <bean id="messageDefaultConsumer" class="org.onap.aai.dmaap.AAIDmaapEventJMSConsumer" />
-
- <!-- Message Consumer Container for Default Destination -->
- <bean
- class="org.springframework.jms.listener.DefaultMessageListenerContainer">
- <property name="connectionFactory" ref="connectionFactory" />
- <property name="destinationName" value="${JMS.QUEUE.NAME}" />
- <property name="messageListener" ref="messageDefaultConsumer" />
- </bean>
-
-</beans> \ No newline at end of file
diff --git a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/docs/README.txt b/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/docs/README.txt
deleted file mode 100644
index 3707179..0000000
--- a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/docs/README.txt
+++ /dev/null
@@ -1 +0,0 @@
-Place any docs here that you want to access within the ajsc upon deployment of your service.
diff --git a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/lib/README.txt b/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/lib/README.txt
deleted file mode 100644
index 639e21b..0000000
--- a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/lib/README.txt
+++ /dev/null
@@ -1 +0,0 @@
-3rd party JAR's needed by your jars (if any) for a ajsc deployment package go here... \ No newline at end of file
diff --git a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/props/module.props b/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/props/module.props
deleted file mode 100644
index 17ebc08..0000000
--- a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/props/module.props
+++ /dev/null
@@ -1 +0,0 @@
-EXAMPLE.PROPERTY=EXAMLE_VALUE \ No newline at end of file
diff --git a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/routes/aai.route b/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/routes/aai.route
deleted file mode 100644
index 6a86246..0000000
--- a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/routes/aai.route
+++ /dev/null
@@ -1,4 +0,0 @@
-<route xmlns="http://camel.apache.org/schema/spring" trace="true">
- <from uri="att-dme2-servlet:///aai?matchOnUriPrefix=true" />
- <to uri="cxfbean:jaxrsServices?providers=#jsonProvider&amp;bus=#cxfBus" />
-</route> \ No newline at end of file
diff --git a/aai-traversal/src/main/assemble/ajsc_module_assembly.xml b/aai-traversal/src/main/assemble/ajsc_module_assembly.xml
deleted file mode 100644
index 4ec4e28..0000000
--- a/aai-traversal/src/main/assemble/ajsc_module_assembly.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<assembly
- xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
- <id>${version}</id>
- <includeBaseDirectory>false</includeBaseDirectory>
- <formats>
- <format>zip</format>
- </formats>
- <fileSets>
- <fileSet>
- <directory>${project.basedir}/target/versioned-ajsc/routes/</directory>
- <outputDirectory>${module.ajsc.namespace.name}/${module.ajsc.namespace.version}/routes/</outputDirectory>
- <includes>
- <include>*.route</include>
- </includes>
-
- </fileSet>
-
- <fileSet>
- <directory>${project.basedir}/target/versioned-ajsc/docs/</directory>
- <outputDirectory>${module.ajsc.namespace.name}/${module.ajsc.namespace.version}/docs/</outputDirectory>
- <includes>
- <include>*.*</include>
- <!-- <include>*.vm</include> -->
- </includes>
-
- </fileSet>
-
- <fileSet>
- <directory>${project.basedir}/target/versioned-ajsc/lib/</directory>
- <outputDirectory>${module.ajsc.namespace.name}/${module.ajsc.namespace.version}/lib/</outputDirectory>
- <includes>
- <include>*.jar</include>
- </includes>
-
- </fileSet>
- <fileSet>
- <directory>${project.basedir}/target/versioned-ajsc/extJars/</directory>
- <outputDirectory>${module.ajsc.namespace.name}/${module.ajsc.namespace.version}/extJars/</outputDirectory>
- <includes>
- <include>*.jar</include>
- </includes>
- </fileSet>
-
- <!-- also try to grab outputs from the "jar" plugin's package phase -->
- <fileSet>
- <directory>${project.basedir}/target/</directory>
- <outputDirectory>${module.ajsc.namespace.name}/${module.ajsc.namespace.version}/lib/</outputDirectory>
- <includes>
- <include>*.jar</include>
- </includes>
- </fileSet>
-
- <fileSet>
- <directory>${project.basedir}/target/versioned-ajsc/conf/</directory>
- <outputDirectory>${module.ajsc.namespace.name}/${module.ajsc.namespace.version}/conf/</outputDirectory>
- <includes>
- <include>*.*</include>
- </includes>
-
- </fileSet>
- </fileSets>
-
-</assembly>
-
diff --git a/aai-traversal/src/main/assemble/ajsc_props_assembly.xml b/aai-traversal/src/main/assemble/ajsc_props_assembly.xml
deleted file mode 100644
index 5b8a6fa..0000000
--- a/aai-traversal/src/main/assemble/ajsc_props_assembly.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<assembly
- xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
- <id>${version}_properties</id>
- <includeBaseDirectory>false</includeBaseDirectory>
- <formats>
- <format>zip</format>
- </formats>
- <fileSets>
- <fileSet>
- <directory>${project.basedir}/target/versioned-ajsc/props</directory>
- <outputDirectory>${module.ajsc.namespace.name}/${module.ajsc.namespace.version}/props/</outputDirectory>
- <includes>
- <include>*.props</include>
- </includes>
-
- </fileSet>
-
- </fileSets>
-
-</assembly>
-
diff --git a/aai-traversal/src/main/assemble/ajsc_runtime_assembly.xml b/aai-traversal/src/main/assemble/ajsc_runtime_assembly.xml
deleted file mode 100644
index e37d366..0000000
--- a/aai-traversal/src/main/assemble/ajsc_runtime_assembly.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<assembly
- xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
- <id>runtimeEnvironment</id>
- <includeBaseDirectory>false</includeBaseDirectory>
- <formats>
- <format>zip</format>
- </formats>
- <fileSets>
- <fileSet>
- <directory>${project.basedir}/target/versioned-runtime/context/</directory>
- <outputDirectory>runtime/context/</outputDirectory>
- <includes>
- <include>*.context</include>
- </includes>
- </fileSet>
- <fileSet>
- <directory>${project.basedir}/target/versioned-runtime/serviceProperties/</directory>
- <outputDirectory>runtime/serviceProperties/</outputDirectory>
- <includes>
- <include>*.props</include>
- </includes>
- </fileSet><fileSet>
- <directory>${project.basedir}/target/versioned-runtime/shiroRole</directory>
- <outputDirectory>runtime/shiroRole/</outputDirectory>
- <includes>
- <include>*.json</include>
- </includes>
- </fileSet><fileSet>
- <directory>${project.basedir}/target/versioned-runtime/shiroUser</directory>
- <outputDirectory>runtime/shiroUser/</outputDirectory>
- <includes>
- <include>*.json</include>
- </includes>
- </fileSet><fileSet>
- <directory>${project.basedir}/target/versioned-runtime/shiroUserRole</directory>
- <outputDirectory>runtime/shiroUserRole</outputDirectory>
- <includes>
- <include>*.json</include>
- </includes>
- </fileSet>
- </fileSets>
-</assembly> \ No newline at end of file
diff --git a/aai-traversal/src/main/assembly/descriptor.xml b/aai-traversal/src/main/assembly/descriptor.xml
new file mode 100644
index 0000000..11c7ba2
--- /dev/null
+++ b/aai-traversal/src/main/assembly/descriptor.xml
@@ -0,0 +1,32 @@
+<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
+ <id>build</id>
+ <includeBaseDirectory>false</includeBaseDirectory>
+ <formats>
+ <format>dir</format>
+ </formats>
+ <fileSets>
+ <fileSet>
+ <directory>${project.basedir}/src/main/resources</directory>
+ <outputDirectory>/resources</outputDirectory>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ </fileSet>
+ <fileSet>
+ <directory>${project.basedir}/src/main/scripts</directory>
+ <outputDirectory>/bin</outputDirectory>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ </fileSet>
+ <fileSet>
+ <directory>${project.build.directory}</directory>
+ <outputDirectory>/lib</outputDirectory>
+ <includes>
+ <include>*.jar</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+</assembly>
diff --git a/aai-traversal/src/main/config/ajsc-jetty.xml b/aai-traversal/src/main/config/ajsc-jetty.xml
deleted file mode 100644
index b74b071..0000000
--- a/aai-traversal/src/main/config/ajsc-jetty.xml
+++ /dev/null
@@ -1,164 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
-<Configure id="ajsc-server" class="org.eclipse.jetty.server.Server">
- <!-- DO NOT REMOVE!!!! This is setting up the AJSC Context -->
- <New id="ajscContext" class="org.eclipse.jetty.webapp.WebAppContext">
- <Set name="contextPath"><SystemProperty name="AJSC_CONTEXT_PATH" /></Set>
- <Set name="extractWAR">true</Set>
- <Set name="tempDirectory"><SystemProperty name="AJSC_TEMP_DIR" /></Set>
- <Set name="war"><SystemProperty name="AJSC_WAR_PATH" /></Set>
- <Set name="descriptor"><SystemProperty name="AJSC_HOME" />/etc/runner-web.xml</Set>
- <Set name="overrideDescriptor"><SystemProperty name="AJSC_HOME" />/etc/ajsc-override-web.xml</Set>
- <Set name="throwUnavailableOnStartupException">true</Set>
- <Set name="servletHandler">
- <New class="org.eclipse.jetty.servlet.ServletHandler">
- <Set name="startWithUnavailable">false</Set>
- </New>
- </Set>
- <Set name="extraClasspath">
- <SystemProperty name="AJSC_HOME" />/extJars/aai-core-<SystemProperty name="aai-core.version"/>.jar,
- <SystemProperty name="AJSC_HOME" />/extJars/traversal.jar,
- <SystemProperty name="AJSC_HOME" />/extJars/logback-core-1.1.7.jar,
- <SystemProperty name="AJSC_HOME" />/extJars/logback-access-1.1.7.jar,
- <SystemProperty name="AJSC_HOME" />/extJars/eelf-core-1.0.0.jar,
- <SystemProperty name="AJSC_HOME" />/extJars/slf4j-api-1.7.21.jar
- </Set>
- </New>
-
- <Set name="handler">
- <New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
- <Set name="handlers">
- <Array type="org.eclipse.jetty.server.Handler">
- <Item>
- <New id="Contexts"
- class="org.eclipse.jetty.server.handler.ContextHandlerCollection">
- <Set name="Handlers">
- <Array type="org.eclipse.jetty.webapp.WebAppContext">
- <Item>
- <Ref refid="ajscContext" />
- </Item>
- </Array>
- </Set>
- </New>
- </Item>
- <!-- add a RequestLogHandler -->
- <Item>
- <New id="RequestLogHandler" class="org.eclipse.jetty.server.handler.RequestLogHandler">
- <Set name="requestLog">
- <New id="requestLogImpl" class="ch.qos.logback.access.jetty.RequestLogImpl">
- <Set name="fileName"><SystemProperty name="AJSC_HOME" />/bundleconfig/etc/localhost-access-logback.xml</Set>
- </New>
- </Set>
- </New>
- </Item>
- </Array>
- </Set>
- </New>
- </Set>
-
- <Call name="addBean">
- <Arg>
- <New id="DeploymentManager" class="org.eclipse.jetty.deploy.DeploymentManager">
- <Set name="contexts">
- <Ref refid="Contexts" />
- </Set>
- <Call id="extAppHotDeployProvider" name="addAppProvider">
- <Arg>
- <New class="org.eclipse.jetty.deploy.providers.WebAppProvider">
- <Set name="monitoredDirName"><SystemProperty name="AJSC_HOME" />/extApps</Set>
- <Set name="scanInterval">10</Set>
- <Set name="extractWars">true</Set>
- </New>
- </Arg>
- </Call>
- </New>
- </Arg>
- </Call>
-
- <Call name="addConnector">
- <Arg>
- <New class="org.eclipse.jetty.server.ServerConnector">
- <Arg name="server">
- <Ref refid="ajsc-server" />
- </Arg>
- <Set name="port"><SystemProperty name="AJSC_HTTP_PORT" default="8083" /></Set>
- </New>
- </Arg>
- </Call>
-
- <Call id="sslConnector" name="addConnector">
- <Arg>
- <New class="org.eclipse.jetty.server.ServerConnector">
- <Arg name="server">
- <Ref refid="ajsc-server" />
- </Arg>
- <Arg name="factories">
- <Array type="org.eclipse.jetty.server.ConnectionFactory">
- <Item>
- <New class="org.eclipse.jetty.server.SslConnectionFactory">
- <Arg name="next">http/1.1</Arg>
- <Arg name="sslContextFactory">
- <New id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory">
- <Set name="KeyStorePath">file:<SystemProperty name="AJSC_HOME" />/bundleconfig/etc/auth/aai_keystore</Set>
- <Set name="KeyStorePassword">
- <Call class="org.eclipse.jetty.util.security.Password" name="deobfuscate">
- <Arg><SystemProperty name="KEY_STORE_PASSWORD" /></Arg>
- </Call>
- </Set>
- <Set name="KeyManagerPassword">
- <Call class="org.eclipse.jetty.util.security.Password" name="deobfuscate">
- <Arg><SystemProperty name="KEY_MANAGER_PASSWORD" /></Arg>
- </Call>
- </Set>
- <Set name="needClientAuth">false</Set>
- <Set name="ExcludeProtocols">
- <Array type="java.lang.String">
- <Item>SSL</Item>
- <Item>SSLv2</Item>
- <Item>SSLv2Hello</Item>
- <Item>SSLv3</Item>
- <Item>TLSv1</Item>
- </Array>
- </Set>
- </New>
- </Arg>
- </New>
- </Item>
- <Item>
- <New class="org.eclipse.jetty.server.HttpConnectionFactory">
- <Arg name="config">
- <New class="org.eclipse.jetty.server.HttpConfiguration">
- <Call name="addCustomizer">
- <Arg>
- <New class="org.eclipse.jetty.server.SecureRequestCustomizer" />
- </Arg>
- </Call>
- </New>
- </Arg>
- </New>
- </Item>
- </Array>
- </Arg>
- <Set name="port"><SystemProperty name="AJSC_HTTPS_PORT" default="8446" /></Set>
- <Set name="idleTimeout">30000</Set>
- </New>
- </Arg>
- </Call>
-
- <Get name="ThreadPool">
- <Set name="minThreads"><SystemProperty name="AJSC_JETTY_ThreadCount_MIN" /></Set>
- <Set name="maxThreads"><SystemProperty name="AJSC_JETTY_ThreadCount_MAX" /></Set>
- <Set name="idleTimeout"><SystemProperty name="AJSC_JETTY_IDLETIME_MAX" /></Set>
- <Set name="detailedDump">false</Set>
- </Get>
- <Call name="addBean">
- <Arg>
- <New class="org.eclipse.jetty.security.HashLoginService">
- <Set name="name">Test Realm</Set>
- <Set name="config"><SystemProperty name="AJSC_HOME" />/etc/realm.properties</Set>
- <Set name="refreshInterval">5</Set>
- <Call name="start"></Call>
- </New>
- </Arg>
- </Call>
-</Configure>
diff --git a/aai-traversal/src/main/config/ajsc-jolokia-override-web.xml b/aai-traversal/src/main/config/ajsc-jolokia-override-web.xml
deleted file mode 100644
index b242129..0000000
--- a/aai-traversal/src/main/config/ajsc-jolokia-override-web.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
- metadata-complete="false" version="3.0">
-
- <filter-mapping>
- <filter-name>InterceptorFilter</filter-name>
- <url-pattern>/services/*</url-pattern>
- </filter-mapping>
- <filter-mapping>
- <filter-name>InterceptorFilter</filter-name>
- <url-pattern>/rest/*</url-pattern>
- </filter-mapping>
-
- <filter-mapping>
- <filter-name>springSecurityFilterChain</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
-
- <servlet-mapping>
- <servlet-name>ManagementServlet</servlet-name>
- <url-pattern>/mgmt</url-pattern>
- </servlet-mapping>
-
- <servlet-mapping>
- <servlet-name>RestletServlet</servlet-name>
- <url-pattern>/rest/*</url-pattern>
- </servlet-mapping>
-
- <servlet-mapping>
- <servlet-name>CamelServlet</servlet-name>
- <url-pattern>/services/*</url-pattern>
- </servlet-mapping>
-
- <servlet>
- <servlet-name>jolokia-agent</servlet-name>
- <servlet-class>org.jolokia.http.AgentServlet</servlet-class>
- <load-on-startup>2</load-on-startup>
- </servlet>
-
- <servlet-mapping>
- <servlet-name>jolokia-agent</servlet-name>
- <url-pattern>/jolokia/*</url-pattern>
- </servlet-mapping>
-
-</web-app> \ No newline at end of file
diff --git a/aai-traversal/src/main/config/ajsc-override-web.xml b/aai-traversal/src/main/config/ajsc-override-web.xml
deleted file mode 100644
index 61e2836..0000000
--- a/aai-traversal/src/main/config/ajsc-override-web.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
- metadata-complete="false" version="3.0">
-
- <filter-mapping>
- <filter-name>WriteableRequestFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- <filter-mapping>
- <filter-name>InterceptorFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- <filter-mapping>
- <filter-name>InterceptorFilter</filter-name>
- <url-pattern>/rest/*</url-pattern>
- </filter-mapping>
-
- <filter-mapping>
- <filter-name>springSecurityFilterChain</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
-
- <servlet-mapping>
- <servlet-name>ManagementServlet</servlet-name>
- <url-pattern>/mgmt</url-pattern>
- </servlet-mapping>
-
- <servlet-mapping>
- <servlet-name>RestletServlet</servlet-name>
- <url-pattern>/rest/*</url-pattern>
- </servlet-mapping>
-
- <servlet-mapping>
- <servlet-name>CamelServlet</servlet-name>
- <url-pattern>/*</url-pattern>
- </servlet-mapping>
-
-
-
-</web-app> \ No newline at end of file
diff --git a/aai-traversal/src/main/config/ajsc-request.xml b/aai-traversal/src/main/config/ajsc-request.xml
deleted file mode 100644
index 5d09b7a..0000000
--- a/aai-traversal/src/main/config/ajsc-request.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ns1:ErrorTranslationRequest
- xsi:schemaLocation="http://csi.cingular.com/CSI/Namespaces/Types/Private/ErrorTranslationRequest.xsd ErrorTranslationRequest.xsd"
- xmlns:ns1="http://csi.cingular.com/CSI/Namespaces/Types/Private/ErrorTranslationRequest.xsd"
- xmlns:th="http://csi.cingular.com/CSI/Namespaces/Types/Private/Implementation/TransactionHeader.xsd"
- xmlns:err="http://csi.cingular.com/CSI/Namespaces/Types/Public/ErrorResponse.xsd"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <ns1:TransactionHeader>
- <th:applicationId></th:applicationId>
- <th:MessageQualifier>
- <th:messageQualifier></th:messageQualifier>
- </th:MessageQualifier>
- <th:activityCode></th:activityCode>
- <th:sequenceNumber></th:sequenceNumber>
- <th:extendedSequenceNumber></th:extendedSequenceNumber>
- <th:creationDate></th:creationDate>
- <th:transactionDate></th:transactionDate>
- <th:timeToLive></th:timeToLive>
- <th:reasonCode></th:reasonCode>
- <th:systemId></th:systemId>
- <th:operatorId></th:operatorId>
- <th:reference></th:reference>
- <th:replyToAddress></th:replyToAddress>
- <th:originatorId></th:originatorId>
- <th:atlasMessageId></th:atlasMessageId>
- </ns1:TransactionHeader>
- <ns1:operation></ns1:operation>
- <ns1:ServiceEntityFault>
- <err:reportingServiceEntity></err:reportingServiceEntity>
- <err:faultDate></err:faultDate>
- <err:faultSequenceNumber></err:faultSequenceNumber>
- <err:faultLevel></err:faultLevel>
- <err:faultCode></err:faultCode>
- <err:faultDescription></err:faultDescription>
- <err:ServiceProviderRawError>
- <err:code></err:code>
- <err:description></err:description>
- <err:BISError>
- <err:code></err:code>
- <err:description></err:description>
- <err:origination></err:origination>
- <err:severity></err:severity>
- </err:BISError>
- </err:ServiceProviderRawError>
- </ns1:ServiceEntityFault>
- <ns1:conversationID></ns1:conversationID>
- <ns1:partnerName></ns1:partnerName>
- <ns1:isRESTService></ns1:isRESTService>
-</ns1:ErrorTranslationRequest> \ No newline at end of file
diff --git a/aai-traversal/src/main/config/hazelcast-client.properties b/aai-traversal/src/main/config/hazelcast-client.properties
deleted file mode 100644
index 2624d3f..0000000
--- a/aai-traversal/src/main/config/hazelcast-client.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-#
-# Copyright (c) 2008-2013, Hazelcast, Inc. 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.
-#
-
-hazelcast.client.group.name = ajsc
-hazelcast.client.group.pass = ajscpass
-hazelcast.client.connection.timeout = 30000
-hazelcast.client.connection.attempts.limit = 3
-hazelcast.client.reconnection.timeout = 5000
-hazelcast.client.reconnection.attempts.limit= 5
-hazelcast.client.shuffle.addresses = false
-hazelcast.client.update.automatic = true
-hazelcast.client.addresses = localhost, 127.0.0.1 \ No newline at end of file
diff --git a/aai-traversal/src/main/config/jul-redirect.properties b/aai-traversal/src/main/config/jul-redirect.properties
deleted file mode 100644
index 8b6624d..0000000
--- a/aai-traversal/src/main/config/jul-redirect.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-
-# Bridge JUL->slf4j Logging Configuration File
-#
-# This file bridges the JUL logging infrastructure into
-# SLF4J so JUL logs go to logback implementation provided
-# in this project. SLF4J also captures log4j and has
-# other framework options as well providing a common
-# logging infrastructure for capturing all logs from different
-# libraries using different frameworks in one place.
-
-# Global properties
-handlers=org.slf4j.bridge.SLF4JBridgeHandler
-.level= ALL
diff --git a/aai-traversal/src/main/config/keyfile b/aai-traversal/src/main/config/keyfile
deleted file mode 100644
index 6a1657e..0000000
--- a/aai-traversal/src/main/config/keyfile
+++ /dev/null
@@ -1,27 +0,0 @@
-ctRt8XTd7N57kcm0npZOWSDF5I69w9K97cQS_ep0AgxgHmYB0WtYblsrMGuHfyS1o4697zLiIeoS
-Nn5kE1kedl4c4HevfuwfoJpWyiugYusNOqbTGQJ1MHOwqiBEJnjXepZEoz1btaW_hDO7uz-BoD4t
-SxwNRwVQpcg0_CmBX-yIW2YCIECoxZH9_X_8fcXYHP2VgFxxBpvjgycNQlyN15_VSuLwn3Wj0W8_
-8chRxGURyhp8iEBSb4tIdN5jXkhCma7AP7wreMufFQqXjdfWqIisJPfIpS3znl5IiTOZP22XhHay
-gq2KFwABVqjM71m5czEz1ojGkbFEAGImrY-VFHuug2u4ss4VW7TGeJst0z7I5vrn5M6i9Eb6xiGh
-jNUebRCV3cYGrtD9SlvjJBVVeP_3OrkxlD4oktx-JTRJzYtXADB5if2gtpYxy84kqrz7ltr5rXUH
-zSG7ujKCXOOE_Wk6vQPSjYPnum6R_mxOorCNCvtf6ne85Xd81DZlJM-CleVNdOU7g1xie-gBZPAX
-bOvWf6p_pVNmH76v-m4XLAAUqEzt-9PvNmirODiDiY5bNz6l-1ejw8IyQYb37e_3sN_LjF7A9HgB
-Dia7kNjsfB7_2vB7R4qjwNLsmTMnQCDANnNpl9VpotZ4blPhhOWhB1Tg3lxc-z-VRV7GBbl_2eQd
-3eYUT1Z5Li184W4-pft_TCaDJ1NyaJd1CQxQEuIORdq5B6Q2L9SMmmOOh82Czu5_Ro80IGikHXHp
-Lqf2fIaceY_IBAeGp2iPjtXdkghV24vIT49oRfqf6sBKAPy-88xILnMWM6M5bMCETKn7UvM1kV5y
-ZQYlsi-36n73ETZyiFs1PLqe8D6dRURrcBG_B9i1MafNiWa-elG6E0X0pSK9CadchSA0KRMaKtfE
-6-iyUqE-bx-0ELTbV2y7gLdu5MVtjRmQB5ozoaBq8ik4-jAWAsKpTv4DfWoMp9DkRENlKeauayuT
-j_VAGhqy07pIntQKtbK9EP0tndSKtF3WLwHel1I5C3lthhkxxfzpxURBxO1ZJMFJZ6rLu1Ku03zw
-LJ7nFFR_YfJ7tnGZE4PEt7MOZNiNoD3__9PthO5HmZdk1gPMrKlojU1hyR3IlbVShUst6rA3MkWk
-MD-zlw9mhNgaV3xvPJ945pYPe4C6qIwxXoiXGHyhv_0MpcvuMW-pUuAZXfkuiqNwQnpUTLBD0YJw
-uwMbE7sN40e6-BSxEiMOab7s2gShbaK9JjCMQUH_vAuQSZjU4sn53jsS7U4DHntzgxVYttIwGZaU
-b-1R7jYphNJnCI8rPB_xjJ0OMssNKT7lYRgG_ZuKvifYvJWt-NwD0z2qoePcRGExXuioRDNR4SlB
--RN33dYhp6vRsHKT1oLpl-UJB6dqJlZ2dCsfc7vT1Vs0SYidRYXCUJNBSePI4-1LMlHKOqGASBcg
-pl589601-EtO7ch3RoaL26rNXzA-umUWYRPQPZ76wcgK2j4k5Ndub5dWK9jI6UW3RbF6ixe0Yw2j
-_Pipt4EX8R6-sb87D69JOOnZlFVB6EcCO07Q7j6DavpUNHlLmDmPgArqODh002scvW1ryMxBR2XE
-m3kGQh2IFh5Qru8duxblEYE-lmHGxXVgDtKiKgHwPTkaxcquEtZTEJxaIJIgoKj7SgMzdfbeLlJM
-RwbdvExmnRT9ivFImeIV7ACPnfBP3URd82kTG8FyiMvSpdCLL16FWOd9gjZuMstqZrmIVF8tO2WT
-COMIx-jqvQD2zS1Ul5p0szJaf-CxBjy7-cJIaAyEToR1T5bBFtQt4sEFxG7XG0cCoXShqclL70TV
-W13X5pY55YwHkCR4mRjc0o0ZKStY3OADVLFom1bC9AmMBqU4PsKNAX29LT37WE-I23tQgzid0Ix9
-JuVzlbOTvi19uLYbltrHavU3UbVhYxNNI7Y7tM02xfq3LhGqZG5EPS-WAB9bBixHQqw78cd9iqIr
-hHlZW80l1kgs1ezMqgxfwDuiFOZIu9UWQ6vSnTAvfhwJhcr77gSk5Gu957uxzleaS4gVwTYU
diff --git a/aai-traversal/src/main/config/runner-web.xml b/aai-traversal/src/main/config/runner-web.xml
deleted file mode 100644
index 8a3a316..0000000
--- a/aai-traversal/src/main/config/runner-web.xml
+++ /dev/null
@@ -1,106 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
- metadata-complete="false" version="3.0">
-
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>/WEB-INF/spring-servlet.xml,
- classpath:applicationContext.xml
- </param-value>
- </context-param>
-
- <context-param>
- <param-name>spring.profiles.default</param-name>
- <param-value>nooauth</param-value>
- </context-param>
-
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
-
- <servlet>
- <servlet-name>ManagementServlet</servlet-name>
- <servlet-class>ajsc.ManagementServlet</servlet-class>
- </servlet>
-
- <filter>
- <filter-name>WriteableRequestFilter</filter-name>
- <filter-class>com.att.ajsc.csi.writeablerequestfilter.WriteableRequestFilter</filter-class>
- </filter>
-
- <filter>
- <filter-name>InterceptorFilter</filter-name>
- <filter-class>ajsc.filters.InterceptorFilter</filter-class>
- <init-param>
- <param-name>preProcessor_interceptor_config_file</param-name>
- <param-value>/etc/PreProcessorInterceptors.properties</param-value>
- </init-param>
- <init-param>
- <param-name>postProcessor_interceptor_config_file</param-name>
- <param-value>/etc/PostProcessorInterceptors.properties</param-value>
- </init-param>
-
- </filter>
-
- <servlet>
- <servlet-name>RestletServlet</servlet-name>
- <servlet-class>ajsc.restlet.RestletSpringServlet</servlet-class>
- <init-param>
- <param-name>org.restlet.component</param-name>
- <param-value>restletComponent</param-value>
- </init-param>
- </servlet>
-
- <servlet>
- <servlet-name>CamelServlet</servlet-name>
- <servlet-class>ajsc.servlet.AjscCamelServlet</servlet-class>
- </servlet>
-
-
- <filter>
- <filter-name>springSecurityFilterChain</filter-name>
- <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
- </filter>
-
- <servlet>
- <servlet-name>spring</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
-
-
-
- <servlet-mapping>
- <servlet-name>spring</servlet-name>
- <url-pattern>/</url-pattern>
- </servlet-mapping>
-
- <listener>
- <listener-class>
- org.onap.aai.util.AAIAppServletContextListener
- </listener-class>
- </listener>
- <security-constraint>
- <web-resource-collection>
- <web-resource-name>Open Source</web-resource-name>
- <url-pattern>/aai/*</url-pattern>
- </web-resource-collection>
- <auth-constraint>
- <role-name>admin</role-name>
- </auth-constraint>
- <user-data-constraint>
- <transport-guarantee>CONFIDENTIAL</transport-guarantee>
- </user-data-constraint>
- </security-constraint>
-
- <login-config>
- <auth-method>BASIC</auth-method>
- <realm-name>Test Realm</realm-name>
- </login-config>
-
- <security-role>
- <role-name>admin</role-name>
- </security-role>
-
-</web-app>
diff --git a/aai-traversal/src/main/docker/Dockerfile b/aai-traversal/src/main/docker/Dockerfile
new file mode 100644
index 0000000..3e4cd77
--- /dev/null
+++ b/aai-traversal/src/main/docker/Dockerfile
@@ -0,0 +1,22 @@
+FROM aaionap/aai-common:1.2.0
+
+
+# Add the proper files into the docker image from your build
+WORKDIR /opt/app/aai-traversal
+
+# Expose the ports for outside linux to use
+# 8446 is the important one to be used
+EXPOSE 8446
+
+
+HEALTHCHECK --interval=40s --timeout=10s --retries=3 CMD nc -z -v localhost 8446 || exit 1
+
+ENTRYPOINT ["/bin/bash", "/opt/app/aai-traversal/docker-entrypoint.sh"]
+
+RUN mkdir -p /opt/aaihome/aaiadmin /opt/aai/logroot/AAI-GQ
+
+VOLUME /opt/aai/logroot/AAI-GQ
+
+COPY /maven/aai-traversal/ .
+
+ENV AAI_BUILD_VERSION @aai.docker.version@
diff --git a/aai-traversal/src/main/resources/docker/aai.sh b/aai-traversal/src/main/docker/aai.sh
index a253775..a253775 100644
--- a/aai-traversal/src/main/resources/docker/aai.sh
+++ b/aai-traversal/src/main/docker/aai.sh
diff --git a/aai-traversal/src/main/docker/docker-entrypoint.sh b/aai-traversal/src/main/docker/docker-entrypoint.sh
new file mode 100644
index 0000000..efaba95
--- /dev/null
+++ b/aai-traversal/src/main/docker/docker-entrypoint.sh
@@ -0,0 +1,119 @@
+###
+# ============LICENSE_START=======================================================
+# org.onap.aai
+# ================================================================================
+# Copyright (C) 2017 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.
+# ============LICENSE_END=========================================================
+###
+
+APP_HOME=$(pwd);
+RESOURCES_HOME=${APP_HOME}/resources/;
+
+export CHEF_CONFIG_REPO=${CHEF_CONFIG_REPO:-aai-config};
+export CHEF_GIT_URL=${CHEF_GIT_URL:-http://gerrit.onap.org/r/aai};
+export CHEF_CONFIG_GIT_URL=${CHEF_CONFIG_GIT_URL:-$CHEF_GIT_URL};
+export CHEF_DATA_GIT_URL=${CHEF_DATA_GIT_URL:-$CHEF_GIT_URL};
+
+export SERVER_PORT=${SERVER_PORT:-8446};
+
+export RESOURCES_HOSTNAME=${RESOURCES_HOSTNAME:-aai-resources.api.simpledemo.onap.org};
+export RESOURCES_PORT=${RESOURCES_PORT:-8447};
+
+USER_ID=${LOCAL_USER_ID:-9001}
+GROUP_ID=${LOCAL_GROUP_ID:-9001}
+
+if [ $(cat /etc/passwd | grep aaiadmin | wc -l) -eq 0 ]; then
+
+ ln -s bin scripts
+ ln -s /opt/aai/logroot/AAI-GQ logs
+
+ groupadd aaiadmin -g ${GROUP_ID} || {
+ echo "Unable to create the group id for ${GROUP_ID}";
+ exit 1;
+ }
+ useradd --shell=/bin/bash -u ${USER_ID} -g ${GROUP_ID} -o -c "" -m aaiadmin || {
+ echo "Unable to create the user id for ${USER_ID}";
+ exit 1;
+ }
+fi;
+
+chown -R aaiadmin:aaiadmin /opt/app /opt/aai/logroot /var/chef
+find /opt/app/ -name "*.sh" -exec chmod +x {} +
+
+if [ -f ${APP_HOME}/aai.sh ]; then
+ mv ${APP_HOME}/aai.sh /etc/profile.d/aai.sh
+ chmod 755 /etc/profile.d/aai.sh
+fi;
+
+if [ -z ${DISABLE_UPDATE_QUERY} ]; then
+ UPDATE_QUERY_RAN_FILE="updateQueryRan.txt";
+ gosu aaiadmin /opt/app/aai-traversal/bin/install/updateQueryData.sh
+ gosu aaiadmin touch ${UPDATE_QUERY_RAN_FILE};
+fi
+
+JAVA_CMD="exec gosu aaiadmin java";
+
+JVM_OPTS="${PRE_JVM_OPTS} -XX:+UnlockDiagnosticVMOptions";
+JVM_OPTS="${JVM_OPTS} -XX:+UnsyncloadClass";
+JVM_OPTS="${JVM_OPTS} -XX:+UseConcMarkSweepGC";
+JVM_OPTS="${JVM_OPTS} -XX:+CMSParallelRemarkEnabled";
+JVM_OPTS="${JVM_OPTS} -XX:+UseCMSInitiatingOccupancyOnly";
+JVM_OPTS="${JVM_OPTS} -XX:CMSInitiatingOccupancyFraction=70";
+JVM_OPTS="${JVM_OPTS} -XX:+ScavengeBeforeFullGC";
+JVM_OPTS="${JVM_OPTS} -XX:+CMSScavengeBeforeRemark";
+JVM_OPTS="${JVM_OPTS} -XX:-HeapDumpOnOutOfMemoryError";
+JVM_OPTS="${JVM_OPTS} -XX:+UseParNewGC";
+JVM_OPTS="${JVM_OPTS} -verbose:gc";
+JVM_OPTS="${JVM_OPTS} -XX:+PrintGCDetails";
+JVM_OPTS="${JVM_OPTS} -XX:+PrintGCTimeStamps";
+JVM_OPTS="${JVM_OPTS} -XX:MaxPermSize=512M";
+JVM_OPTS="${JVM_OPTS} -XX:PermSize=512M";
+JVM_OPTS="${JVM_OPTS} -server";
+JVM_OPTS="${JVM_OPTS} -XX:NewSize=512m";
+JVM_OPTS="${JVM_OPTS} -XX:MaxNewSize=512m";
+JVM_OPTS="${JVM_OPTS} -XX:SurvivorRatio=8";
+JVM_OPTS="${JVM_OPTS} -XX:+DisableExplicitGC";
+JVM_OPTS="${JVM_OPTS} -verbose:gc";
+JVM_OPTS="${JVM_OPTS} -XX:+UseParNewGC";
+JVM_OPTS="${JVM_OPTS} -XX:+CMSParallelRemarkEnabled";
+JVM_OPTS="${JVM_OPTS} -XX:+CMSClassUnloadingEnabled";
+JVM_OPTS="${JVM_OPTS} -XX:+UseConcMarkSweepGC";
+JVM_OPTS="${JVM_OPTS} -XX:-UseBiasedLocking";
+JVM_OPTS="${JVM_OPTS} -XX:ParallelGCThreads=4";
+JVM_OPTS="${JVM_OPTS} -XX:LargePageSizeInBytes=128m";
+JVM_OPTS="${JVM_OPTS} -XX:+PrintGCDetails";
+JVM_OPTS="${JVM_OPTS} -XX:+PrintGCTimeStamps";
+JVM_OPTS="${JVM_OPTS} -Xloggc:/opt/app/aai-traversal/logs/ajsc-jetty/gc/aai_gc.log";
+JVM_OPTS="${JVM_OPTS} -Dsun.net.inetaddr.ttl=180";
+JVM_OPTS="${JVM_OPTS} -XX:+HeapDumpOnOutOfMemoryError";
+JVM_OPTS="${JVM_OPTS} -XX:HeapDumpPath=/opt/app/aai-traversal/logs/ajsc-jetty/heap-dump";
+JVM_OPTS="${JVM_OPTS} ${POST_JVM_OPTS}";
+
+JAVA_OPTS="${PRE_JAVA_OPTS} -DAJSC_HOME=$APP_HOME";
+JAVA_OPTS="${JAVA_OPTS} -Dserver.port=${SERVER_PORT}";
+JAVA_OPTS="${JAVA_OPTS} -DBUNDLECONFIG_DIR=./resources";
+JAVA_OPTS="${JAVA_OPTS} -Dserver.local.startpath=${RESOURCES_HOME}";
+JAVA_OPTS="${JAVA_OPTS} -DAAI_CHEF_ENV=${AAI_CHEF_ENV}";
+JAVA_OPTS="${JAVA_OPTS} -DSCLD_ENV=${SCLD_ENV}";
+JAVA_OPTS="${JAVA_OPTS} -DAFT_ENVIRONMENT=${AFT_ENVIRONMENT}";
+JAVA_OPTS="${JAVA_OPTS} -DlrmName=com.att.ajsc.traversal";
+JAVA_OPTS="${JAVA_OPTS} -DAAI_BUILD_NUMBER=${AAI_BUILD_NUMBER}";
+JAVA_OPTS="${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom";
+JAVA_OPTS="${JAVA_OPTS} -Dloader.path=$APP_HOME/resources";
+JAVA_OPTS="${JAVA_OPTS} ${POST_JAVA_OPTS}";
+
+JAVA_MAIN_JAR=$(ls lib/aai-traversal-*SNAPSHOT.jar);
+
+${JAVA_CMD} ${JVM_OPTS} ${JAVA_OPTS} -jar ${JAVA_MAIN_JAR};
diff --git a/aai-traversal/src/main/java/org/onap/aai/Profiles.java b/aai-traversal/src/main/java/org/onap/aai/Profiles.java
new file mode 100644
index 0000000..0b1292d
--- /dev/null
+++ b/aai-traversal/src/main/java/org/onap/aai/Profiles.java
@@ -0,0 +1,12 @@
+package org.onap.aai;
+
+public final class Profiles {
+
+ public static final String DMAAP = "dmaap";
+ public static final String DME2 = "dme2";
+
+ public static final String ONE_WAY_SSL = "one-way-ssl";
+ public static final String TWO_WAY_SSL = "two-way-ssl";
+
+ private Profiles(){}
+}
diff --git a/aai-traversal/src/main/java/org/onap/aai/TraversalApp.java b/aai-traversal/src/main/java/org/onap/aai/TraversalApp.java
new file mode 100644
index 0000000..fb97908
--- /dev/null
+++ b/aai-traversal/src/main/java/org/onap/aai/TraversalApp.java
@@ -0,0 +1,130 @@
+package org.onap.aai;
+
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+import org.onap.aai.config.PropertyPasswordConfiguration;
+import org.onap.aai.dbmap.AAIGraph;
+import org.onap.aai.exceptions.AAIException;
+import org.onap.aai.introspection.ModelInjestor;
+import org.onap.aai.logging.LoggingContext;
+import org.onap.aai.util.AAIConfig;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
+import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.core.env.Environment;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import java.util.UUID;
+
+@SpringBootApplication
+// Component Scan provides a way to look for spring beans
+// It only searches beans in the following packages
+// Any method annotated with @Bean annotation or any class
+// with @Component, @Configuration, @Service will be picked up
+@ComponentScan(basePackages = {
+ "org.onap.aai.config",
+ "org.onap.aai.web",
+ "org.onap.aai.tasks",
+ "org.onap.aai.rest",
+ "com.att.ajsc.common"
+})
+@EnableAutoConfiguration(exclude = {
+ DataSourceAutoConfiguration.class,
+ DataSourceTransactionManagerAutoConfiguration.class,
+ HibernateJpaAutoConfiguration.class
+})
+public class TraversalApp {
+
+ private static final EELFLogger logger = EELFManager.getInstance().getLogger(TraversalApp.class.getName());
+
+ private static final String APP_NAME = "aai-traversal";
+
+ @Autowired
+ private Environment env;
+
+ @PostConstruct
+ private void init() throws AAIException {
+ System.setProperty("org.onap.aai.serverStarted", "false");
+ setDefaultProps();
+
+ LoggingContext.save();
+ LoggingContext.component("init");
+ LoggingContext.partnerName("NA");
+ LoggingContext.targetEntity(APP_NAME);
+ LoggingContext.requestId(UUID.randomUUID().toString());
+ LoggingContext.serviceName(APP_NAME);
+ LoggingContext.targetServiceName("contextInitialized");
+
+ logger.info("AAI Server initialization started...");
+
+ // Setting this property to allow for encoded slash (/) in the path parameter
+ // This is only needed for tomcat keeping this as temporary
+ System.setProperty("org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH", "true");
+
+ logger.info("Starting AAIGraph connections and the ModelInjestor");
+
+ if(env.acceptsProfiles(Profiles.TWO_WAY_SSL) && env.acceptsProfiles(Profiles.ONE_WAY_SSL)){
+ logger.warn("You have seriously misconfigured your application");
+ }
+
+ AAIConfig.init();
+ ModelInjestor.getInstance();
+ AAIGraph.getInstance();
+ }
+
+ @PreDestroy
+ public void cleanup(){
+ logger.info("Shutting down both realtime and cached connections");
+ AAIGraph.getInstance().graphShutdown();
+ }
+
+ public static void main(String[] args) {
+
+ setDefaultProps();
+ SpringApplication app = new SpringApplication(TraversalApp.class);
+ app.setRegisterShutdownHook(true);
+ app.addInitializers(new PropertyPasswordConfiguration());
+ Environment env = app.run(args).getEnvironment();
+
+ logger.info(
+ "Application '{}' is running on {}!" ,
+ env.getProperty("spring.application.name"),
+ env.getProperty("server.port")
+ );
+
+ logger.info("Traversal MicroService Started");
+ logger.error("Traversal MicroService Started");
+ logger.debug("Traversal MicroService Started");
+ System.out.println("Traversal Microservice Started");
+ }
+
+ public static void setDefaultProps(){
+
+ if (System.getProperty("file.separator") == null) {
+ System.setProperty("file.separator", "/");
+ }
+
+ String currentDirectory = System.getProperty("user.dir");
+
+ if (System.getProperty("AJSC_HOME") == null) {
+ System.setProperty("AJSC_HOME", ".");
+ }
+
+ if(currentDirectory.contains(APP_NAME)){
+ if (System.getProperty("BUNDLECONFIG_DIR") == null) {
+ System.setProperty("BUNDLECONFIG_DIR", "src/main/resources");
+ }
+ } else {
+ if (System.getProperty("BUNDLECONFIG_DIR") == null) {
+ System.setProperty("BUNDLECONFIG_DIR", "aai-traversal/src/main/resources");
+ }
+ }
+
+ }
+}
diff --git a/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/JaxrsErrorMessageLookupService.java b/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/JaxrsErrorMessageLookupService.java
deleted file mode 100644
index 6aa1f29..0000000
--- a/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/JaxrsErrorMessageLookupService.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 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.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.onap.aai.ajsc_aai;
-
-//import java.util.HashMap;
-//import java.util.Map;
-
-//import javax.ws.rs.GET;
-//import javax.ws.rs.HeaderParam;
-//import javax.ws.rs.Path;
-//import javax.ws.rs.PathParam;
-//import javax.ws.rs.Produces;
-
-//import org.slf4j.Logger;
-//import org.slf4j.LoggerFactory;
-//import org.springframework.web.context.ContextLoader;
-//import org.springframework.web.context.WebApplicationContext;
-
-//import ajsc.ErrorMessageLookupService;
-
-//@Path("/errormessage")
-//public class JaxrsErrorMessageLookupService {
-
- //private final static Logger logger = LoggerFactory
- //.getLogger(ErrorMessageLookupService.class);
-
- //*
- //Gets the message.
-
- //@param input the input
- //@param errorCode the error code
- //@param appId the app id
- //@param operation the operation
- //@param messageText the message text
- //@param isRESTService the is REST service
- //@param faultEntity the fault entity
- //@param ConvID the conv ID
- //@return the message
- //@GET
- //@Path("/emls")
- //@Produces("text/plain")
- //public String getMessage(@PathParam("input") String input,
- //@HeaderParam("errorCode") String errorCode,
- //@HeaderParam("appId") String appId,
- //@HeaderParam("operation") String operation,
- //@HeaderParam("messageText") String messageText,
- //@HeaderParam("isRESTService") String isRESTService,
- //@HeaderParam("faultEntity") String faultEntity,
- //@HeaderParam("ConvID") String ConvID) {
-
- //Map<String, String> headers = new HashMap<String, String>();
- //headers.put(errorCode, errorCode);
- //headers.put(appId, appId);
- //headers.put(operation, operation);
- //headers.put(messageText, messageText);
- //headers.put(isRESTService, isRESTService);
- //headers.put(faultEntity, faultEntity);
- //headers.put(ConvID, ConvID);
-
- //WebApplicationContext applicationContext = ContextLoader
- //.getCurrentWebApplicationContext();
-
- //ErrorMessageLookupService e = (ErrorMessageLookupService) applicationContext
- //.getBean("errorMessageLookupService");
-
- //String message = e.getExceptionDetails(appId, operation, errorCode,
- //messageText,isRESTService, faultEntity, ConvID);
-
- //System.out.println("Error code = " + errorCode);
- //System.out.println("appId = " + appId);
- //System.out.println("operation = " + operation);
- //System.out.println("messageText = " + messageText);
- //System.out.println("isRESTService = " + isRESTService);
- //System.out.println("faultEntity = " + faultEntity);
- //System.out.println("ConvID = " + ConvID);
- //return "The exception message is:\n " + message;
- //}
-
-//}
-
diff --git a/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/JaxrsUserService.java b/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/JaxrsUserService.java
deleted file mode 100644
index 29cf62a..0000000
--- a/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/JaxrsUserService.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 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.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.onap.aai.ajsc_aai;
-
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import java.util.Map;
-import java.util.HashMap;
-
-@Path("/user")
-public class JaxrsUserService {
-
- private static final Map<String,String> userIdToNameMap;
- static {
- userIdToNameMap = new HashMap<>();
- userIdToNameMap.put("userID1","Name1");
- userIdToNameMap.put("userID2","Name2");
- }
-
- /**
- * Lookup user.
- *
- * @param userId the user id
- * @return the string
- */
- @GET
- @Path("/{userId}")
- @Produces("text/plain")
- public String lookupUser(@PathParam("userId") String userId) {
- String name = userIdToNameMap.get(userId);
- return name != null ? name : "unknown id";
- }
-
-}
diff --git a/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/filemonitor/ServicePropertiesListener.java b/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/filemonitor/ServicePropertiesListener.java
deleted file mode 100644
index c806045..0000000
--- a/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/filemonitor/ServicePropertiesListener.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 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.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
diff --git a/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/filemonitor/ServicePropertiesMap.java b/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/filemonitor/ServicePropertiesMap.java
deleted file mode 100644
index 7274c61..0000000
--- a/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/filemonitor/ServicePropertiesMap.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 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.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.onap.aai.ajsc_aai.filemonitor;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-public class ServicePropertiesMap
-{
- private static HashMap<String, HashMap<String, String>> mapOfMaps = new HashMap<String, HashMap<String, String>>();
- private static final EELFLogger LOGGER = EELFManager.getInstance().getLogger(ServicePropertiesMap.class);
-
- /**
- * Refresh.
- *
- * @param file the file
- * @throws Exception the exception
- */
- public static void refresh(File file) throws Exception
- {
- try
- {
- LOGGER.info("Loading properties - " + (file != null?file.getName():""));
-
- //Store .json & .properties files into map of maps
- String filePath = file.getPath();
-
- if(filePath.lastIndexOf(".json")>0){
-
- ObjectMapper om = new ObjectMapper();
- TypeReference<HashMap<String, String>> typeRef = new TypeReference<HashMap<String, String>>() {};
- HashMap<String, String> propMap = om.readValue(file, typeRef);
- HashMap<String, String> lcasePropMap = new HashMap<String, String>();
- for (String key : propMap.keySet() )
- {
- String lcaseKey = ifNullThenEmpty(key);
- lcasePropMap.put(lcaseKey, propMap.get(key));
- }
-
- mapOfMaps.put(file.getName(), lcasePropMap);
-
-
- }else if(filePath.lastIndexOf(".properties")>0){
- Properties prop = new Properties();
- FileInputStream fis = new FileInputStream(file);
- prop.load(fis);
-
- @SuppressWarnings("unchecked")
- HashMap<String, String> propMap = new HashMap<String, String>((Map)prop);
-
- mapOfMaps.put(file.getName(), propMap);
- }
-
- LOGGER.info("File - " + file.getName() + " is loaded into the map and the corresponding system properties have been refreshed");
- }
- catch (Exception e)
- {
- LOGGER.error("File " + (file != null?file.getName():"") + " cannot be loaded into the map ", e);
- throw new Exception("Error reading map file " + (file != null?file.getName():""), e);
- }
- }
-
- /**
- * Gets the property.
- *
- * @param fileName the file name
- * @param propertyKey the property key
- * @return the property
- */
- public static String getProperty(String fileName, String propertyKey)
- {
- HashMap<String, String> propMap = mapOfMaps.get(fileName);
- return propMap!=null?propMap.get(ifNullThenEmpty(propertyKey)):"";
- }
-
- /**
- * Gets the properties.
- *
- * @param fileName the file name
- * @return the properties
- */
- public static HashMap<String, String> getProperties(String fileName){
- return mapOfMaps.get(fileName);
- }
-
- /**
- * If null then empty.
- *
- * @param key the key
- * @return the string
- */
- private static String ifNullThenEmpty(String key) {
- if (key == null) {
- return "";
- } else {
- return key;
- }
- }
-
-}
diff --git a/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/filemonitor/ServicePropertyService.java b/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/filemonitor/ServicePropertyService.java
deleted file mode 100644
index c806045..0000000
--- a/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/filemonitor/ServicePropertyService.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 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.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
diff --git a/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/util/ServicePropertiesMapBean.java b/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/util/ServicePropertiesMapBean.java
deleted file mode 100644
index 71c290b..0000000
--- a/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/util/ServicePropertiesMapBean.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 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.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.onap.aai.ajsc_aai.util;
-
-import org.onap.aai.ajsc_aai.filemonitor.ServicePropertiesMap;
-
-public class ServicePropertiesMapBean {
-
- /**
- * Gets the property.
- *
- * @param propFileName the prop file name
- * @param propertyKey the property key
- * @return the property
- */
- public static String getProperty(String propFileName, String propertyKey) {
- return ServicePropertiesMap.getProperty(propFileName, propertyKey);
- }
-}
diff --git a/aai-traversal/src/main/java/org/onap/aai/config/DmaapConfig.java b/aai-traversal/src/main/java/org/onap/aai/config/DmaapConfig.java
deleted file mode 100644
index 247ecf7..0000000
--- a/aai-traversal/src/main/java/org/onap/aai/config/DmaapConfig.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 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.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.onap.aai.config;
-
-import org.apache.activemq.broker.BrokerService;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class DmaapConfig {
-
- @Bean(destroyMethod = "stop")
- public BrokerService brokerService() throws Exception {
-
- BrokerService broker = new BrokerService();
- broker.addConnector("tcp://localhost:61446");
- broker.setPersistent(false);
- broker.setUseJmx(false);
- broker.setSchedulerSupport(false);
- broker.start();
-
- return broker;
- }
-}
diff --git a/aai-traversal/src/main/java/org/onap/aai/config/JettyPasswordDecoder.java b/aai-traversal/src/main/java/org/onap/aai/config/JettyPasswordDecoder.java
new file mode 100644
index 0000000..069d71b
--- /dev/null
+++ b/aai-traversal/src/main/java/org/onap/aai/config/JettyPasswordDecoder.java
@@ -0,0 +1,14 @@
+package org.onap.aai.config;
+
+import org.eclipse.jetty.util.security.Password;
+
+public class JettyPasswordDecoder implements PasswordDecoder {
+
+ @Override
+ public String decode(String input) {
+ if (input.startsWith("OBF:")) {
+ return Password.deobfuscate(input);
+ }
+ return Password.deobfuscate("OBF:" + input);
+ }
+}
diff --git a/aai-traversal/src/main/java/org/onap/aai/config/PasswordDecoder.java b/aai-traversal/src/main/java/org/onap/aai/config/PasswordDecoder.java
new file mode 100644
index 0000000..131bc6e
--- /dev/null
+++ b/aai-traversal/src/main/java/org/onap/aai/config/PasswordDecoder.java
@@ -0,0 +1,6 @@
+package org.onap.aai.config;
+
+public interface PasswordDecoder {
+
+ String decode(String input);
+}
diff --git a/aai-traversal/src/main/java/org/onap/aai/config/PropertyPasswordConfiguration.java b/aai-traversal/src/main/java/org/onap/aai/config/PropertyPasswordConfiguration.java
new file mode 100644
index 0000000..a282f85
--- /dev/null
+++ b/aai-traversal/src/main/java/org/onap/aai/config/PropertyPasswordConfiguration.java
@@ -0,0 +1,62 @@
+package org.onap.aai.config;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Optional;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.springframework.context.ApplicationContextInitializer;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.core.env.CompositePropertySource;
+import org.springframework.core.env.ConfigurableEnvironment;
+import org.springframework.core.env.EnumerablePropertySource;
+import org.springframework.core.env.MapPropertySource;
+import org.springframework.core.env.PropertySource;
+import org.springframework.stereotype.Component;
+
+public class PropertyPasswordConfiguration implements ApplicationContextInitializer<ConfigurableApplicationContext> {
+
+ private static final Pattern decodePasswordPattern = Pattern.compile("password\\((.*?)\\)");
+
+ private PasswordDecoder passwordDecoder = new JettyPasswordDecoder();
+
+ @Override
+ public void initialize(ConfigurableApplicationContext applicationContext) {
+ ConfigurableEnvironment environment = applicationContext.getEnvironment();
+ for (PropertySource<?> propertySource : environment.getPropertySources()) {
+ Map<String, Object> propertyOverrides = new LinkedHashMap<>();
+ decodePasswords(propertySource, propertyOverrides);
+ if (!propertyOverrides.isEmpty()) {
+ PropertySource<?> decodedProperties = new MapPropertySource("decoded "+ propertySource.getName(), propertyOverrides);
+ environment.getPropertySources().addBefore(propertySource.getName(), decodedProperties);
+ }
+ }
+ }
+
+ private void decodePasswords(PropertySource<?> source, Map<String, Object> propertyOverrides) {
+ if (source instanceof EnumerablePropertySource) {
+ EnumerablePropertySource<?> enumerablePropertySource = (EnumerablePropertySource<?>) source;
+ for (String key : enumerablePropertySource.getPropertyNames()) {
+ Object rawValue = source.getProperty(key);
+ if (rawValue instanceof String) {
+ String decodedValue = decodePasswordsInString((String) rawValue);
+ propertyOverrides.put(key, decodedValue);
+ }
+ }
+ }
+ }
+
+ private String decodePasswordsInString(String input) {
+ if (input == null) return null;
+ StringBuffer output = new StringBuffer();
+ Matcher matcher = decodePasswordPattern.matcher(input);
+ while (matcher.find()) {
+ String replacement = passwordDecoder.decode(matcher.group(1));
+ matcher.appendReplacement(output, replacement);
+ }
+ matcher.appendTail(output);
+ return output.toString();
+ }
+
+}
diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/AAIContainerFilter.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/AAIContainerFilter.java
new file mode 100644
index 0000000..062cb27
--- /dev/null
+++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/AAIContainerFilter.java
@@ -0,0 +1,22 @@
+package org.onap.aai.interceptors;
+
+import java.util.UUID;
+
+import org.onap.aai.util.FormatDate;
+
+public abstract class AAIContainerFilter {
+
+ protected String genDate() {
+ FormatDate fd = new FormatDate("YYMMdd-HH:mm:ss:SSS");
+ return fd.getDateTime();
+ }
+
+ protected boolean isValidUUID(String transId) {
+ try {
+ UUID.fromString(transId);
+ } catch (IllegalArgumentException e) {
+ return false;
+ }
+ return true;
+ }
+}
diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/AAIHeaderProperties.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/AAIHeaderProperties.java
index 733383a..8eca9b6 100644
--- a/aai-traversal/src/main/java/org/onap/aai/interceptors/AAIHeaderProperties.java
+++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/AAIHeaderProperties.java
@@ -21,7 +21,21 @@
*/
package org.onap.aai.interceptors;
-public class AAIHeaderProperties {
-
+public final class AAIHeaderProperties {
+
+ private AAIHeaderProperties(){}
+
public static final String REQUEST_CONTEXT = "aai-request-context";
+
+ public static final String HTTP_METHOD_OVERRIDE = "X-HTTP-Method-Override";
+
+ public static final String TRANSACTION_ID = "X-TransactionId";
+
+ public static final String FROM_APP_ID = "X-FromAppId";
+
+ public static final String AAI_TX_ID = "X-AAI-TXID";
+
+ public static final String AAI_REQUEST = "X-REQUEST";
+
+ public static final String AAI_REQUEST_TS = "X-REQUEST-TS";
}
diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/AAILogJAXRSInInterceptor.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/AAILogJAXRSInInterceptor.java
deleted file mode 100644
index 155d387..0000000
--- a/aai-traversal/src/main/java/org/onap/aai/interceptors/AAILogJAXRSInInterceptor.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 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.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.onap.aai.interceptors;
-
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import javax.ws.rs.core.MediaType;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.cxf.helpers.CastUtils;
-import org.apache.cxf.interceptor.LoggingMessage;
-import org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor;
-import org.apache.cxf.message.Message;
-import org.onap.aai.exceptions.AAIException;
-import org.onap.aai.logging.ErrorLogHelper;
-import org.onap.aai.rest.util.EchoResponse;
-import org.onap.aai.util.AAIConfig;
-import org.onap.aai.util.AAIConstants;
-import org.onap.aai.util.FormatDate;
-import org.onap.aai.util.HbaseSaltPrefixer;
-
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-import org.slf4j.MDC;
-
-public class AAILogJAXRSInInterceptor extends JAXRSInInterceptor {
-
- protected final String COMPONENT = "aairest";
- protected final String CAMEL_REQUEST ="CamelHttpUrl";
- private static final Pattern uuidPattern = Pattern.compile("^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$");
- private static final EELFLogger LOGGER = EELFManager.getInstance().getLogger(AAILogJAXRSInInterceptor.class);
-
- /**
- * {@inheritDoc}
- */
- public void handleMessage(Message message) {
-
- boolean go = false;
- String uri = null;
- String query = null;
- try {
-
- uri = (String)message.get(CAMEL_REQUEST);
- if (uri != null) {
- query = (String)message.get(Message.QUERY_STRING);
- }
-
- if (AAIConfig.get(AAIConstants.AAI_LOGGING_HBASE_INTERCEPTOR).equalsIgnoreCase("true") &&
- AAIConfig.get(AAIConstants.AAI_LOGGING_HBASE_ENABLED).equalsIgnoreCase("true")) {
- go = true;
- message.getExchange().put("AAI_LOGGING_HBASE_ENABLED", 1);
- if (AAIConfig.get(AAIConstants.AAI_LOGGING_HBASE_LOGREQUEST).equalsIgnoreCase("true") ) {
- message.getExchange().put("AAI_LOGGING_HBASE_LOGREQUEST", 1);
- }
- if (AAIConfig.get(AAIConstants.AAI_LOGGING_HBASE_LOGRESPONSE).equalsIgnoreCase("true") ) {
- message.getExchange().put("AAI_LOGGING_HBASE_LOGRESPONSE", 1);
- }
- }
- if (AAIConfig.get(AAIConstants.AAI_LOGGING_TRACE_ENABLED).equalsIgnoreCase("true") ) {
- go = true;
- message.getExchange().put("AAI_LOGGING_TRACE_ENABLED", 1);
- if (AAIConfig.get(AAIConstants.AAI_LOGGING_TRACE_LOGREQUEST).equalsIgnoreCase("true") ) {
- message.getExchange().put("AAI_LOGGING_TRACE_LOGREQUEST", 1);
- }
- if (AAIConfig.get(AAIConstants.AAI_LOGGING_TRACE_LOGRESPONSE).equalsIgnoreCase("true") ) {
- message.getExchange().put("AAI_LOGGING_TRACE_LOGRESPONSE", 1);
- }
- }
- } catch (AAIException e1) {
- ErrorLogHelper.logException(e1);
- }
-
- if ((uri != null) && (uri.contains(EchoResponse.echoPath))) {
- // if it's a health check, we don't want to log ANYTHING if it's a lightweight one
- if (query == null) {
- if (message.getExchange().containsKey("AAI_LOGGING_HBASE_ENABLED")) {
- message.getExchange().remove("AAI_LOGGING_HBASE_ENABLED");
- }
- if (message.getExchange().containsKey("AAI_LOGGING_TRACE_ENABLED")) {
- message.getExchange().remove("AAI_LOGGING_TRACE_ENABLED");
- }
- go = false;
- }
- }
- else if ((uri != null) && (uri.contains("/translog/"))) {
- // if it's a translog query, we don't want to log the responses
- if (message.getExchange().containsKey("AAI_LOGGING_HBASE_LOGRESPONSE")) {
- message.getExchange().remove("AAI_LOGGING_HBASE_LOGRESPONSE");
- }
- if (message.getExchange().containsKey("AAI_LOGGING_TRACE_LOGRESPONSE")) {
- message.getExchange().remove("AAI_LOGGING_TRACE_LOGRESPONSE");
- }
- }
-
- if (go == false) { // there's nothing to do
- return;
- }
-
- // DONE: get a TXID based on hostname, time (YYYYMMDDHHMMSSMILLIS, and LoggingMessage.nextId(); 20150326145301-1
- String now = genDate();
-
- message.getExchange().put("AAI_RQST_TM", now);
-
- String id = (String)message.getExchange().get(LoggingMessage.ID_KEY);
-
- String fullId = null;
- try {
- if (id == null) {
- id = LoggingMessage.nextId();
- }
- fullId = AAIConfig.get(AAIConstants.AAI_NODENAME) + "-" + now + "-" + id;
- fullId = HbaseSaltPrefixer.getInstance().prependSalt(fullId);
- message.getExchange().put(LoggingMessage.ID_KEY, fullId);
- } catch (AAIException e1) {
- LOGGER.debug("config problem", e1);
- }
-
- if (fullId == null) {
- fullId = now + "-" + id;
- fullId = HbaseSaltPrefixer.getInstance().prependSalt(fullId);
- }
- message.put(LoggingMessage.ID_KEY, fullId);
- final LoggingMessage buffer = new LoggingMessage("Message", fullId);
-
- Integer responseCode = (Integer)message.get(Message.RESPONSE_CODE);
- if (responseCode != null) {
- buffer.getResponseCode().append(responseCode);
- }
-
- String encoding = (String)message.get(Message.ENCODING);
-
- if (encoding != null) {
- buffer.getEncoding().append(encoding);
- }
- String httpMethod = (String)message.get(Message.HTTP_REQUEST_METHOD);
- if (httpMethod != null) {
- buffer.getHttpMethod().append(httpMethod);
- }
-
- String ct = (String)message.get(Message.CONTENT_TYPE);
- if (ct != null) {
- if ("*/*".equals(ct)) {
- message.put(Message.CONTENT_TYPE, MediaType.APPLICATION_JSON);
- ct = MediaType.APPLICATION_JSON;
- }
- buffer.getContentType().append(ct);
-
- }
- Object headers = message.get(Message.PROTOCOL_HEADERS);
- if (headers != null) {
- buffer.getHeader().append(headers);
-
- Map<String, List<String>> headersList = CastUtils.cast((Map<?, ?>)message.get(Message.PROTOCOL_HEADERS));
- String transId = "";
- List<String> xt = headersList.get("X-TransactionId");
- String newTransId = transId;
- boolean missingTransId = false;
- boolean replacedTransId = false;
- String logMsg = null;
- if (xt != null) {
- for (String transIdValue : xt) {
- transId = transIdValue;
- }
- Matcher matcher = uuidPattern.matcher(transId);
- if (!matcher.find()) {
- replacedTransId = true;
- // check if there's a colon, and check the first group?
- if (transId.contains(":")) {
- String[] uuidParts = transId.split(":");
- Matcher matcher2 = uuidPattern.matcher(uuidParts[0]);
- if (matcher2.find()) {
- newTransId = uuidParts[0];
- } else {
- // punt, we tried to find it, it has a colon but no UUID-1
- newTransId = UUID.randomUUID().toString();
- }
- } else {
- newTransId = UUID.randomUUID().toString();
- }
- }
- } else {
- newTransId = UUID.randomUUID().toString();
- missingTransId = true;
- }
-
- if (missingTransId || replacedTransId) {
- List<String> txList = new ArrayList<String>();
- txList.add(newTransId);
- headersList.put("X-TransactionId", txList);
- if (missingTransId) {
- logMsg = "Missing requestID. Assigned " + newTransId;
- } else if (replacedTransId) {
- logMsg = "Replaced invalid requestID of " + transId + " Assigned " + newTransId;
- }
- MDC.put("RequestId",newTransId);
- }
- else {
- MDC.put("RequestId",transId);
- }
-
-
- List<String> fromAppIdList = headersList.get("X-FromAppId");
- if (fromAppIdList != null) {
- String fromAppId = null;
- for (String fromAppIdValue : fromAppIdList) {
- fromAppId = fromAppIdValue;
- }
- MDC.put("PartnerName",fromAppId);
- }
-
- List<String> contentType = headersList.get("Content-Type");
- if (contentType == null) {
- ct = (String)message.get(Message.CONTENT_TYPE);
- headersList.put(Message.CONTENT_TYPE, Collections.singletonList(ct));
- }
-
- LOGGER.auditEvent("REST " + httpMethod + " " + ((query != null)? uri+"?"+query : uri) + " HbaseTxId=" + fullId);
- LOGGER.info(logMsg);
- }
-
-
- if (uri != null) {
- buffer.getAddress().append(uri);
- if (query != null) {
- buffer.getAddress().append("?").append(query);
- }
- }
-
- InputStream is = message.getContent(InputStream.class);
- if (is != null) {
- try {
- String currentPayload = IOUtils.toString(is, "UTF-8");
- IOUtils.closeQuietly(is);
- buffer.getPayload().append(currentPayload);
- is = IOUtils.toInputStream(currentPayload, "UTF-8");
- message.setContent(InputStream.class, is);
- IOUtils.closeQuietly(is);
- } catch (Exception e) {
- // It's ok to not have request input content
- // throw new Fault(e);
- }
- }
-
- // this will be saved in the message exchange, and can be pulled out later...
- message.getExchange().put(fullId + "_REQUEST", buffer.toString());
- }
-
- /**
- * Gen date.
- *
- * @param aaiLogger the aai logger
- * @param logline the logline
- * @return the string
- */
- protected String genDate() {
- FormatDate fd = new FormatDate("YYMMdd-HH:mm:ss:SSS");
- return fd.getDateTime();
- }
-
-}
diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/AAILogJAXRSOutInterceptor.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/AAILogJAXRSOutInterceptor.java
deleted file mode 100644
index a280023..0000000
--- a/aai-traversal/src/main/java/org/onap/aai/interceptors/AAILogJAXRSOutInterceptor.java
+++ /dev/null
@@ -1,303 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 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.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.onap.aai.interceptors;
-
-import java.io.OutputStream;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.cxf.helpers.CastUtils;
-import org.apache.cxf.interceptor.LoggingMessage;
-import org.apache.cxf.io.CacheAndWriteOutputStream;
-import org.apache.cxf.io.CachedOutputStream;
-import org.apache.cxf.io.CachedOutputStreamCallback;
-import org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor;
-import org.apache.cxf.message.Message;
-import org.onap.aai.exceptions.AAIException;
-import org.onap.aai.logging.ErrorLogHelper;
-import org.onap.aai.util.AAIConfig;
-import org.onap.aai.util.AAIConstants;
-import org.onap.aai.util.FormatDate;
-
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-
-// right after the request is complete, there may be content
-public class AAILogJAXRSOutInterceptor extends JAXRSOutInterceptor {
-
- private static final EELFLogger LOGGER = EELFManager.getInstance().getLogger(AAILogJAXRSOutInterceptor.class);
-
- protected final String COMPONENT = "aairest";
- protected final String CAMEL_REQUEST = "CamelHttpUrl";
-
- /**
- * {@inheritDoc}
- */
- public void handleMessage(Message message) {
-
- String fullId = (String) message.getExchange().get(LoggingMessage.ID_KEY);
-
- Map<String, List<String>> headers = CastUtils.cast((Map<?, ?>) message.get(Message.PROTOCOL_HEADERS));
- if (headers == null) {
- headers = new HashMap<String, List<String>>();
- }
-
- headers.put("X-AAI-TXID", Collections.singletonList(fullId));
- message.put(Message.PROTOCOL_HEADERS, headers);
-
- Message outMessage = message.getExchange().getOutMessage();
- final OutputStream os = outMessage.getContent(OutputStream.class);
- if (os == null) {
- return;
- }
-
- // we only want to register the callback if there is good reason for it.
- if (message.getExchange().containsKey("AAI_LOGGING_HBASE_ENABLED") || message.getExchange().containsKey("AAI_LOGGING_TRACE_ENABLED")) {
-
- final CacheAndWriteOutputStream newOut = new CacheAndWriteOutputStream(os);
- message.setContent(OutputStream.class, newOut);
- newOut.registerCallback(new LoggingCallback(message, os));
- }
-
- }
-
- class LoggingCallback implements CachedOutputStreamCallback {
-
- private final Message message;
- private final OutputStream origStream;
-
- public LoggingCallback(final Message msg, final OutputStream os) {
- this.message = msg;
- this.origStream = os;
- }
-
- public void onFlush(CachedOutputStream cos) {
-
- }
-
- public void onClose(CachedOutputStream cos) {
-
- String getValue = "";
- String postValue = "";
- String logValue = "";
-
- try {
- logValue = AAIConfig.get("aai.transaction.logging");
- getValue = AAIConfig.get("aai.transaction.logging.get");
- postValue = AAIConfig.get("aai.transaction.logging.post");
- } catch (AAIException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
- if (!message.getExchange().containsKey("AAI_LOGGING_HBASE_ENABLED") && !message.getExchange().containsKey("AAI_LOGGING_TRACE_ENABLED")) {
- return;
- }
-
- String fullId = (String) message.getExchange().get(LoggingMessage.ID_KEY);
-
- Message inMessage = message.getExchange().getInMessage();
- String transId = null;
- String fromAppId = null;
-
- Map<String, List<String>> headersList = CastUtils.cast((Map<?, ?>) inMessage.get(Message.PROTOCOL_HEADERS));
- if (headersList != null) {
- List<String> xt = headersList.get("X-TransactionId");
- if (xt != null) {
- for (String transIdValue : xt) {
- transId = transIdValue;
- }
- }
- List<String> fa = headersList.get("X-FromAppId");
- if (fa != null) {
- for (String fromAppIdValue : fa) {
-
- fromAppId = fromAppIdValue;
- }
- }
- }
-
- String httpMethod = (String) inMessage.get(Message.HTTP_REQUEST_METHOD);
-
- String uri = (String) inMessage.get(CAMEL_REQUEST);
- String fullUri = uri;
- if (uri != null) {
- String query = (String) message.get(Message.QUERY_STRING);
- if (query != null) {
- fullUri = uri + "?" + query;
- }
- }
-
- String request = (String) message.getExchange().get(fullId + "_REQUEST");
-
- Message outMessage = message.getExchange().getOutMessage();
-
- final LoggingMessage buffer = new LoggingMessage("OUTMessage", fullId);
-
- // should we check this, and make sure it's not an error?
- Integer responseCode = (Integer) outMessage.get(Message.RESPONSE_CODE);
- if (responseCode == null) {
- responseCode = 200; // this should never happen, but just in
- // case we don't get one
- }
- buffer.getResponseCode().append(responseCode);
-
- String encoding = (String) outMessage.get(Message.ENCODING);
-
- if (encoding != null) {
- buffer.getEncoding().append(encoding);
- }
-
- String ct = (String) outMessage.get(Message.CONTENT_TYPE);
- if (ct != null) {
- buffer.getContentType().append(ct);
- }
-
- Object headers = outMessage.get(Message.PROTOCOL_HEADERS);
- if (headers != null) {
- buffer.getHeader().append(headers);
- }
-
- Boolean ss = false;
- if (responseCode >= 200 && responseCode <= 299) {
- ss = true;
- }
- String response = buffer.toString();
-
- // this should have been set by the in interceptor
- String rqstTm = (String) message.getExchange().get("AAI_RQST_TM");
-
- // just in case it wasn't, we'll put this here. not great, but it'll
- // have a val.
- if (rqstTm == null) {
- rqstTm = genDate();
- }
-
-
- String respTm = genDate();
-
- try {
- String actualRequest = request;
- StringBuilder builder = new StringBuilder();
- cos.writeCacheTo(builder, 100000);
- // here comes my xml:
- String payload = builder.toString();
-
- String actualResponse = response;
- if (payload == null) {
-
- } else {
- actualResponse = response + payload;
- }
-
- // we only log to AAI log if it's eanbled in the config props
- // file
- if (message.getExchange().containsKey("AAI_LOGGING_TRACE_ENABLED")) {
-
- if (message.getExchange().containsKey("AAI_LOGGING_TRACE_LOGREQUEST")) {
-
- // strip newlines from request
- String traceRequest = actualRequest;
- traceRequest = traceRequest.replace("\n", " ");
- traceRequest = traceRequest.replace("\r", "");
- traceRequest = traceRequest.replace("\t", "");
- LOGGER.debug(traceRequest);
- }
- if (message.getExchange().containsKey("AAI_LOGGING_TRACE_LOGRESPONSE")) {
- // strip newlines from response
- String traceResponse = actualResponse;
- traceResponse = traceResponse.replace("\n", " ");
- traceResponse = traceResponse.replace("\r", "");
- traceResponse = traceResponse.replace("\t", "");
-
- LOGGER.debug(traceResponse);
- }
- }
-
- // we only log to HBASE if it's enabled in the config props file
- // TODO: pretty print XML/JSON. we might need to get the payload
- // and envelope seperately
- if (message.getExchange().containsKey("AAI_LOGGING_HBASE_ENABLED")) {
- if (!message.getExchange().containsKey("AAI_LOGGING_HBASE_LOGREQUEST")) {
- actualRequest = "loggingDisabled";
- }
- if (!message.getExchange().containsKey("AAI_LOGGING_HBASE_LOGRESPONSE")) {
- actualResponse = "loggingDisabled";
- }
-
- LOGGER.debug("action={}, urlin={}, HbTransId={}", httpMethod, fullUri, fullId);
-
- if (logValue.equals("false")) {
- } else if (getValue.equals("false") && httpMethod.equals("GET")) {
- } else if (postValue.equals("false") && httpMethod.equals("POST")) {
- } else {
- putTransaction(transId, responseCode.toString(), rqstTm, respTm, fromAppId + ":" + transId, fullUri, httpMethod, request, response, actualResponse);
-
- }
- }
- } catch (Exception ex) {
- // ignore
- }
-
- message.setContent(OutputStream.class, origStream);
-
- LOGGER.auditEvent("HTTP Response Code: {}", responseCode.toString());
- }
-
- }
-
- protected String genDate() {
- FormatDate fd = new FormatDate("YYMMdd-HH:mm:ss:SSS");
- return fd.getDateTime();
- }
-
- public String putTransaction(String tid, String status, String rqstTm, String respTm, String srcId, String rsrcId, String rsrcType, String rqstBuf, String respBuf, String actualResponse) {
- String tm = null;
-
- if (tid == null || "".equals(tid)) {
- tm = this.genDate();
- tid = tm + "-";
- }
-
- String htid = tid;
-
- if (rqstTm == null || "".equals(rqstTm)) {
- rqstTm = tm;
- }
-
- if (respTm == null || "".equals(respTm)) {
- respTm = tm;
- }
-
- try {
- LOGGER.debug(" transactionId:" + tid + " status: " + status + " rqstDate: " + rqstTm + " respDate: " + respTm + " sourceId: " + srcId + " resourceId: "
- + rsrcId + " resourceType: " + rsrcType + " payload rqstBuf: " + rqstBuf + " payload respBuf: " + respBuf + " Payload Error Messages: " + actualResponse);
- return htid;
- } catch (Exception e) {
- ErrorLogHelper.logError("AAI_4000", "Exception updating HBase:");
- return htid;
- }
-
- }
-}
diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/PostAaiAjscInterceptor.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/PostAaiAjscInterceptor.java
deleted file mode 100644
index 1849b10..0000000
--- a/aai-traversal/src/main/java/org/onap/aai/interceptors/PostAaiAjscInterceptor.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 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.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.onap.aai.interceptors;
-
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.onap.aai.logging.LoggingContext;
-import org.onap.aai.logging.LoggingContext.StatusCode;
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-
-import ajsc.beans.interceptors.AjscInterceptor;
-
-public class PostAaiAjscInterceptor implements AjscInterceptor {
-
- private static final EELFLogger LOGGER = EELFManager.getInstance().getLogger(PostAaiAjscInterceptor.class);
-
- private static class LazyAaiAjscInterceptor {
- public static final PostAaiAjscInterceptor INSTANCE = new PostAaiAjscInterceptor();
- }
-
- public static PostAaiAjscInterceptor getInstance() {
- return LazyAaiAjscInterceptor.INSTANCE;
- }
-
- @Override
- public boolean allowOrReject(HttpServletRequest req, HttpServletResponse resp, Map<?, ?> paramMap)
- throws Exception {
- final int httpStatusCode = resp.getStatus();
- LoggingContext.responseCode(Integer.toString(httpStatusCode));
- if ( httpStatusCode < 200 || httpStatusCode > 299 ) {
- LoggingContext.statusCode(StatusCode.ERROR);
- LoggingContext.responseDescription("Error");
- LOGGER.error(req.getRequestURL() + " call failed with responseCode=" + httpStatusCode);
- }
- else {
- LoggingContext.responseDescription(LoggingContext.responseMap.get(LoggingContext.SUCCESS));
- LoggingContext.statusCode(StatusCode.COMPLETE);
- LOGGER.info(req.getRequestURL() + " call succeeded");
- }
- LoggingContext.clear();
- return true;
- }
-}
diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/PreAaiAjscInterceptor.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/PreAaiAjscInterceptor.java
deleted file mode 100644
index b510d4b..0000000
--- a/aai-traversal/src/main/java/org/onap/aai/interceptors/PreAaiAjscInterceptor.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 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.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.onap.aai.interceptors;
-
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.onap.aai.logging.LoggingContext;
-
-import ajsc.beans.interceptors.AjscInterceptor;
-
-public class PreAaiAjscInterceptor implements AjscInterceptor {
- private final static String TARGET_ENTITY = "aai-traversal";
-
- private static class LazyAaiAjscInterceptor {
- public static final PreAaiAjscInterceptor INSTANCE = new PreAaiAjscInterceptor();
- }
-
- public static PreAaiAjscInterceptor getInstance() {
- return LazyAaiAjscInterceptor.INSTANCE;
- }
-
- @Override
- public boolean allowOrReject(HttpServletRequest req, HttpServletResponse resp, Map<?, ?> paramMap)
- throws Exception {
-
- LoggingContext.init();
-
- String serviceName = req.getMethod() + " " + req.getRequestURI().toString();
- LoggingContext.partnerName(req.getHeader("X-FromAppId"));
- String queryStr = req.getQueryString();
- if ( queryStr != null ) {
- serviceName = serviceName + "?" + queryStr;
- }
- LoggingContext.serviceName(serviceName);
- LoggingContext.targetEntity(TARGET_ENTITY);
- LoggingContext.targetServiceName("allowOrReject");
- LoggingContext.requestId(req.getHeader("X-TransactionId"));
- LoggingContext.successStatusFields();
- return true;
- }
-}
diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/package-info.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/package-info.java
new file mode 100644
index 0000000..131d46c
--- /dev/null
+++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/package-info.java
@@ -0,0 +1,17 @@
+/**
+ * <b>Interceptors</b> package is subdivided to pre and post interceptors
+ * If you want to add an additional interceptor you would need to add
+ * the priority level to AAIRequestFilterPriority or AAIResponsePriority
+ * to give a value which indicates the order in which the interceptor
+ * will be triggered and also you will add that value like here
+ *
+ * <pre>
+ * <code>
+ * @Priority(AAIRequestFilterPriority.YOUR_PRIORITY)
+ * public class YourInterceptor extends AAIContainerFilter implements ContainerRequestFilter {
+ *
+ * }
+ * </code>
+ * </pre>
+ */
+package org.onap.aai.interceptors; \ No newline at end of file
diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/post/AAIResponseFilterPriority.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/post/AAIResponseFilterPriority.java
new file mode 100644
index 0000000..d14c24f
--- /dev/null
+++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/post/AAIResponseFilterPriority.java
@@ -0,0 +1,13 @@
+package org.onap.aai.interceptors.post;
+
+public final class AAIResponseFilterPriority {
+
+ private AAIResponseFilterPriority() {}
+
+ public static final int HEADER_MANIPULATION = 1000;
+
+ public static final int RESPONSE_TRANS_LOGGING = 2000;
+
+ public static final int RESET_LOGGING_CONTEXT = 3000;
+
+}
diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/post/ResetLoggingContext.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/post/ResetLoggingContext.java
new file mode 100644
index 0000000..d1b74d2
--- /dev/null
+++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/post/ResetLoggingContext.java
@@ -0,0 +1,50 @@
+package org.onap.aai.interceptors.post;
+
+import java.io.IOException;
+
+import javax.annotation.Priority;
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerResponseContext;
+import javax.ws.rs.container.ContainerResponseFilter;
+
+import org.onap.aai.interceptors.AAIContainerFilter;
+import org.onap.aai.logging.LoggingContext;
+import org.onap.aai.logging.LoggingContext.StatusCode;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+
+@Priority(AAIResponseFilterPriority.RESET_LOGGING_CONTEXT)
+public class ResetLoggingContext extends AAIContainerFilter implements ContainerResponseFilter {
+
+ private static final EELFLogger LOGGER = EELFManager.getInstance().getLogger(ResetLoggingContext.class);
+
+ @Autowired
+ private HttpServletRequest httpServletRequest;
+
+ @Override
+ public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
+ throws IOException {
+
+ this.cleanLoggingContext();
+
+ }
+
+ private void cleanLoggingContext() {
+ final String responseCode = LoggingContext.responseCode();
+ String url = httpServletRequest.getRequestURL().toString();
+
+ if (responseCode != null && responseCode.startsWith("ERR.")) {
+ LoggingContext.statusCode(StatusCode.ERROR);
+ LOGGER.error(url + " call failed with responseCode=" + responseCode);
+ } else {
+ LoggingContext.statusCode(StatusCode.COMPLETE);
+ LOGGER.info(url + " call succeeded");
+ }
+
+ LoggingContext.clear();
+ }
+
+}
diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/post/ResponseHeaderManipulation.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/post/ResponseHeaderManipulation.java
new file mode 100644
index 0000000..a26334f
--- /dev/null
+++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/post/ResponseHeaderManipulation.java
@@ -0,0 +1,30 @@
+package org.onap.aai.interceptors.post;
+
+import java.io.IOException;
+
+import javax.annotation.Priority;
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerResponseContext;
+import javax.ws.rs.container.ContainerResponseFilter;
+
+import org.onap.aai.interceptors.AAIContainerFilter;
+import org.onap.aai.interceptors.AAIHeaderProperties;
+
+@Priority(AAIResponseFilterPriority.HEADER_MANIPULATION)
+public class ResponseHeaderManipulation extends AAIContainerFilter implements ContainerResponseFilter {
+
+
+ @Override
+ public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
+ throws IOException {
+
+ updateResponseHeaders(requestContext, responseContext);
+
+ }
+
+ private void updateResponseHeaders(ContainerRequestContext requestContext,
+ ContainerResponseContext responseContext) {
+ responseContext.getHeaders().add(AAIHeaderProperties.AAI_TX_ID, requestContext.getProperty(AAIHeaderProperties.AAI_TX_ID));
+ }
+
+}
diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/post/ResponseTransactionLogging.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/post/ResponseTransactionLogging.java
new file mode 100644
index 0000000..7b18e45
--- /dev/null
+++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/post/ResponseTransactionLogging.java
@@ -0,0 +1,106 @@
+package org.onap.aai.interceptors.post;
+
+import java.io.IOException;
+import java.util.Objects;
+import java.util.Optional;
+
+import javax.annotation.Priority;
+import javax.servlet.http.HttpServletResponse;
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerResponseContext;
+import javax.ws.rs.container.ContainerResponseFilter;
+
+import org.onap.aai.exceptions.AAIException;
+import org.onap.aai.interceptors.AAIContainerFilter;
+import org.onap.aai.interceptors.AAIHeaderProperties;
+import org.onap.aai.logging.ErrorLogHelper;
+import org.onap.aai.util.AAIConfig;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+import com.google.gson.JsonObject;
+
+@Priority(AAIResponseFilterPriority.RESPONSE_TRANS_LOGGING)
+public class ResponseTransactionLogging extends AAIContainerFilter implements ContainerResponseFilter {
+
+ private static final EELFLogger TRANSACTION_LOGGER = EELFManager.getInstance().getLogger(ResponseTransactionLogging.class);
+
+ @Autowired
+ private HttpServletResponse httpServletResponse;
+
+ @Override
+ public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
+ throws IOException {
+
+ this.transLogging(requestContext, responseContext);
+
+ }
+
+ private void transLogging(ContainerRequestContext requestContext, ContainerResponseContext responseContext) {
+
+ String logValue;
+ String getValue;
+ String postValue;
+
+ try {
+ logValue = AAIConfig.get("aai.transaction.logging");
+ getValue = AAIConfig.get("aai.transaction.logging.get");
+ postValue = AAIConfig.get("aai.transaction.logging.post");
+ } catch (AAIException e) {
+ return;
+ }
+
+ String transId = requestContext.getHeaderString(AAIHeaderProperties.TRANSACTION_ID);
+ String fromAppId = requestContext.getHeaderString(AAIHeaderProperties.FROM_APP_ID);
+ String fullUri = requestContext.getUriInfo().getRequestUri().toString();
+ String requestTs = (String)requestContext.getProperty(AAIHeaderProperties.AAI_REQUEST_TS);
+
+ String httpMethod = requestContext.getMethod();
+
+ String status = Integer.toString(responseContext.getStatus());
+
+ String request = (String)requestContext.getProperty(AAIHeaderProperties.AAI_REQUEST);
+ String response = this.getResponseString(responseContext);
+
+ if (!Boolean.parseBoolean(logValue)) {
+ } else if (!Boolean.parseBoolean(getValue) && "GET".equals(httpMethod)) {
+ } else if (!Boolean.parseBoolean(postValue) && "POST".equals(httpMethod)) {
+ } else {
+
+ JsonObject logEntry = new JsonObject();
+ logEntry.addProperty("transactionId", transId);
+ logEntry.addProperty("status", status);
+ logEntry.addProperty("rqstDate", requestTs);
+ logEntry.addProperty("respDate", this.genDate());
+ logEntry.addProperty("sourceId", fromAppId + ":" + transId);
+ logEntry.addProperty("resourceId", fullUri);
+ logEntry.addProperty("resourceType", httpMethod);
+ logEntry.addProperty("rqstBuf", Objects.toString(request, ""));
+ logEntry.addProperty("respBuf", Objects.toString(response, ""));
+
+ try {
+ TRANSACTION_LOGGER.debug(logEntry.toString());
+ } catch (Exception e) {
+ ErrorLogHelper.logError("AAI_4000", "Exception writing transaction log.");
+ }
+ }
+
+ }
+
+ private String getResponseString(ContainerResponseContext responseContext) {
+ JsonObject response = new JsonObject();
+ response.addProperty("ID", responseContext.getHeaderString(AAIHeaderProperties.AAI_TX_ID));
+ response.addProperty("Content-Type", this.httpServletResponse.getContentType());
+ response.addProperty("Response-Code", responseContext.getStatus());
+ response.addProperty("Headers", responseContext.getHeaders().toString());
+ Optional<Object> entityOptional = Optional.ofNullable(responseContext.getEntity());
+ if(entityOptional.isPresent()){
+ response.addProperty("Entity", entityOptional.get().toString());
+ } else {
+ response.addProperty("Entity", "");
+ }
+ return response.toString();
+ }
+
+}
diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/AAIRequestFilterPriority.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/AAIRequestFilterPriority.java
new file mode 100644
index 0000000..b3fc1b1
--- /dev/null
+++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/AAIRequestFilterPriority.java
@@ -0,0 +1,18 @@
+package org.onap.aai.interceptors.pre;
+
+public final class AAIRequestFilterPriority {
+
+ private AAIRequestFilterPriority() {}
+
+ public static final int REQUEST_TRANS_LOGGING = 1000;
+
+ public static final int HEADER_VALIDATION = 2000;
+
+ public static final int SET_LOGGING_CONTEXT = 3000;
+
+ public static final int AUTHORIZATION = 4000;
+
+ public static final int HEADER_MANIPULATION = 5000;
+
+ public static final int REQUEST_MODIFICATION = 6000;
+}
diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/HeaderValidation.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/HeaderValidation.java
new file mode 100644
index 0000000..88a492f
--- /dev/null
+++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/HeaderValidation.java
@@ -0,0 +1,88 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright (C) 2017 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.aai.interceptors.pre;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+import java.util.UUID;
+
+import javax.annotation.Priority;
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerRequestFilter;
+import javax.ws.rs.container.PreMatching;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.onap.aai.exceptions.AAIException;
+import org.onap.aai.interceptors.AAIContainerFilter;
+import org.onap.aai.interceptors.AAIHeaderProperties;
+import org.onap.aai.logging.ErrorLogHelper;
+
+@PreMatching
+@Priority(AAIRequestFilterPriority.HEADER_VALIDATION)
+public class HeaderValidation extends AAIContainerFilter implements ContainerRequestFilter {
+
+ @Override
+ public void filter(ContainerRequestContext requestContext) throws IOException {
+
+ Optional<Response> oResp;
+
+ String transId = requestContext.getHeaderString(AAIHeaderProperties.TRANSACTION_ID);
+ String fromAppId = requestContext.getHeaderString(AAIHeaderProperties.FROM_APP_ID);
+
+ List<MediaType> acceptHeaderValues = requestContext.getAcceptableMediaTypes();
+
+ oResp = this.validateHeaderValuePresence(fromAppId, "AAI_4009", acceptHeaderValues);
+ if (oResp.isPresent()) {
+ requestContext.abortWith(oResp.get());
+ return;
+ }
+ oResp = this.validateHeaderValuePresence(transId, "AAI_4010", acceptHeaderValues);
+ if (oResp.isPresent()) {
+ requestContext.abortWith(oResp.get());
+ return;
+ }
+
+ if (!this.isValidUUID(transId)) {
+ transId = UUID.randomUUID().toString();
+ requestContext.getHeaders().get(AAIHeaderProperties.TRANSACTION_ID).clear();
+ requestContext.getHeaders().add(AAIHeaderProperties.TRANSACTION_ID, transId);
+ }
+
+ }
+
+ private Optional<Response> validateHeaderValuePresence(String value, String errorCode,
+ List<MediaType> acceptHeaderValues) {
+ Response response = null;
+ AAIException aaie;
+ if (value == null) {
+ aaie = new AAIException(errorCode);
+ return Optional.of(Response.status(aaie.getErrorObject().getHTTPResponseCode())
+ .entity(ErrorLogHelper.getRESTAPIErrorResponse(acceptHeaderValues, aaie, new ArrayList<>()))
+ .build());
+ }
+
+ return Optional.ofNullable(response);
+ }
+
+}
diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/RequestHeaderManipulation.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/RequestHeaderManipulation.java
new file mode 100644
index 0000000..63a92cf
--- /dev/null
+++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/RequestHeaderManipulation.java
@@ -0,0 +1,71 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright (C) 2017 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.aai.interceptors.pre;
+
+import java.io.IOException;
+import java.util.Collections;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.annotation.Priority;
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerRequestFilter;
+import javax.ws.rs.container.PreMatching;
+import javax.ws.rs.core.MultivaluedMap;
+
+import org.onap.aai.interceptors.AAIContainerFilter;
+import org.onap.aai.interceptors.AAIHeaderProperties;
+import org.springframework.beans.factory.annotation.Autowired;
+
+@PreMatching
+@Priority(AAIRequestFilterPriority.HEADER_MANIPULATION)
+public class RequestHeaderManipulation extends AAIContainerFilter implements ContainerRequestFilter {
+
+ @Autowired
+ private HttpServletRequest httpServletRequest;
+
+ private static final Pattern versionedEndpoint = Pattern.compile("^/aai/(v\\d+)");
+
+ @Override
+ public void filter(ContainerRequestContext requestContext) throws IOException {
+
+ String uri = httpServletRequest.getRequestURI();
+ this.addRequestContext(uri, requestContext.getHeaders());
+
+ }
+
+ private void addRequestContext(String uri, MultivaluedMap<String, String> requestHeaders) {
+
+ String rc = "";
+
+ Matcher match = versionedEndpoint.matcher(uri);
+ if (match.find()) {
+ rc = match.group(1);
+ }
+
+ if (requestHeaders.containsKey(AAIHeaderProperties.REQUEST_CONTEXT)) {
+ requestHeaders.remove(AAIHeaderProperties.REQUEST_CONTEXT);
+ }
+ requestHeaders.put(AAIHeaderProperties.REQUEST_CONTEXT, Collections.singletonList(rc));
+ }
+
+}
diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/RequestModification.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/RequestModification.java
new file mode 100644
index 0000000..a5f8789
--- /dev/null
+++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/RequestModification.java
@@ -0,0 +1,77 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright (C) 2017 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.aai.interceptors.pre;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import javax.annotation.Priority;
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerRequestFilter;
+import javax.ws.rs.container.PreMatching;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.UriBuilder;
+
+import org.onap.aai.interceptors.AAIContainerFilter;
+
+@PreMatching
+@Priority(AAIRequestFilterPriority.HEADER_VALIDATION)
+public class RequestModification extends AAIContainerFilter implements ContainerRequestFilter {
+
+ @Override
+ public void filter(ContainerRequestContext requestContext) throws IOException {
+
+ this.cleanDME2QueryParams(requestContext);
+
+ }
+
+ private void cleanDME2QueryParams(ContainerRequestContext request) {
+ UriBuilder builder = request.getUriInfo().getRequestUriBuilder();
+ MultivaluedMap<String, String> queries = request.getUriInfo().getQueryParameters();
+
+ String[] blacklist = { "version", "envContext", "routeOffer" };
+ Set<String> blacklistSet = Arrays.stream(blacklist).collect(Collectors.toSet());
+
+ boolean remove = true;
+
+ for (String param : blacklistSet) {
+ if (!queries.containsKey(param)) {
+ remove = false;
+ break;
+ }
+ }
+
+ if (remove) {
+ for (Map.Entry<String, List<String>> query : queries.entrySet()) {
+ String key = query.getKey();
+ if (blacklistSet.contains(key)) {
+ builder.replaceQueryParam(key);
+ }
+ }
+ }
+ request.setRequestUri(builder.build());
+ }
+
+}
diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/RequestTransactionLogging.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/RequestTransactionLogging.java
new file mode 100644
index 0000000..83d89ae
--- /dev/null
+++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/RequestTransactionLogging.java
@@ -0,0 +1,113 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright (C) 2017 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.aai.interceptors.pre;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Random;
+import java.util.UUID;
+
+import javax.annotation.Priority;
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerRequestFilter;
+import javax.ws.rs.container.PreMatching;
+import javax.ws.rs.core.MediaType;
+
+import org.glassfish.jersey.message.internal.ReaderWriter;
+import org.glassfish.jersey.server.ContainerException;
+import org.onap.aai.exceptions.AAIException;
+import org.onap.aai.interceptors.AAIContainerFilter;
+import org.onap.aai.interceptors.AAIHeaderProperties;
+import org.onap.aai.util.AAIConfig;
+import org.onap.aai.util.AAIConstants;
+import org.onap.aai.util.HbaseSaltPrefixer;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.google.gson.JsonObject;
+
+@PreMatching
+@Priority(AAIRequestFilterPriority.REQUEST_TRANS_LOGGING)
+public class RequestTransactionLogging extends AAIContainerFilter implements ContainerRequestFilter {
+
+ @Autowired
+ private HttpServletRequest httpServletRequest;
+
+ @Override
+ public void filter(ContainerRequestContext requestContext) throws IOException {
+
+ String currentTimeStamp = genDate();
+ String fullId = this.getAAITxIdToHeader(currentTimeStamp);
+ this.addToRequestContext(requestContext, AAIHeaderProperties.AAI_TX_ID, fullId);
+ this.addToRequestContext(requestContext, AAIHeaderProperties.AAI_REQUEST, this.getRequest(requestContext, fullId));
+ this.addToRequestContext(requestContext, AAIHeaderProperties.AAI_REQUEST_TS, currentTimeStamp);
+ }
+
+ private void addToRequestContext(ContainerRequestContext requestContext, String name, String aaiTxIdToHeader) {
+ requestContext.setProperty(name, aaiTxIdToHeader);
+ }
+
+ private String getAAITxIdToHeader(String currentTimeStamp) {
+ String txId = UUID.randomUUID().toString();
+ try {
+ txId = HbaseSaltPrefixer.getInstance().prependSalt(AAIConfig.get(AAIConstants.AAI_NODENAME) + "-"
+ + currentTimeStamp + "-" + new Random(System.currentTimeMillis()).nextInt(99999));
+ } catch (AAIException e) {
+ }
+
+ return txId;
+ }
+
+ private String getRequest(ContainerRequestContext requestContext, String fullId) {
+
+ JsonObject request = new JsonObject();
+ request.addProperty("ID", fullId);
+ request.addProperty("Http-Method", requestContext.getMethod());
+ String contentType = httpServletRequest.getContentType();
+
+ if(contentType == null){
+ contentType = MediaType.APPLICATION_JSON;
+ requestContext.getHeaders().add("Content-Type", contentType);
+ }
+
+ request.addProperty("Content-Type", contentType);
+ request.addProperty("Headers", requestContext.getHeaders().toString());
+
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ InputStream in = requestContext.getEntityStream();
+
+ try {
+ if (in.available() > 0) {
+ ReaderWriter.writeTo(in, out);
+ byte[] requestEntity = out.toByteArray();
+ request.addProperty("Payload", new String(requestEntity, "UTF-8"));
+ requestContext.setEntityStream(new ByteArrayInputStream(requestEntity));
+ }
+ } catch (IOException ex) {
+ throw new ContainerException(ex);
+ }
+
+ return request.toString();
+ }
+
+}
diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/SetLoggingContext.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/SetLoggingContext.java
new file mode 100644
index 0000000..76de206
--- /dev/null
+++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/SetLoggingContext.java
@@ -0,0 +1,70 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright (C) 2017 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.aai.interceptors.pre;
+
+import java.io.IOException;
+
+import javax.annotation.Priority;
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerRequestFilter;
+import javax.ws.rs.container.PreMatching;
+
+import org.onap.aai.interceptors.AAIContainerFilter;
+import org.onap.aai.interceptors.AAIHeaderProperties;
+import org.onap.aai.logging.LoggingContext;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
+
+@PreMatching
+@Priority(AAIRequestFilterPriority.SET_LOGGING_CONTEXT)
+public class SetLoggingContext extends AAIContainerFilter implements ContainerRequestFilter {
+
+ @Autowired
+ private Environment environment;
+
+ @Autowired
+ private HttpServletRequest httpServletRequest;
+
+ @Override
+ public void filter(ContainerRequestContext requestContext) throws IOException {
+
+ String uri = httpServletRequest.getRequestURI();
+ String queryString = httpServletRequest.getQueryString();
+
+ if(queryString != null && !queryString.isEmpty()){
+ uri = uri + "?" + queryString;
+ }
+
+ String httpMethod = requestContext.getMethod();
+ String transId = requestContext.getHeaderString(AAIHeaderProperties.TRANSACTION_ID);
+ String fromAppId = requestContext.getHeaderString(AAIHeaderProperties.FROM_APP_ID);
+
+ LoggingContext.init();
+ LoggingContext.requestId(transId);
+ LoggingContext.partnerName(fromAppId);
+ LoggingContext.targetEntity(environment.getProperty("spring.application.name"));
+ LoggingContext.component(fromAppId);
+ LoggingContext.serviceName(httpMethod + " " + uri);
+ LoggingContext.targetServiceName(httpMethod + " " + uri);
+ }
+
+}
diff --git a/aai-traversal/src/main/java/org/onap/aai/rest/retired/RetiredConsumer.java b/aai-traversal/src/main/java/org/onap/aai/rest/retired/RetiredConsumer.java
index 0188142..301fa5c 100644
--- a/aai-traversal/src/main/java/org/onap/aai/rest/retired/RetiredConsumer.java
+++ b/aai-traversal/src/main/java/org/onap/aai/rest/retired/RetiredConsumer.java
@@ -35,7 +35,7 @@ import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
-import org.apache.cxf.jaxrs.ext.PATCH;
+import io.swagger.jaxrs.PATCH;
import org.onap.aai.exceptions.AAIException;
import org.onap.aai.logging.ErrorLogHelper;
diff --git a/aai-traversal/src/main/java/org/onap/aai/rest/util/EchoResponse.java b/aai-traversal/src/main/java/org/onap/aai/rest/util/EchoResponse.java
index 55a07e4..1dfc99f 100644
--- a/aai-traversal/src/main/java/org/onap/aai/rest/util/EchoResponse.java
+++ b/aai-traversal/src/main/java/org/onap/aai/rest/util/EchoResponse.java
@@ -42,11 +42,12 @@ import org.onap.aai.restcore.RESTAPI;
/**
* The Class EchoResponse.
*/
+@Path("/util")
public class EchoResponse extends RESTAPI {
protected static String authPolicyFunctionName = "util";
- public static final String echoPath = "/util/echo";
+ public static final String echoPath = "/echo";
/**
* Simple health-check API that echos back the X-FromAppId and X-TransactionId to clients.
diff --git a/aai-traversal/src/main/java/org/onap/aai/web/JerseyConfiguration.java b/aai-traversal/src/main/java/org/onap/aai/web/JerseyConfiguration.java
new file mode 100644
index 0000000..96fd2a2
--- /dev/null
+++ b/aai-traversal/src/main/java/org/onap/aai/web/JerseyConfiguration.java
@@ -0,0 +1,127 @@
+package org.onap.aai.web;
+
+import org.glassfish.jersey.filter.LoggingFilter;
+import org.glassfish.jersey.server.ResourceConfig;
+import org.glassfish.jersey.servlet.ServletProperties;
+import org.onap.aai.rest.QueryConsumer;
+import org.onap.aai.rest.retired.V3ThroughV7Consumer;
+import org.onap.aai.rest.search.ModelAndNamedQueryRestProvider;
+import org.onap.aai.rest.search.SearchProvider;
+import org.onap.aai.rest.util.EchoResponse;
+import org.reflections.Reflections;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Profile;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Priority;
+import javax.ws.rs.ApplicationPath;
+import javax.ws.rs.container.ContainerRequestFilter;
+import javax.ws.rs.container.ContainerResponseFilter;
+import java.util.List;
+import java.util.Set;
+import java.util.logging.Logger;
+import java.util.stream.Collectors;
+
+@Component
+@ApplicationPath("/aai")
+public class JerseyConfiguration extends ResourceConfig {
+
+ private static final Logger log = Logger.getLogger(JerseyConfiguration.class.getName());
+
+ private Environment env;
+
+ @Autowired
+ public JerseyConfiguration(Environment env) {
+
+ this.env = env;
+
+ register(SearchProvider.class);
+ register(ModelAndNamedQueryRestProvider.class);
+ register(QueryConsumer.class);
+
+ register(V3ThroughV7Consumer.class);
+ register(EchoResponse.class);
+
+ //Request Filters
+ registerFiltersForRequests();
+ // Response Filters
+ registerFiltersForResponses();
+
+ property(ServletProperties.FILTER_FORWARD_ON_404, true);
+
+ // Following registers the request headers and response headers
+ // If the LoggingFilter second argument is set to true, it will print response value as well
+ if ("true".equalsIgnoreCase(env.getProperty("aai.request.logging.enabled"))) {
+ register(new LoggingFilter(log, false));
+ }
+ }
+
+ public void registerFiltersForRequests() {
+
+ // Find all the classes within the interceptors package
+ Reflections reflections = new Reflections("org.onap.aai.interceptors");
+ // Filter them based on the clazz that was passed in
+ Set<Class<? extends ContainerRequestFilter>> filters = reflections.getSubTypesOf(ContainerRequestFilter.class);
+
+
+ // Check to ensure that each of the filter has the @Priority annotation and if not throw exception
+ for (Class filterClass : filters) {
+ if (filterClass.getAnnotation(Priority.class) == null) {
+ throw new RuntimeException("Container filter " + filterClass.getName() + " does not have @Priority annotation");
+ }
+ }
+
+ // Turn the set back into a list
+ List<Class<? extends ContainerRequestFilter>> filtersList = filters
+ .stream()
+ .filter(f -> {
+ if (f.isAnnotationPresent(Profile.class)
+ && !env.acceptsProfiles(f.getAnnotation(Profile.class).value())) {
+ return false;
+ }
+ return true;
+ })
+ .collect(Collectors.toList());
+
+ // Sort them by their priority levels value
+ filtersList.sort((c1, c2) -> Integer.valueOf(c1.getAnnotation(Priority.class).value()).compareTo(c2.getAnnotation(Priority.class).value()));
+
+ // Then register this to the jersey application
+ filtersList.forEach(this::register);
+ }
+
+ public void registerFiltersForResponses() {
+
+ // Find all the classes within the interceptors package
+ Reflections reflections = new Reflections("org.onap.aai.interceptors");
+ // Filter them based on the clazz that was passed in
+ Set<Class<? extends ContainerResponseFilter>> filters = reflections.getSubTypesOf(ContainerResponseFilter.class);
+
+
+ // Check to ensure that each of the filter has the @Priority annotation and if not throw exception
+ for (Class filterClass : filters) {
+ if (filterClass.getAnnotation(Priority.class) == null) {
+ throw new RuntimeException("Container filter " + filterClass.getName() + " does not have @Priority annotation");
+ }
+ }
+
+ // Turn the set back into a list
+ List<Class<? extends ContainerResponseFilter>> filtersList = filters.stream()
+ .filter(f -> {
+ if (f.isAnnotationPresent(Profile.class)
+ && !env.acceptsProfiles(f.getAnnotation(Profile.class).value())) {
+ return false;
+ }
+ return true;
+ })
+ .collect(Collectors.toList());
+
+ // Sort them by their priority levels value
+ filtersList.sort((c1, c2) -> Integer.valueOf(c1.getAnnotation(Priority.class).value()).compareTo(c2.getAnnotation(Priority.class).value()));
+
+ // Then register this to the jersey application
+ filtersList.forEach(this::register);
+ }
+
+}
diff --git a/aai-traversal/src/main/java/org/onap/aai/web/LocalHostAccessLog.java b/aai-traversal/src/main/java/org/onap/aai/web/LocalHostAccessLog.java
new file mode 100644
index 0000000..4344e36
--- /dev/null
+++ b/aai-traversal/src/main/java/org/onap/aai/web/LocalHostAccessLog.java
@@ -0,0 +1,39 @@
+package org.onap.aai.web;
+
+import ch.qos.logback.access.jetty.RequestLogImpl;
+import org.eclipse.jetty.server.handler.HandlerCollection;
+import org.eclipse.jetty.server.handler.RequestLogHandler;
+import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
+import org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainerFactory;
+import org.springframework.boot.context.embedded.jetty.JettyServerCustomizer;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.Arrays;
+
+@Configuration
+public class LocalHostAccessLog {
+
+ @Bean
+ public EmbeddedServletContainerFactory jettyConfigBean(){
+ JettyEmbeddedServletContainerFactory jef = new JettyEmbeddedServletContainerFactory();
+ jef.addServerCustomizers((JettyServerCustomizer) server -> {
+
+ HandlerCollection handlers = new HandlerCollection();
+
+ Arrays.stream(server.getHandlers()).forEach(handlers::addHandler);
+
+ RequestLogHandler requestLogHandler = new RequestLogHandler();
+ requestLogHandler.setServer(server);
+
+ RequestLogImpl requestLogImpl = new RequestLogImpl();
+ requestLogImpl.setResource("/localhost-access-logback.xml");
+ requestLogImpl.start();
+
+ requestLogHandler.setRequestLog(requestLogImpl);
+ handlers.addHandler(requestLogHandler);
+ server.setHandler(handlers);
+ });
+ return jef;
+ }
+}
diff --git a/aai-traversal/src/main/java/org/onap/aai/web/WebConfiguration.java b/aai-traversal/src/main/java/org/onap/aai/web/WebConfiguration.java
new file mode 100644
index 0000000..a85fcf9
--- /dev/null
+++ b/aai-traversal/src/main/java/org/onap/aai/web/WebConfiguration.java
@@ -0,0 +1,27 @@
+package org.onap.aai.web;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
+
+@Configuration
+public class WebConfiguration {
+
+ @Bean
+ public WebMvcConfigurerAdapter forwardToIndex() {
+ return new WebMvcConfigurerAdapter() {
+ @Override
+ public void addViewControllers(ViewControllerRegistry registry) {
+ registry.addViewController("/swagger").setViewName(
+ "redirect:/swagger/index.html");
+ registry.addViewController("/swagger/").setViewName(
+ "redirect:/swagger/index.html");
+ registry.addViewController("/docs").setViewName(
+ "redirect:/docs/html/index.html");
+ registry.addViewController("/docs/").setViewName(
+ "redirect:/docs/html/index.html");
+ }
+ };
+ }
+} \ No newline at end of file
diff --git a/aai-traversal/src/main/resources/application.properties b/aai-traversal/src/main/resources/application.properties
new file mode 100644
index 0000000..bdb7535
--- /dev/null
+++ b/aai-traversal/src/main/resources/application.properties
@@ -0,0 +1,72 @@
+# The following info parameters are being referenced by ajsc6
+info.build.artifact=aai-traversal
+info.build.name=traversal
+info.build.description=Traversal Microservice
+info.build.version=1.1.0
+
+spring.application.name=aai-traversal
+spring.jersey.type=filter
+
+server.contextPath=/
+spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
+
+spring.profiles.active=production
+#The max number of active threads in this pool
+server.tomcat.max-threads=200
+#The minimum number of threads always kept alive
+server.tomcat.min-Spare-Threads=25
+#The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads
+server.tomcat.max-idle-time=60000
+
+
+#Add this properties only if you want to change the URL, AJSC Framework interceptors will intercept
+#com.att.ajsc.common.interceptors.PreInterceptor.url=/**
+#com.att.ajsc.common.interceptors.PostInterceptor.url=/**
+
+#Servlet context parameters
+server.context_parameters.p-name=value #context parameter with p-name as key and value as value.
+kubernetes.namespace=org-onap-aai
+
+# If you get an application startup failure that the port is already taken
+# If thats not it, please check if the key-store file path makes sense
+server.local.startpath=aai-traversal/src/main/resources/
+server.basic.auth.location=${server.local.startpath}etc/auth/realm.properties
+
+server.port=8446
+server.ssl.enabled-protocols=TLSv1.1,TLSv1.2
+server.ssl.key-store=${server.local.startpath}etc/auth/aai_keystore
+server.ssl.key-store-password=password(OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0)
+server.ssl.trust-store=${server.local.startpath}etc/auth/aai_keystore
+server.ssl.trust-store-password=password(OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0)
+server.ssl.client-auth=want
+server.ssl.key-store-type=JKS
+
+# JMS bind address host port
+jms.bind.address=tcp://localhost:61647
+dmaap.ribbon.eureka.enabled=false
+dmaap.ribbon.listOfServers=localhost:3904
+# Number of milliseconds to wait before making ping requests again
+dmaap.ribbon.ServerListRefreshInterval=75000
+dmaap.ribbon.NFLoadBalancerPingInterval=75000
+dmaap.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.AvailabilityFilteringRule
+dmaap.ribbon.NFLoadBalancerPingClassName=org.onap.aai.config.HttpPingImpl
+dmaap.ribbon.EnableMarkingServerDownOnReachingFailureLimit=true
+dmaap.ribbon.ServerDownFailureLimit=1
+# This needs to be verified but it seems that adding this property should automatically
+# Make the dmaap client change the url from http to https depending on the server
+dmaap.ribbon.securePorts=3905
+
+# Custom Dmaap Specific Configuration
+dmaap.ribbon.username=
+dmaap.ribbon.password=
+dmaap.ribbon.health.endpoint=/topics/AAI-EVENT
+# Number of seconds to wait for the ping to work and might need to increase this if the pings are all failing
+dmaap.ribbon.pingport.timeout=3
+
+niws.loadbalancer.dmaap.filterCircuitTripped=true
+niws.loadbalancer.dmaap.connectionFailureCountThreshold=3
+niws.loadbalancer.dmaap.circuitTripMaxTimeoutSeconds=180
+#dmaap.ribbon.retryableStatusCodes=404,503
+#dmaap.ribbon.retryableStatusCodes.MaxAutoRetriesNextServer=2
+#dmaap.ribbon.retryableStatusCodes.MaxAutoRetries=2
+#dmaap.ribbon.retryableStatusCodes.OkToRetryOnAllOperations=true
diff --git a/aai-traversal/src/main/resources/docker/Dockerfile b/aai-traversal/src/main/resources/docker/Dockerfile
deleted file mode 100644
index dc28e15..0000000
--- a/aai-traversal/src/main/resources/docker/Dockerfile
+++ /dev/null
@@ -1,31 +0,0 @@
-FROM aaionap/aai-common:1.1.0
-
-RUN mkdir -p /opt/aaihome/aaiadmin /opt/aai/logroot/AAI-RES /opt/app/aai-traversal/bin /opt/app/aai-traversal/extApps;
-
-# Add the proper files into the docker image from your build
-ADD ./opt/app/aai-traversal /opt/app/aai-traversal
-ADD ./commonLibs/ /opt/app/commonLibs/
-ADD init-chef.sh /opt/app/aai-traversal/init-chef.sh
-ADD docker-entrypoint.sh /opt/app/aai-traversal/docker-entrypoint.sh
-ADD aai.sh /etc/profile.d/aai.sh
-
-# Change the permissions of aai shell script and all scripts in the microservice to be executable
-RUN chmod 644 /etc/profile.d/aai.sh && \
- find /opt/app/aai-traversal -name "*.sh" -exec chmod 755 {} +
-
-# Set the log directory to be mountable so the logs will be persisted
-VOLUME /opt/aai/logroot/AAI-GQ
-
-# Expose the ports that needs to be available from the container
-EXPOSE 8447
-
-# During the startup of the container, this will be the starting directory
-WORKDIR /opt/app/aai-traversal
-
-# When the container is started this is the entrypoint script
-# that docker will run. Make sure this script doesn't end abruptly
-# Docker entrypoint will run exec command to make that main process
-# Using the exec form here will ensure the java process is main
-
-ENTRYPOINT ["/bin/bash", "/opt/app/aai-traversal/docker-entrypoint.sh"]
-
diff --git a/aai-traversal/src/main/resources/docker/commonLibs/README b/aai-traversal/src/main/resources/docker/commonLibs/README
deleted file mode 100644
index 00e36c0..0000000
--- a/aai-traversal/src/main/resources/docker/commonLibs/README
+++ /dev/null
@@ -1 +0,0 @@
-// this file's presence ensures commonLibs folder is present when image is created \ No newline at end of file
diff --git a/aai-traversal/src/main/resources/docker/docker-entrypoint.sh b/aai-traversal/src/main/resources/docker/docker-entrypoint.sh
deleted file mode 100644
index 1a57d9a..0000000
--- a/aai-traversal/src/main/resources/docker/docker-entrypoint.sh
+++ /dev/null
@@ -1,134 +0,0 @@
-#
-# ============LICENSE_START=======================================================
-# org.onap.aai
-# ================================================================================
-# Copyright © 2017 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.
-# ============LICENSE_END=========================================================
-#
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
-#
-
-# Set the current path to be the application home and common libs home
-export APP_HOME=$(pwd);
-COMMONLIBS_HOME="/opt/app/commonLibs";
-
-export CHEF_CONFIG_REPO=${CHEF_CONFIG_REPO:-aai-config};
-export CHEF_GIT_URL=${CHEF_GIT_URL:-http://gerrit.onap.org/r/aai};
-export CHEF_CONFIG_GIT_URL=${CHEF_CONFIG_GIT_URL:-$CHEF_GIT_URL};
-export CHEF_DATA_GIT_URL=${CHEF_DATA_GIT_URL:-$CHEF_GIT_URL};
-
-export RESOURCES_HOSTNAME=${RESOURCES_HOSTNAME:-aai-resources.api.simpledemo.onap.org};
-export RESOURCES_PORT=${RESOURCES_PORT:-8447};
-
-USER_ID=${LOCAL_USER_ID:-9001}
-
-if [ $(cat /etc/passwd | grep aaiadmin | wc -l) -eq 0 ]; then
- useradd --shell=/bin/bash -u ${USER_ID} -o -c "" -m aaiadmin || {
- echo "Unable to create the user id for ${USER_ID}";
- exit 1;
- }
-fi;
-
-chown -R aaiadmin:aaiadmin /opt/app /var/chef /opt/aai/logroot
-
-gosu aaiadmin ./init-chef.sh || {
- echo "Unable to run init chef script, please check logs";
- exit 1;
-}
-
-httpPort=8086;
-httpsPort=8446;
-
-AAI_CORE_JAR=$(ls ${APP_HOME}/extJars/aai-core*.jar);
-
-# Get the basename of the aai-core-X.Y.Z-SNAPSHOT.jar
-# Then extract the X.Y.Z-SNAPSHOT part
-AAI_CORE_VERSION=$(basename ${AAI_CORE_JAR} | grep -o '[0-9]*\.[0-9]*\.[0-9]*[^.]*');
-
-
-cd ${APP_HOME};
-
-# If the variable DISABLE_UPDATE_QUERY is empty
-# then the update query date shell script will be ran
-# This makes it configurable to run update query or not
-
-if [ -z ${DISABLE_UPDATE_QUERY} ]; then
-
- while ! nc -z ${RESOURCES_HOSTNAME} ${RESOURCES_PORT} ;
- do
- echo "Waiting for resources to be up";
- sleep 5;
- done
-
- UPDATE_QUERY_RAN_FILE="updateQueryRan.txt";
-
- AAICONFIG_FILE=/opt/app/aai-traversal/bundleconfig/etc/appprops/aaiconfig.properties;
-
- if [ ! -f ${UPDATE_QUERY_RAN_FILE} ]; then
- OLD_RESOURCES_URL=$(grep -o "^aai.server.url=.*" ${AAICONFIG_FILE} | cut -d"=" -f2-);
- TEMP_RESOURCES_URL=https://${RESOURCES_HOSTNAME}:${RESOURCES_PORT}/aai/v11/;
- sed -i "s%^aai.server.url=.*$%aai.server.url=${TEMP_RESOURCES_URL}%g" ${AAICONFIG_FILE};
- gosu aaiadmin /opt/app/aai-traversal/bin/install/updateQueryData.sh
- touch ${UPDATE_QUERY_RAN_FILE};
- sed -i "s%^aai.server.url=.*$%aai.server.url=${OLD_RESOURCES_URL}%g" ${AAICONFIG_FILE};
- fi
-fi
-
-CP=${COMMONLIBS_HOME}/*;
-CP="$CP":${APP_HOME}/etc;
-CP="$CP":${APP_HOME}/lib/*;
-CP="$CP":${APP_HOME}/extJars/logback-access-1.1.7.jar;
-CP="$CP":${APP_HOME}/extJars/logback-core-1.1.7.jar;
-CP="$CP":${AAI_CORE_JAR};
-
-# You can add additional jvm options by adding environment variable JVM_PRE_OPTS
-# If you need to add more jvm options at the end then you can use JVM_POST_OPTS
-JVM_OPTS="${JVM_PRE_OPTS} ${JVM_OPTS}";
-JVM_OPTS="${JVM_OPTS} -server -XX:NewSize=512m -XX:MaxNewSize=512m";
-JVM_OPTS="${JVM_OPTS} -XX:SurvivorRatio=8";
-JVM_OPTS="${JVM_OPTS} -XX:+DisableExplicitGC -verbose:gc -XX:+UseParNewGC";
-JVM_OPTS="${JVM_OPTS} -XX:+CMSParallelRemarkEnabled -XX:+CMSClassUnloadingEnabled";
-JVM_OPTS="${JVM_OPTS} -XX:+UseConcMarkSweepGC -XX:-UseBiasedLocking";
-JVM_OPTS="${JVM_OPTS} -XX:ParallelGCThreads=4";
-JVM_OPTS="${JVM_OPTS} -XX:LargePageSizeInBytes=128m ";
-JVM_OPTS="${JVM_OPTS} -XX:+PrintGCDetails -XX:+PrintGCTimeStamps";
-JVM_OPTS="${JVM_OPTS} -Xloggc:${APP_HOME}/logs/gc/graph-query_gc.log";
-JVM_OPTS="${JVM_OPTS} -XX:+HeapDumpOnOutOfMemoryError";
-JVM_OPTS="${JVM_OPTS} ${JVM_POST_OPTS}";
-
-# You can add additional java options by adding environment variable JAVA_PRE_OPTS
-# If you need to add more jvm options at the end then you can use JAVA_POST_OPTS
-JAVA_OPTS="${JAVA_PRE_OPTS} ${JAVA_OPTS}";
-JAVA_OPTS="${JAVA_OPTS} -Dsun.net.inetaddr.ttl=180";
-JAVA_OPTS="${JAVA_OPTS} -Dhttps.protocols=TLSv1.1,TLSv1.2";
-JAVA_OPTS="${JAVA_OPTS} -DSOACLOUD_SERVICE_VERSION=1.0.1";
-JAVA_OPTS="${JAVA_OPTS} -DAJSC_HOME=${APP_HOME}";
-JAVA_OPTS="${JAVA_OPTS} -DAJSC_CONF_HOME=${APP_HOME}/bundleconfig";
-JAVA_OPTS="${JAVA_OPTS} -DAJSC_SHARED_CONFIG=${APP_HOME}/bundleconfig";
-JAVA_OPTS="${JAVA_OPTS} -DAFT_HOME=${APP_HOME}";
-JAVA_OPTS="${JAVA_OPTS} -DAAI_CORE_VERSION=${AAI_CORE_VERSION}";
-JAVA_OPTS="${JAVA_OPTS} -Daai-core.version=${AAI_CORE_VERSION}";
-JAVA_OPTS="${JAVA_OPTS} -Dlogback.configurationFile=${APP_HOME}/bundleconfig/etc/logback.xml";
-JAVA_OPTS="${JAVA_OPTS} ${JAVA_POST_OPTS}";
-
-JAVA_ARGS="${JAVA_PRE_ARGS} ${JAVA_ARGS}";
-JAVA_ARGS="${JAVA_ARGS} context=/";
-JAVA_ARGS="${JAVA_ARGS} port=$httpPort";
-JAVA_ARGS="${JAVA_ARGS} sslport=$httpsPort";
-JAVA_ARGS="${JAVA_ARGS} ${JAVA_POST_ARGS}";
-
-JAVA_CMD="exec gosu aaiadmin java";
-# Run the following command as aai-admin using gosu and make that process main
-${JAVA_CMD} -cp ${CLASSPATH}:${CP} ${JVM_OPTS} ${JAVA_OPTS} com.att.ajsc.runner.Runner ${JAVA_ARGS} "$@"
diff --git a/aai-traversal/src/main/resources/docker/init-chef.sh b/aai-traversal/src/main/resources/docker/init-chef.sh
deleted file mode 100644
index a8802db..0000000
--- a/aai-traversal/src/main/resources/docker/init-chef.sh
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/bin/bash
-#
-# ============LICENSE_START=======================================================
-# org.onap.aai
-# ================================================================================
-# Copyright © 2017 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.
-# ============LICENSE_END=========================================================
-#
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
-#
-
-##############################################################################
-# Script to initialize the chef-repo branch and.chef
-#
-##############################################################################
-
-cd /var/chef;
-
-if [ ! -d "aai-config" ]; then
-
- git clone --depth 1 -b ${CHEF_BRANCH} --single-branch ${CHEF_CONFIG_GIT_URL}/${CHEF_CONFIG_REPO}.git aai-config || {
- echo "Error: Unable to clone the aai-config repo with url: ${CHEF_GIT_URL}/${CHEF_CONFIG_REPO}.git";
- exit 1;
- }
-
-fi
-
-if [ -d "aai-config/cookbooks/aai-traversal" ]; then
-
- (cd aai-config/cookbooks/aai-traversal/ && \
- for f in $(ls); do mv $f ../; done && \
- cd ../ && rmdir aai-traversal);
-
-fi;
-
-if [ ! -d "aai-data" ]; then
-
- git clone --depth 1 -b ${CHEF_BRANCH} --single-branch ${CHEF_DATA_GIT_URL}/aai-data.git aai-data || {
- echo "Error: Unable to clone the aai-data repo with url: ${CHEF_GIT_URL}";
- exit 1;
- }
-
-fi
-
-chef-solo \
- -c /var/chef/aai-data/chef-config/dev/.knife/solo.rb \
- -j /var/chef/aai-config/cookbooks/runlist-aai-traversal.json \
- -E ${AAI_CHEF_ENV};
-
diff --git a/aai-traversal/src/main/resources/etc/.gitignore b/aai-traversal/src/main/resources/etc/.gitignore
new file mode 100644
index 0000000..48bd738
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/.gitignore
@@ -0,0 +1 @@
+/oxm/
diff --git a/aai-traversal/src/main/resources/etc/appprops/Introscope.properties b/aai-traversal/src/main/resources/etc/appprops/Introscope.properties
new file mode 100644
index 0000000..319381e
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/appprops/Introscope.properties
@@ -0,0 +1,8 @@
+#CSI environment uses the Introscope java agent for monitoring services. The AJSC has provided an implementation class that
+#provides basic information to the Introscope Enterprise Manager for each http request/response.
+
+introscopeEventClass=com.att.ajsc.introscope.IntroscopeEventNotifierImpl
+serviceName=N/A
+conversationId=N/A
+uniqueID=N/A
+userID=N/A
diff --git a/aai-traversal/src/main/resources/etc/appprops/PostProcessorInterceptors.properties b/aai-traversal/src/main/resources/etc/appprops/PostProcessorInterceptors.properties
new file mode 100644
index 0000000..ca31a26
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/appprops/PostProcessorInterceptors.properties
@@ -0,0 +1,3 @@
+#This properties file is for defining any PostProcessorInterceptors that have been created for your AJSC service.
+
+/**=org.onap.aai.interceptors.PostAaiAjscInterceptor
diff --git a/aai-traversal/src/main/resources/etc/appprops/aaiEventDMaaPPublisher.properties b/aai-traversal/src/main/resources/etc/appprops/aaiEventDMaaPPublisher.properties
new file mode 100644
index 0000000..4aa7445
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/appprops/aaiEventDMaaPPublisher.properties
@@ -0,0 +1,4 @@
+Protocol=http
+contenttype=application/json
+host=localhost:3904
+topic=AAI-EVENT
diff --git a/aai-traversal/src/test/resources/bundleconfig-local/etc/appprops/aaiconfig.properties b/aai-traversal/src/main/resources/etc/appprops/aaiconfig.properties
index 2fdb55e..0c263be 100644
--- a/aai-traversal/src/test/resources/bundleconfig-local/etc/appprops/aaiconfig.properties
+++ b/aai-traversal/src/main/resources/etc/appprops/aaiconfig.properties
@@ -43,14 +43,18 @@ aai.transaction.logging=true
aai.transaction.logging.get=true
aai.transaction.logging.post=true
-aai.server.url.base=https://localhost:8446/aai/
-aai.server.url=https://localhost:8446/aai/v10/
-aai.global.callback.url=https://localhost:8446/aai/
+aai.tools.enableBasicAuth=true
+aai.tools.username=AAI
+aai.tools.password=AAI
+
+aai.server.url.base=https://localhost:8443/aai/
+aai.server.url=https://localhost:8443/aai/v12/
+aai.global.callback.url=https://localhost:8443/aai/
aai.auth.cspcookies_on=false
aai.dbmodel.filename=ex5.json
aai.truststore.filename=aai_keystore
-aai.truststore.passwd.x=
+aai.truststore.passwd.x=OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0
aai.keystore.filename=aai-client-cert.p12
aai.keystore.passwd.x=
@@ -60,7 +64,8 @@ hbase.notificationTable.name=aainotification-dev1.dev
hbase.table.timestamp.format=YYYYMMdd-HH:mm:ss:SSS
hbase.zookeeper.quorum=ONAPserverTBD
hbase.zookeeper.property.clientPort=2181
-hbase.zookeeper.znode.parent=/hbase-unsecure
+hbase.zookeeper.znode.parent=/hbase
+
# single primary server
aai.primary.filetransfer.serverlist=ONAPserverTBD
@@ -74,44 +79,42 @@ aai.rsync.options.list=-v|-t
aai.rsync.remote.user=aaiadmin
aai.rsync.enabled=y
-aai.notification.current.version=v10
+aai.notification.current.version=v12
aai.notificationEvent.default.status=UNPROCESSED
aai.notificationEvent.default.eventType=AAI-EVENT
aai.notificationEvent.default.domain=devINT1
aai.notificationEvent.default.sourceName=aai
aai.notificationEvent.default.sequenceNumber=0
aai.notificationEvent.default.severity=NORMAL
-aai.notificationEvent.default.version=v10
+aai.notificationEvent.default.version=v12
# This one lets us enable/disable resource-version checking on updates/deletes
aai.resourceversion.enableflag=true
aai.logging.maxStackTraceEntries=10
-aai.default.api.version=v10
+aai.default.api.version=v12
# Used by Model-processing code
aai.model.delete.sleep.per.vtx.msec=500
-aai.model.query.resultset.maxcount=30
+aai.model.query.resultset.maxcount=50
aai.model.query.timeout.sec=90
aai.model.proc.max.levels=50
aai.edgeTag.proc.max.levels=50
-# Used by the ForceDelete tool
-aai.forceDel.protected.nt.list=cloud-region
-aai.forceDel.protected.edge.count=10
-aai.forceDel.protected.descendant.count=10
-
aai.dmaap.workload.enableEventProcessing=true
aai.realtime.clients=RO,SDNC,MSO
aai.server.rebind=g
+aai.jms.enable=false
+
#timeout for traversal enabled flag
aai.traversal.timeoutenabled=true
#timeout app specific
-aai.traversal.timeout.appspecific=JUNITTESTAPP1,-1|JUNITTESTAPP2,-1|DCAE-CCS,-1|DCAES,-1|AAI-FILEGEN-GFPIP,-1
+aai.traversal.timeout.appspecific=JUNITTESTAPP1,1|JUNITTESTAPP2,-1|DCAE-CCS,-1|DCAES,-1|AAI-FILEGEN-GFPIP,-1
#default timeout limit added for traversal if not overridden (in ms)
aai.traversal.timeoutlimit=180000
+
diff --git a/aai-traversal/src/main/resources/etc/appprops/default-logback.xml b/aai-traversal/src/main/resources/etc/appprops/default-logback.xml
new file mode 100644
index 0000000..655157b
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/appprops/default-logback.xml
@@ -0,0 +1,43 @@
+<!--
+
+ ============LICENSE_START=======================================================
+ org.onap.aai
+ ================================================================================
+ Copyright © 2017 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.
+ ============LICENSE_END=========================================================
+
+ ECOMP is a trademark and service mark of AT&T Intellectual Property.
+
+-->
+<configuration debug="false">
+ <property name="defaultPattern" value="%d{MM/dd-HH:mm:ss.SSS}|%logger|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%msg%n" />
+
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>${defaultPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <logger name="org.reflections" level="WARN"/>
+ <logger name="org.apache.zookeeper" level="WARN"/>
+ <logger name="org.apache.hadoop" level="WARN"/>
+ <logger name="com.thinkaurelius" level="WARN"/>
+ <logger name="ch.qos.logback.classic" level="WARN" />
+ <logger name="ch.qos.logback.core" level="WARN" />
+
+ <root level="INFO">
+ <appender-ref ref="STDOUT"/>
+ </root>
+</configuration>
diff --git a/aai-traversal/src/main/resources/etc/appprops/error.properties b/aai-traversal/src/main/resources/etc/appprops/error.properties
new file mode 100644
index 0000000..ba71275
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/appprops/error.properties
@@ -0,0 +1,172 @@
+# Adding comment trying to trigger a build
+#------------------------------------------------------------------------------- ----------
+#Key=Disposition:Category:Severity:Error Code:HTTP ResponseCode:RESTError Code:Error Message
+#------------------------------------------------------------------------------- ----------
+# testing code, please don't change unless error utility source code changes
+AAI_TESTING=5:2:WARN:0000:400:0001:Error code for testing
+
+# General success
+AAI_0000=0:0:INFO:0000:200:0000:Success
+
+# health check success
+AAI_0001=0:0:INFO:0001:200:0001:Success X-FromAppId=%1 X-TransactionId=%2
+AAI_0002=0:0:INFO:0002:200:0001:Successful health check
+
+# Success with additional info
+AAI_0003=0:3:INFO:0003:202:0003:Success with additional info performing %1 on %2. Added %3 with key %4
+AAI_0004=0:3:INFO:0004:202:0003:Added prerequisite object to db
+
+#--- aairest: 3000-3299
+# svc errors
+AAI_3000=5:2:INFO:3000:400:3000:Invalid input performing %1 on %2
+AAI_3001=5:6:INFO:3001:404:3001:Resource not found for %1 using id %2
+AAI_3002=5:1:WARN:3002:400:3002:Error writing output performing %1 on %2
+AAI_3003=5:1:WARN:3003:400:3003:Failed to make edge to missing target node of type %3 with keys %4 performing %1 on %2
+AAI_3005=5:6:WARN:3005:404:3001:Node cannot be directly accessed for read, must be accessed via ancestor(s)
+AAI_3006=5:6:WARN:3006:404:3001:Node cannot be directly accessed for write, must be accessed via ancestor(s)
+AAI_3007=5:6:INFO:3007:410:3007:This version (%1) of the API is retired, please migrate to %2
+AAI_3008=5:6:WARN:3008:400:3008:URI is not encoded in UTF-8
+AAI_3009=5:6:WARN:3009:400:3002:Malformed URL
+AAI_3010=5:6:WARN:3010:400:3002:Cannot write via this URL
+AAI_3011=5:6:WARN:3011:400:3000:Unknown XML namespace used in payload
+AAI_3012=5:6:WARN:3012:400:3012:Unrecognized AAI function
+AAI_3013=5:6:WARN:3013:400:3013:Query payload missing required parameters %1
+AAI_3014=5:6:WARN:3014:400:3014:Query payload is invalid %1
+# pol errors
+AAI_3100=5:1:WARN:3100:400:3100:Unsupported operation %1
+AAI_3101=5:1:WARN:3101:403:3101:Attempt by client %1 to execute API %2
+AAI_3102=5:1:WARN:3102:400:3102:Error parsing input performing %1 on %2
+AAI_3300=5:1:WARN:3300:403:3300:Unauthorized
+AAI_3301=5:1:WARN:3301:401:3301:Stale credentials
+AAI_3302=5:1:WARN:3302:401:3301:Not authenticated
+AAI_3303=5:1:WARN:3303:403:3300:Too many objects would be returned by this request, please refine your request and retry
+
+#--- aaigen: 4000-4099
+AAI_4000=5:4:ERROR:4000:500:3002:Internal Error
+AAI_4001=5:4:FATAL:4001:500:3002:Configuration file not found
+AAI_4002=5:4:FATAL:4002:500:3002:Error reading Configuration file
+AAI_4003=5:4:ERROR:4003:500:3002:Error writing to log file
+AAI_4004=5:4:FATAL:4004:500:3002:Error reading/parsing the error properties file
+AAI_4005=5:4:FATAL:4005:500:3002:Missing or invalid configuration parameter
+AAI_4006=5:4:FATAL:4006:500:3002:Unexpected error in service
+AAI_4007=5:4:WARN:4007:500:3102:Input parsing error
+AAI_4008=5:4:ERROR:4008:500:3002:Output parsing error
+AAI_4009=4:0:WARN:4009:400:3000:Invalid X-FromAppId in header
+AAI_4010=4:0:WARN:4010:400:3000:Invalid X-TransactionId in header
+AAI_4011=5:4:ERROR:4011:500:3002:Missing data for REST error response
+AAI_4014=4:0:WARN:4014:400:3000:Invalid Accept header
+AAI_4015=4:0:WARN:4015:400:3000:You must provide at least one indexed property
+AAI_4016=4:0:WARN:4016:400:3000:The depth parameter must be a number or the string "all"
+AAI_4017=5:2:INFO:4017:400:3000:Could not set property
+AAI_4018=5:2:WARN:4018:400:3000:Unable to convert the string to integer
+#--- aaidbmap: 5102-5199
+AAI_5102=5:4:FATAL:5102:500:3002:Graph database is null after open
+AAI_5105=5:4:ERROR:5105:500:3002:Unexpected error reading/updating database
+AAI_5106=5:4:WARN:5106:404:3001:Node not found
+AAI_5107=5:2:WARN:5107:400:3000:Required information missing
+AAI_5108=5:2:WARN:5108:200:0:Unexpected information in request being ignored
+
+#--- aaidbgen: 6101-6199
+AAI_6101=5:4:ERROR:6101:500:3002:null TitanGraph object passed
+AAI_6102=5:4:WARN:6102:400:3000:Passed-in property is not valid for this nodeType
+AAI_6103=5:4:WARN:6103:400:3000:Required Node-property not found in input data
+AAI_6104=5:4:WARN:6104:400:3000:Required Node-property was passed with no data
+AAI_6105=5:4:WARN:6105:400:3000:Node-Key-Property not defined in DbMaps
+AAI_6106=5:4:WARN:6106:400:3000:Passed-in property is not valid for this edgeType
+AAI_6107=5:4:WARN:6107:400:3000:Required Edge-property not found in input data
+AAI_6108=5:4:WARN:6108:400:3000:Required Edge-property was passed with no data
+AAI_6109=5:4:WARN:6109:400:3000:Bad dependent Node value
+AAI_6110=5:4:ERROR:6110:400:3100:Node cannot be deleted
+AAI_6111=5:4:WARN:6111:400:3000:JSON processing error
+AAI_6112=5:4:ERROR:6112:400:3000:More than one node found by getUniqueNode()
+AAI_6114=5:4:INFO:6114:404:3001:Node Not Found
+AAI_6115=5:4:ERROR:6115:400:3000:Unrecognized NodeType
+AAI_6116=5:4:ERROR:6116:400:3000:Unrecognized Property
+AAI_6117=5:4:ERROR:6117:400:3000:Uniqueness constraint violated
+AAI_6118=5:4:WARN:6118:400:3000:Required Field not passed.
+AAI_6120=5:4:WARN:6120:400:3000:Bad Parameter Passed
+AAI_6121=5:4:ERROR:6121:400:3000:Problem with internal AAI reference data
+AAI_6122=5:4:ERROR:6122:400:3000:Data Set not complete in DB for this request
+AAI_6123=5:4:ERROR:6123:500:3000:Bad Data found by DataGrooming Tool - Investigate
+AAI_6124=5:4:ERROR:6124:500:3000:File read/write error
+AAI_6125=5:4:WARN:6125:500:3000:Problem Pulling Data Set
+AAI_6126=5:4:ERROR:6126:400:3000:Edge cannot be deleted
+AAI_6127=5:4:INFO:6127:404:3001:Edge Not Found
+AAI_6128=5:4:INFO:6128:500:3000:Unexpected error
+AAI_6129=5:4:INFO:6129:404:3003:Error making edge to target node
+AAI_6130=5:4:WARN:6130:412:3000:Precondition Required
+AAI_6131=5:4:WARN:6131:412:3000:Precondition Failed
+AAI_6132=5:4:WARN:6132:400:3000:Bad Model Definition
+AAI_6133=5:4:WARN:6133:400:3000:Bad Named Query Definition
+AAI_6134=5:4:ERROR:6134:500:6134:Could not persist transaction to storage back end. Exhausted retry amount
+AAI_6135=5:4:WARN:6135:412:3000:Resource version specified on create
+AAI_6136=5:4:ERROR:6136:400:3000:Object cannot hold multiple items
+AAI_6137=5:4:ERROR:6137:400:3000:Cannot perform writes on multiple vertices
+AAI_6138=5:4:ERROR:6138:400:3000:Cannot delete multiple vertices
+AAI_6139=5:4:ERROR:6139:404:3000:Attempted to add edge to vertex that does not exist
+AAI_6140=5:4:ERROR:6140:400:3000:Edge multiplicity violated
+AAI_6141=5:4:WARN:6141:400:3000:Please Refine Query
+AAI_6142=5:4:INFO:6142:400:3000:Retrying transaction
+AAI_6143=5:4:INFO:6143:400:3000:Ghost vertex found
+AAI_6144=5:4:WARN:6144:400:3000:Cycle found in graph
+AAI_6145=5:4:ERROR:6145:400:3000:Cannot create a nested/containment edge via relationship
+AAI_6146=5:4:ERROR:6146:400:3000:Ambiguous identity map found, use a URI instead
+AAI_6147=5:4:ERROR:6147:400:3000:Payload Limit Reached, reduce payload
+
+#--- aaicsvp: 7101-7199
+AAI_7101=5:4:ERROR:7101:500:3002:Unexpected error in CSV file processing
+AAI_7102=5:4:ERROR:7102:500:3002:Error in cleanup temporary directory
+#AAI_7103=4:2:ERROR:7103:500:3002:Unsupported user
+AAI_7104=5:4:ERROR:7104:500:3002:Failed to create directory
+AAI_7105=5:4:ERROR:7105:500:3002:Temporary directory exists
+AAI_7106=5:4:ERROR:7106:500:3002:Cannot delete
+AAI_7107=5:4:ERROR:7107:500:3002:Input file does not exist
+AAI_7108=5:4:ERROR:7108:500:3002:Output file does not exist
+AAI_7109=5:4:ERROR:7109:500:3002:Error closing file
+AAI_7110=5:4:ERROR:7110:500:3002:Error loading/reading properties file
+AAI_7111=5:4:ERROR:7111:500:3002:Error executing shell script
+AAI_7112=5:4:ERROR:7112:500:3002:Error creating output file
+AAI_7113=5:4:ERROR:7113:500:3002:Trailer record error
+AAI_7114=5:4:ERROR:7114:500:3002:Input file error
+AAI_7115=5:4:ERROR:7115:500:3002:Unexpected error
+AAI_7116=5:4:ERROR:7116:500:3002:Request error
+AAI_7117=5:4:ERROR:7117:500:3002:Error in get http client object
+AAI_7118=5:4:ERROR:7118:500:3002:Script Error
+AAI_7119=5:4:ERROR:7119:500:3002:Unknown host
+
+#--- aaisdnc: 7201-7299
+AAI_7202=5:4:ERROR:7202:500:3002:Error getting connection to odl
+AAI_7203=5:4:ERROR:7203:500:3002:Unexpected error calling DataChangeNotification API
+AAI_7204=5:4:ERROR:7204:500:3002:Error returned by DataChangeNotification API
+AAI_7205=5:4:ERROR:7205:500:3002:Unexpected error running notifySDNCOnUpdate
+#AAI_7206=5:4:ERROR:7206:500:3002:Invalid data returned from ODL
+
+#--- NotificationEvent, using UEB space
+AAI_7350=5:4:ERROR:7305:500:3002:Notification event creation failed
+
+#--- aairestctlr: 7401-7499
+AAI_7401=5:4:ERROR:7401:500:3002:Error connecting to AAI REST API
+AAI_7402=5:4:ERROR:7402:500:3002:Unexpected error
+AAI_7403=5:4:WARN:7403:400:3001:Request error
+AAI_7404=5:4:INFO:7404:404:3001:Node not found
+AAI_7405=5:4:WARN:7405:200:0:UUID not formatted correctly, generating UUID
+AAI_7406=5:4:ERROR:7406:400:7406:Request Timed Out
+
+#--- aaicsiovals: 7501-7599
+#AAI_7501=5:4:WARN:7501:500:3002:Error getting connection to CSI-OVALS
+AAI_7502=5:4:WARN:7502:500:3002:Bad parameter when trying to build request for CSI-OVALS
+AAI_7503=5:4:WARN:7503:500:3002:Error returned by CSI-OVALS
+
+#--- aaiauth: 9101-9199
+AAI_9101=5:0:WARN:9101:403:3300:User is not authorized to perform function
+#AAI_9102=5:0:WARN:9102:401:3301:Refresh credentials from source
+#AAI_9103=5:0:WARN:9103:403:3300:User not found
+#AAI_9104=5:0:WARN:9104:401:3302:Authentication error
+#AAI_9105=5:0:WARN:9105:403:3300:Authorization error
+#AAI_9106=5:0:WARN:9106:403:3300:Invalid AppId
+#AAI_9107=5:0:WARN:9107:403:3300:No Username in Request
+AAI_9107=5:0:WARN:9107:403:3300:SSL is not provided in request, please contact admin
+
+#--- aaiinstar: 9201-9299
+#AAI_9201=5:4:ERROR:9201:500:3002:Unable to send notification
+AAI_9202=5:4:ERROR:9202:500:3002:Unable to start a thread
diff --git a/aai-traversal/src/test/resources/inmemory_titan.properties b/aai-traversal/src/main/resources/etc/appprops/gremlin-server-config.yaml
index cf4bbfd..a9de31f 100644
--- a/aai-traversal/src/test/resources/inmemory_titan.properties
+++ b/aai-traversal/src/main/resources/etc/appprops/gremlin-server-config.yaml
@@ -20,4 +20,6 @@
# ECOMP is a trademark and service mark of AT&T Intellectual Property.
#
-storage.backend=inmemory
+hosts: [localhost]
+port: 8182
+serializer: { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0 } \ No newline at end of file
diff --git a/aai-traversal/src/main/resources/etc/appprops/logging.properties b/aai-traversal/src/main/resources/etc/appprops/logging.properties
new file mode 100644
index 0000000..e029cc4
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/appprops/logging.properties
@@ -0,0 +1,128 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+
+handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+
+.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+
+############################################################
+# Handler specific properties.
+# Describes specific configuration info for Handlers.
+############################################################
+
+# this is where we will limit logging on components
+org.apache.hadoop.level=WARNING
+org.apache.zookeeper.level=WARNING
+org.reflections.level=WARNING
+com.thinkaurelius.level=WARNING
+
+1catalina.org.apache.juli.FileHandler.level = FINE
+1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+1catalina.org.apache.juli.FileHandler.prefix = catalina.
+
+2localhost.org.apache.juli.FileHandler.level = FINE
+2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+2localhost.org.apache.juli.FileHandler.prefix = localhost.
+
+3manager.org.apache.juli.FileHandler.level = FINE
+3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+3manager.org.apache.juli.FileHandler.prefix = manager.
+
+4host-manager.org.apache.juli.FileHandler.level = FINE
+4host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+4host-manager.org.apache.juli.FileHandler.prefix = host-manager.
+
+java.util.logging.ConsoleHandler.level = INFO
+java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
+
+
+
+############################################################
+# Facility specific properties.
+# Provides extra control for each logger.
+############################################################
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.FileHandler
+
+# For example, set the org.apache.catalina.util.LifecycleBase logger to log
+# each component that extends LifecycleBase changing state:
+#org.apache.catalina.util.LifecycleBase.level = FINE
+
+# To see debug messages in TldLocationsCache, uncomment the following line:
+#org.apache.jasper.compiler.TldLocationsCache.level = FINE
+
+
+################################
+# OpenEJB/TomEE specific loggers
+################################
+#
+# ACTIVATE LEVEL/HANDLERS YOU WANT
+# IF YOU ACTIVATE 5tomee.org.apache.juli.FileHandler
+# ADD IT TO handlers LINE LIKE:
+#
+# handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+#
+# LEVELS:
+# =======
+#
+# OpenEJB.level = WARNING
+# OpenEJB.options.level = INFO
+# OpenEJB.server.level = INFO
+# OpenEJB.startup.level = INFO
+# OpenEJB.startup.service.level = WARNING
+# OpenEJB.startup.config.level = INFO
+# OpenEJB.hsql.level = INFO
+# CORBA-Adapter.level = WARNING
+# Transaction.level = WARNING
+# org.apache.activemq.level = SEVERE
+# org.apache.geronimo.level = SEVERE
+# openjpa.level = WARNING
+# OpenEJB.cdi.level = INFO
+# org.apache.webbeans.level = INFO
+# org.apache.openejb.level = FINE
+#
+# HANDLERS:
+# =========
+#
+# OpenEJB.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+# OpenEJB.options.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+# OpenEJB.server.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+# OpenEJB.startup.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+# OpenEJB.startup.service.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+# OpenEJB.startup.config.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+# OpenEJB.hsql.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+# CORBA-Adapter.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+# Transaction.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+# org.apache.activemq.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+# org.apache.geronimo.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+# openjpa.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+# OpenEJB.cdi.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+# org.apache.webbeans.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+# org.apache.openejb.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+#
+# TOMEE HANDLER SAMPLE:
+# =====================
+#
+# 5tomee.org.apache.juli.FileHandler.level = FINEST
+# 5tomee.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+# 5tomee.org.apache.juli.FileHandler.prefix = tomee.
+
diff --git a/aai-traversal/src/main/resources/etc/appprops/methodMapper.properties b/aai-traversal/src/main/resources/etc/appprops/methodMapper.properties
new file mode 100644
index 0000000..d6c1158
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/appprops/methodMapper.properties
@@ -0,0 +1,24 @@
+{
+ "ActiveAndAvailableInventory-Traversal" : [{
+ "logicalName" : "getAAIResource",
+ "method" : "get",
+ "url" : "/aai/*"
+ }, {
+ "logicalName" : "putAAIResource",
+ "method" : "put",
+ "url" : "/aai/*"
+ }, {
+ "logicalName" : "deleteAAIResource",
+ "method" : "delete",
+ "url" : "/aai/*"
+ }, {
+ "logicalName" : "postAAIResource",
+ "method" : "post",
+ "url" : "/aai/*"
+ }, {
+ "logicalName" : "patchAAIResource",
+ "method" : "patch",
+ "url" : "/aai/*"
+ }
+ ]
+} \ No newline at end of file
diff --git a/aai-traversal/src/main/resources/etc/appprops/preferredRoute.txt b/aai-traversal/src/main/resources/etc/appprops/preferredRoute.txt
new file mode 100644
index 0000000..662b0aa
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/appprops/preferredRoute.txt
@@ -0,0 +1 @@
+preferredRouteKey=MR1 \ No newline at end of file
diff --git a/aai-traversal/src/test/resources/config/etc/titan-cached.properties b/aai-traversal/src/main/resources/etc/appprops/titan-cached.properties
index 2333d2a..0106788 100644
--- a/aai-traversal/src/test/resources/config/etc/titan-cached.properties
+++ b/aai-traversal/src/main/resources/etc/appprops/titan-cached.properties
@@ -22,12 +22,13 @@
query.fast-property=true
# the following parameters are not reloaded automatically and require a manual bounce
+#storage.backend=inmemory
storage.backend=inmemory
-storage.hostname=ONAPserverTBD
+storage.hostname=localhost
#schema.default=none
storage.lock.wait-time=300
-storage.hbase.table=aaigraph-dev1.dev
+storage.hbase.table=aaigraph-dev02
storage.hbase.ext.zookeeper.znode.parent=/hbase-unsecure
#caching on
cache.db-cache = true
diff --git a/aai-traversal/src/test/resources/config/etc/titan-realtime.properties b/aai-traversal/src/main/resources/etc/appprops/titan-realtime.properties
index 2d1d21d..ace08b3 100644
--- a/aai-traversal/src/test/resources/config/etc/titan-realtime.properties
+++ b/aai-traversal/src/main/resources/etc/appprops/titan-realtime.properties
@@ -22,15 +22,16 @@
query.fast-property=true
# the following parameters are not reloaded automatically and require a manual bounce
+#storage.backend=inmemory
storage.backend=inmemory
-storage.hostname=ONAPserverTBD
+storage.hostname=localhost
#schema.default=none
storage.lock.wait-time=300
-storage.hbase.table=aaigraph-dev1.dev
+storage.hbase.table=aaigraph-dev02
storage.hbase.ext.zookeeper.znode.parent=/hbase-unsecure
# Setting db-cache to false ensure the fastest propagation of changes across servers
cache.db-cache = false
#load graphson file on startup
-load.snapshot.file=true
+load.snapshot.file=false
diff --git a/aai-traversal/src/main/resources/etc/auth/aai_keystore b/aai-traversal/src/main/resources/etc/auth/aai_keystore
new file mode 100644
index 0000000..1ddef0c
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/auth/aai_keystore
Binary files differ
diff --git a/aai-traversal/src/main/resources/etc/query/stored-queries.json b/aai-traversal/src/main/resources/etc/query/stored-queries.json
new file mode 100644
index 0000000..8d18fd7
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/query/stored-queries.json
@@ -0,0 +1,266 @@
+{
+ "stored-queries":[{
+ "cloud-region-fromVnf":{
+ "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vnfc').store('x').createEdgeTraversal(EdgeType.COUSIN, 'vnfc', 'vserver').store('x').createEdgeTraversal(EdgeType.TREE, 'vserver', 'tenant').store('x').createEdgeTraversal(EdgeType.TREE, 'tenant', 'cloud-region').store('x').cap('x').unfold().dedup()"
+ }
+ },{
+ "linked-devices":{
+ "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'generic-vnf', 'l-interface'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'generic-vnf', 'lag-interface'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'newvce', 'l-interface'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface')).dedup().until(builder.newInstance().getVerticesByProperty('aai-node-type', new ArrayList<>(Arrays.asList('generic-vnf','newvce','vserver')))).repeat(builder.newInstance().union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'lag-interface', 'l-interface'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'lag-interface'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'vlan'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vlan', 'l-interface'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'lag-interface', 'logical-link'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'logical-link', 'lag-interface'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'l-interface', 'logical-link'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'logical-link', 'l-interface'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vlan', 'logical-link'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'logical-link', 'vlan'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'generic-vnf'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'lag-interface', 'generic-vnf'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'newvce'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'vserver')).dedup().simplePath()).store('x').cap('x').unfold().dedup()"
+ }
+ },{
+ "cloud-region-sites":{
+ "query":{
+ "required-properties":["owner"]
+ },
+ "stored-query":"builder.getVerticesByProperty('aai-node-type', 'cloud-region').getVerticesByProperty('cloud-owner', owner).store('x').createEdgeTraversal(EdgeType.COUSIN, 'cloud-region', 'complex').store('x').cap('x').unfold()"
+ }
+ },{
+ "pserver-fromConfiguration":{
+ "stored-query":"builder.store('x').createEdgeTraversal(EdgeType.COUSIN, 'configuration', 'logical-link').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'logical-link', 'l-interface').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'logical-link', 'pserver').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'logical-link', 'generic-vnf').store('x').createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'pnf').store('x')).cap('x').unfold().dedup()"
+ }
+ },{
+ "spaas-topology-fromServiceInstance":{
+ "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'generic-vnf').createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'flavor').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'image').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'l-interface', 'logical-link').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x')),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'pserver').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'complex').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'pserver', 'p-interface').createEdgeTraversal(EdgeType.COUSIN, 'p-interface', 'physical-link').store('x'))).cap('x').unfold().dedup()"
+ }
+ },{
+ "vnf-instances-fromServiceInstancebyModelVersion":{
+ "query":{
+ "required-properties":["vnfType","modelVersionId"]
+ },
+ "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'generic-vnf').getVerticesByProperty('vnf-type', vnfType).getVerticesByProperty('model-version-id-local', modelVersionId).store('x').cap('x').unfold().dedup()"
+ }
+ },{
+ "pnf-topology":{
+ "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'pnf', 'p-interface').where(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'p-interface', 'physical-link')).as('item').store('x').createEdgeTraversal(EdgeType.COUSIN, 'p-interface', 'physical-link').store('x').createEdgeTraversal(EdgeType.COUSIN, 'physical-link', 'p-interface').where(builder.newInstance().not(builder.newInstance().cap('item'))).store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'p-interface', 'pserver').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'p-interface', 'pnf').store('x')),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'pnf', 'complex').store('x')).cap('x').unfold().dedup()"
+ }
+ },{
+ "so-request-vfModule":{
+ "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vf-module', 'generic-vnf').store('x').createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'service-instance').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vf-module', 'vserver').createEdgeTraversal(EdgeType.TREE, 'vserver', 'tenant').createEdgeTraversal(EdgeType.TREE, 'tenant', 'cloud-region').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vf-module', 'volume-group').store('x')).cap('x').unfold().dedup()"
+ }
+ },{
+ "ucpe-instance":{
+ "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'complex'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'cloud-region').createEdgeTraversal(EdgeType.COUSIN, 'cloud-region', 'complex')).store('x').cap('x').unfold().dedup()"
+ }
+ },{
+ "images-fromCloudRegionNfType":{
+ "query":{
+ "required-properties":["nfType"]
+ },
+ "stored-query":"builder.createEdgeTraversal(EdgeType.TREE, 'cloud-region', 'tenant').createEdgeTraversal(EdgeType.TREE, 'tenant', 'vserver').where(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'generic-vnf').getVerticesByProperty('nf-type',nfType)).createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'image').store('x').cap('x').unfold().dedup()"
+ }
+ },{
+ "site-l3network-cloudRegion":{
+ "stored-query":"builder.store('x').createEdgeTraversal(EdgeType.COUSIN, 'complex', 'l3-network').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-network', 'cloud-region').store('x').cap('x').unfold()"
+ }
+ },{
+ "pnf-fromModel-byRegion":{
+ "query":{
+ "required-properties":["equipVendor","equipModel","cloudRegionId"]
+ },
+ "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'pnf').getVerticesByProperty('equip-vendor', equipVendor).getVerticesByProperty('equip-model', equipModel).where(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'pnf', 'complex').createEdgeTraversal(EdgeType.COUSIN, 'complex', 'cloud-region').getVerticesByProperty('cloud-region-id', cloudRegionId)).store('x').cap('x').unfold().dedup()"
+ }
+ },{
+ "topology-fromCloudRegionIdandServiceId":{
+ "query":{
+ "required-properties":["serviceId"]
+ },
+ "stored-query":"builder.createEdgeTraversal(EdgeType.TREE, 'cloud-region', 'availability-zone').createEdgeTraversal(EdgeType.COUSIN, 'availability-zone', 'generic-vnf').getVerticesByProperty('service-id',serviceId).union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'service-instance').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'flavor').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'image').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'volume').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'vnfc').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'snapshot').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'vf-module').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'l-interface', 'logical-link').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x')))).cap('x').unfold().dedup()"
+ }
+ },{
+ "network-name-fromNetwork-role":{
+ "query":{
+ "required-properties":["networkRole"]
+ },
+ "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'cloud-region', 'l3-network').getVerticesByProperty('network-role', networkRole).store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-network', 'network-policy').store('x').cap('x').unfold().dedup()"
+ }
+ },{
+ "service-sites":{
+ "query":{
+ "required-properties":["customerId","type"]
+ },
+ "stored-query":"builder.getVerticesByProperty('global-customer-id', customerId).createEdgeTraversal(EdgeType.TREE, 'customer', 'service-subscription').getVerticesByProperty('service-type', type).createEdgeTraversal(EdgeType.TREE, 'service-subscription', 'service-instance').store('x').createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'generic-vnf').store('x').createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'pserver').createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'complex'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'tenant').createEdgeTraversal(EdgeType.TREE, 'tenant', 'cloud-region')).store('x').cap('x').unfold().dedup()"
+ }
+ },{
+ "pserver-fromConfigurationFilterInterfaceId":{
+ "query":{
+ "required-properties":["interfaceId"]
+ },
+ "stored-query":"builder.store('x').createEdgeTraversal(EdgeType.COUSIN, 'configuration', 'logical-link').where(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'logical-link', 'l-interface').getVerticesByProperty('interface-id', interfaceId).store('x')).union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'logical-link', 'pserver').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'logical-link', 'generic-vnf').store('x').createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'pnf').store('x')).cap('x').unfold().dedup()"
+ }
+ },{
+ "cloudRegion-fromCountry":{
+ "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'complex', 'cloud-region').store('x').cap('x').unfold().dedup()"
+ }
+ },{
+ "sites-byCountryFilterCloudRegionVer":{
+ "query":{
+ "required-properties":["cloudRegionVersion"]
+ },
+ "stored-query":"builder.where(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'complex', 'l3-network').createEdgeTraversal(EdgeType.COUSIN, 'l3-network', 'cloud-region').getVerticesByProperty('cloud-region-version', cloudRegionVersion)).store('x').cap('x').unfold().dedup()"
+ }
+ },{
+ "vnf-topology-fromVfModule":{
+ "stored-query":"builder.createEdgeTraversal(EdgeType.TREE, 'vf-module', 'generic-vnf').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'service-instance').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'service-instance', 'service-subscription').createEdgeTraversal(EdgeType.TREE, 'service-subscription', 'customer').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'service-instance', 'allotted-resource').store('x')),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'generic-vnf', 'vf-module').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'volume-group').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'generic-vnf', 'l-interface').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'l3-network').store('x'),),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'tenant').store('x').createEdgeTraversal(EdgeType.TREE, 'tenant', 'cloud-region').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'pserver').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'l3-network').store('x'),)).cap('x').unfold().dedup()"
+ }
+ },{
+ "serviceModels-byDistributionStatus":{
+ "query":{
+ "required-properties":["distributionStatus"]
+ },
+ "stored-query":"builder.getVerticesByProperty('model-type', 'service').where(builder.newInstance().createEdgeTraversal(EdgeType.TREE,'model', 'model-ver').getVerticesByProperty('distribution-status', distributionStatus)).store('x').createEdgeTraversal(EdgeType.TREE,'model', 'model-ver').getVerticesByProperty('distribution-status', distributionStatus).store('x').cap('x').unfold().dedup()"
+ }
+ },{
+ "vserver-fromVnf":{
+ "query":{
+ "required-properties":["nfcFunction"]
+ },
+ "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vnfc').getVerticesByProperty('nfc-function', nfcFunction).store('x').createEdgeTraversal(EdgeType.COUSIN, 'vnfc', 'vserver').store('x').createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x')).cap('x').unfold().dedup()"
+ }
+ },{
+ "sites-byCloudRegionId":{
+ "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'cloud-region', 'l3-network').createEdgeTraversal(EdgeType.COUSIN, 'l3-network', 'complex').store('x').cap('x').unfold().dedup()"
+ }
+ },{
+ "availabilityZoneAndComplex-fromCloudRegion":{
+ "stored-query":"builder.union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'cloud-region', 'availability-zone').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'cloud-region', 'complex').store('x')).cap('x').unfold().dedup()"
+ }
+ },{
+ "locationNetTypeNetRole-fromCloudRegion":{
+ "stored-query":"builder.store('x').createEdgeTraversal(EdgeType.COUSIN, 'cloud-region', 'complex').store('x').createEdgeTraversal(EdgeType.COUSIN, 'complex', 'l3-network').store('x').cap('x').unfold().dedup()"
+ }
+ },{
+ "service-fromPserverandSubsName":{
+ "query":{
+ "required-properties":["subscriberName"]
+ },
+ "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'vserver').createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'generic-vnf').createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'service-instance').where(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'service-instance', 'service-subscription').where(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'service-subscription', 'customer').getVerticesByProperty('subscriber-name', subscriberName)).store('x')).store('x').cap('x').unfold().dedup()"
+ }
+ },{
+ "nfType-fromCloudRegion":{
+ "stored-query":"builder.createEdgeTraversal(EdgeType.TREE, 'cloud-region', 'tenant').createEdgeTraversal(EdgeType.TREE, 'tenant', 'vserver').createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'generic-vnf').store('x').cap('x').unfold().dedup()"
+ }
+ },{
+ "sites-byCountryFilterCloudRegionId":{
+ "query":{
+ "required-properties":["cloudRegionId"]
+ },
+ "stored-query":"builder.where(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'complex', 'l3-network').createEdgeTraversal(EdgeType.COUSIN, 'l3-network', 'cloud-region').getVerticesByProperty('cloud-region-id', cloudRegionId)).store('x').cap('x').unfold().dedup()"
+ }
+ },{
+ "complex-fromVnf":{
+ "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'pserver').store('x').createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'complex'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'pserver').store('x').createEdgeTraversal(EdgeType.COUSIN,'pserver', 'complex')).store('x').cap('x').unfold().dedup()"
+ }
+ },{
+ "queryvnfFromModelbyRegion":{
+ "query":{
+ "required-properties":["cloudRegionId"]
+ },
+ "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'generic-vnf').where(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').createEdgeTraversal(EdgeType.TREE, 'vserver', 'tenant').createEdgeTraversal(EdgeType.TREE, 'tenant', 'cloud-region').getVerticesByProperty('cloud-region-id', cloudRegionId)).store('x').cap('x').unfold().dedup()"
+ }
+ },{
+ "colocated-devices":{
+ "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'pserver', 'p-interface').store('x').createEdgeTraversal(EdgeType.COUSIN, 'p-interface', 'physical-link').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'complex').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'complex', 'pserver').store('x').createEdgeTraversal(EdgeType.TREE, 'pserver', 'p-interface').store('x').createEdgeTraversal(EdgeType.COUSIN, 'p-interface', 'physical-link').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'complex', 'pnf').store('x').createEdgeTraversal(EdgeType.TREE, 'pnf', 'p-interface').store('x').createEdgeTraversal(EdgeType.COUSIN, 'p-interface', 'physical-link').store('x'))).cap('x').unfold().dedup()"
+ }
+ },{
+ "cloudRegion-fromCountryCloudRegionVersion":{
+ "query":{
+ "required-properties":["cloudRegionVersion"]
+ },
+ "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'complex', 'cloud-region').getVerticesByProperty('cloud-region-version', cloudRegionVersion).store('x').cap('x').unfold().dedup()"
+ }
+ },{
+ "cloudRegion-fromNfType":{
+ "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').createEdgeTraversal(EdgeType.TREE, 'vserver', 'tenant').createEdgeTraversal(EdgeType.TREE, 'tenant', 'cloud-region').store('x').cap('x').unfold().dedup()"
+ }
+ },{
+ "cloudRegion-fromNfTypeVendorVersion":{
+ "query":{
+ "required-properties":["nfType"]
+ },
+ "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'image', 'vserver').where(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'generic-vnf').getVerticesByProperty('nf-type',nfType)).createEdgeTraversal(EdgeType.TREE, 'vserver', 'tenant').createEdgeTraversal(EdgeType.TREE, 'tenant', 'cloud-region').store('x').cap('x').unfold().dedup()"
+ }
+ },{
+ "vnf-topology-fromServiceInstance":{
+ "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'service-instance', 'service-subscription').createEdgeTraversal(EdgeType.TREE, 'service-subscription', 'customer').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'service-instance', 'allotted-resource').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'generic-vnf').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'generic-vnf', 'vf-module').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'volume-group').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'generic-vnf', 'l-interface').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'l3-network').store('x')),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'tenant').store('x').createEdgeTraversal(EdgeType.TREE, 'tenant', 'cloud-region').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'pserver').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'l3-network').store('x')))).cap('x').unfold().dedup()"
+ }
+ },{
+ "ucpe-topology":{
+ "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'pserver', 'p-interface').where(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'p-interface', 'physical-link')).as('item').store('x').createEdgeTraversal(EdgeType.COUSIN, 'p-interface', 'physical-link').store('x').createEdgeTraversal(EdgeType.COUSIN, 'physical-link', 'p-interface').where(builder.newInstance().not(builder.newInstance().cap('item'))).store('x').createEdgeTraversal(EdgeType.TREE, 'p-interface', 'pnf').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'generic-vnf').store('x').as('vnf').createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vnf-image').store('x').select('vnf').createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'service-instance').store('x').createEdgeTraversal(EdgeType.TREE, 'service-instance', 'service-subscription').store('x').createEdgeTraversal(EdgeType.TREE, 'service-subscription', 'customer').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'complex').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'vserver').createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'generic-vnf').store('x').as('vnf').createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vnf-image').store('x').select('vnf').createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'service-instance').store('x').createEdgeTraversal(EdgeType.TREE, 'service-instance', 'service-subscription').store('x').createEdgeTraversal(EdgeType.TREE, 'service-subscription', 'customer').store('x')).cap('x').unfold().dedup()"
+ }
+ },{
+ "topology-summary":{
+ "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vnfc').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'vnfc').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'tenant').store('x').createEdgeTraversal(EdgeType.TREE, 'tenant', 'cloud-region').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'image').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'flavor').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'pserver').store('x').createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'complex').store('x'))).cap('x').unfold().dedup()"
+ }
+ },{
+ "topology-detail":{
+ "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'platform').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'line-of-business').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'service-instance').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'owning-entity').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'project').store('x')),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vnfc').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x')),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'tenant').createEdgeTraversal(EdgeType.TREE, 'tenant', 'cloud-region').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'pserver').createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'complex').store('x'))).cap('x').unfold().dedup()"
+ }
+ },{
+ "vnfs-fromPserver":{
+ "query":{
+ "required-properties":["hostname"]
+ },
+ "stored-query":"builder.where(builder.newInstance().union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'pserver').getVerticesByProperty('hostname', hostname),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'pserver').getVerticesByProperty('hostname', hostname))).store('x').cap('x').unfold().dedup()"
+ }
+ },{
+ "pending-topology-detail":{
+ "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'platform').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'line-of-business').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'service-instance').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'owning-entity').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'project').store('x')),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vnfc').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vnfc', 'l3-interface-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vnfc', 'l3-interface-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vnfc', 'vip-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'vip-ipv4-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vnfc', 'vip-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'vip-ipv6-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x')).dedup()).cap('x').unfold().dedup()"
+ }
+ },{
+ "vnfs-fromServiceInstance":{
+ "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'generic-vnf').store('x').cap('x').unfold().dedup()"
+ }
+ },{
+ "owning-entity-fromService-instance":{
+ "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN,'service-instance', 'owning-entity').store('x').cap('x').unfold().dedup()"
+ }
+ },{
+ "pservers-fromVnf":{
+ "stored-query":"builder.union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'pserver').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'pserver').store('x')).cap('x').unfold().dedup()"
+ }
+ },{
+ "fn-topology":{
+ "stored-query":"builder.union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'line-of-business', 'generic-vnf').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'generic-vnf').store('x')).dedup().union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vnfc').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'pserver').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'pnf').store('x')).cap('x').unfold().dedup()"
+ }
+ },{
+ "edge-tag":{
+ "stored-query":"builder.emit().repeat(builder.newInstance().union(builder.newInstance().outE().getVerticesByProperty(tag, \"OUT\").inV(), builder.newInstance().inE().getVerticesByProperty(tag, \"IN\").outV()).dedup())"
+ }
+ },{
+ "topology-detail-fromVserver":{
+ "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x')),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'tenant').createEdgeTraversal(EdgeType.TREE, 'tenant', 'cloud-region').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'pserver').createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'complex').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'generic-vnf').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'platform').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'line-of-business').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'service-instance').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'owning-entity').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'project').store('x')),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vnfc').store('x'))).cap('x').unfold().dedup()"
+ }
+ },{
+ "vserverlogicallink-frompServer":{
+ "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'vserver').store('x').createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').createEdgeTraversal(EdgeType.COUSIN, 'l-interface', 'logical-link').store('x').cap('x').unfold().dedup()"
+ }
+ },{
+ "vnf-topology-fromVnf":{
+ "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'service-instance').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'service-instance', 'service-subscription').createEdgeTraversal(EdgeType.TREE, 'service-subscription', 'customer').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'service-instance', 'allotted-resource').store('x')),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'generic-vnf', 'vf-module').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'volume-group').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'generic-vnf', 'l-interface').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'l3-network').store('x'),),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'tenant').store('x').createEdgeTraversal(EdgeType.TREE, 'tenant', 'cloud-region').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'pserver').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'l3-network').store('x'),)).cap('x').unfold().dedup()"
+ }
+ },{
+ "service-topology":{
+ "stored-query":"builder.store('x').createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'generic-vnf').store('x').union( builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vnfc').store('x').union( builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vnfc', 'vip-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'vip-ipv4-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x'), builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vnfc', 'vip-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'vip-ipv6-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x'), builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vnfc', 'l3-interface-ipv4-address-list').store('x').union( builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'l3-network').store('x'), builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x') ), builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vnfc', 'l3-interface-ipv6-address-list').store('x').union( builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'l3-network').store('x'), builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x') ) ), builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').store('x').union( builder.newInstance().createEdgeTraversal(EdgeType.TREE,'vserver','tenant').store('x'), builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').store('x').union( builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x').union( builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'l3-network').store('x'), builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x') ), builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x').union( builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'l3-network').store('x'), builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'subnet').store( 'x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x') ) ), builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'pserver').store('x') ), builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'pserver').store('x').createEdgeTraversal(EdgeType.TREE, 'pserver', 'p-interface').store('x').createEdgeTraversal(EdgeType.COUSIN, 'p-interface', 'physical-link').store('x') ).cap('x').unfold().dedup()"
+ }
+ },{
+ "access-service-fromServiceInstance":{
+ "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'service-instance', 'service-subscription').store('x').createEdgeTraversal(EdgeType.TREE, 'service-subscription', 'customer').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'forwarding-path').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'forwarding-path', 'configuration').store('x').createEdgeTraversal(EdgeType.TREE, 'configuration', 'evc').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'forwarding-path', 'forwarder').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'forwarder', 'configuration').store('x').createEdgeTraversal(EdgeType.TREE, 'configuration', 'forwarder-evc').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'forwarder', 'p-interface').store('x').createEdgeTraversal(EdgeType.TREE, 'p-interface', 'pnf').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'forwarder', 'lag-interface').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'lag-interface', 'pnf').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'lag-interface', 'logical-link').getVerticesByProperty('link-type', 'LAG').store('x'))))).cap('x').unfold().dedup()"
+ }
+ },{
+ "count-vnf-byVnfType":{
+ "stored-query":"builder.getVerticesByProperty('aai-node-type', 'generic-vnf').groupCount().by('vnf-type').store('x').unfold()"
+ }
+ },{
+ "pservers-withNoComplex":{
+ "stored-query":"builder.getVerticesByProperty('aai-node-type', 'pserver').where(builder.newInstance().not(builder.newInstance().both().getVerticesByProperty('aai-node-type', 'complex'))).store('x').unfold()"
+ }
+ },{
+ "gfp-vserver-data":{
+ "stored-query":"builder.createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'vlan').store('x')).cap('x').unfold().dedup()"
+ }
+ },{
+ "gfp-vnf-data":{
+ "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'generic-vnf', 'l-interface').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'vlan').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vlan', 'l3-interface-ipv4-address-list').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vlan', 'l3-interface-ipv6-address-list').store('x'))),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'generic-vnf', 'lag-interface').createEdgeTraversal(EdgeType.TREE, 'lag-interface', 'l-interface').store('x').createEdgeTraversal(EdgeType.TREE, 'l-interface', 'vlan').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vlan', 'l3-interface-ipv4-address-list').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vlan', 'l3-interface-ipv6-address-list').store('x')),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vnf-image').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'network-profile').store('x')).cap('x').unfold().dedup()"
+ }
+ }]
+} \ No newline at end of file
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/closed-loop-named-query-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/closed-loop-named-query-1.0.json
new file mode 100644
index 0000000..2ff66f8
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/closed-loop-named-query-1.0.json
@@ -0,0 +1,78 @@
+{
+ "named-query-uuid" : "4ff56a54-9e3f-46b7-a337-07a1d3c6b469",
+ "named-query-name" : "closed-loop-named-query",
+ "named-query-version" : "1.0",
+ "description" : "Named Query - For closed loop flow",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "425b2158-e51d-4509-9945-dad4556474a3"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "97c26c99-6870-44c1-8a07-1d900d3f4ce6"
+ } ]
+ } ]
+ }
+ }, {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "ef86f9c5-2165-44f3-8fc3-96018b609ea5"
+ } ]
+ } ]
+ }
+ }, {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7"
+ } ]
+ } ]
+ }
+ } ]
+ }
+} \ No newline at end of file
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getClfiRoadmTailSummary-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getClfiRoadmTailSummary-1.0.json
new file mode 100644
index 0000000..a30e797
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getClfiRoadmTailSummary-1.0.json
@@ -0,0 +1,94 @@
+{
+ "named-query-uuid" : "4f448e43-339f-4c1c-85f6-896c444e25ca",
+ "named-query-name" : "GetClfiRoadmTailSummary",
+ "named-query-version" : "1.0",
+ "description" : "Named query - Get CLFI ROADM Tail Summary",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "862b25a1-262a-4961-bdaa-cdc55d69785a"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "94043c37-4e73-439c-a790-0fdd697924cd"
+ } ]
+ } ]
+ }
+ }, {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "c1d4305f-cdbd-4bbe-9069-a2f4978fd89e"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "2e1a602a-acd8-4f78-94ff-618b802a303b"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "fe012535-2c31-4a39-a739-612374c638a0"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "fe012535-2c31-4a39-a739-612374c638a0"
+ } ]
+ } ]
+ }
+ } ]
+ }
+} \ No newline at end of file
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComplexByPnfName-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComplexByPnfName-1.0.json
new file mode 100644
index 0000000..fef6c91
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComplexByPnfName-1.0.json
@@ -0,0 +1,32 @@
+{
+ "named-query-uuid" : "d27ccfea-7098-42d7-a4cd-bbddb37bf205",
+ "named-query-name" : "getComplexByPnfName",
+ "named-query-version" : "1.0",
+ "description" : "Named Query - get complex by pnfName",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "af91c2f7-35fc-43cf-a13d-443f385b2353"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "862b25a1-262a-4961-bdaa-cdc55d69785a"
+ } ]
+ } ]
+ }
+ } ]
+ }
+} \ No newline at end of file
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComponentList-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComponentList-1.0.json
new file mode 100644
index 0000000..d3e307c
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComponentList-1.0.json
@@ -0,0 +1,98 @@
+{
+ "named-query-uuid" : "ed0a0f5b-cf79-4784-88b2-911cd726cd3d",
+ "named-query-name" : "get-component-list",
+ "named-query-version" : "1.0",
+ "description" : "Named Query - Get Component List",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "3d560d81-57d0-438b-a2a1-5334dba0651a"
+ } ]
+ } ]
+ }
+ }, {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "fcec1b02-b2d0-4834-aef8-d71be04717dd"
+ } ]
+ } ]
+ }
+ }, {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "3d560d81-57d0-438b-a2a1-5334dba0651a"
+ } ]
+ } ]
+ }
+ }, {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7"
+ } ]
+ } ]
+ }
+ }, {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "fcec1b02-b2d0-4834-aef8-d71be04717dd"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "ef86f9c5-2165-44f3-8fc3-96018b609ea5"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4"
+ } ]
+ } ]
+ }
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComponentList-1.1.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComponentList-1.1.json
new file mode 100644
index 0000000..f275950
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComponentList-1.1.json
@@ -0,0 +1,135 @@
+{
+ "named-query-uuid" : "0367193e-c785-4d5f-9cb8-7bc89dc9ddb7",
+ "named-query-name" : "get-component-list",
+ "named-query-version" : "1.1",
+ "description" : "Named Query - Get Component List",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "service-instance-id", "service-instance-name" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "166c050d-f69d-4305-943e-0bc58c3a26cf"
+ } ]
+ } ]
+ }
+ }, {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "1b2c9ba7-e449-4831-ba15-3073672f5ef2"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "3d560d81-57d0-438b-a2a1-5334dba0651a"
+ } ]
+ } ]
+ }
+ }, {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "fcec1b02-b2d0-4834-aef8-d71be04717dd"
+ } ]
+ } ]
+ }
+ }, {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7"
+ } ]
+ } ]
+ }
+ }, {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "fcec1b02-b2d0-4834-aef8-d71be04717dd"
+ } ]
+ } ]
+ }
+ }, {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "1b2c9ba7-e449-4831-ba15-3073672f5ef2"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "3d560d81-57d0-438b-a2a1-5334dba0651a"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "ef86f9c5-2165-44f3-8fc3-96018b609ea5"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4"
+ } ]
+ } ]
+ }
+ } ]
+ }
+} \ No newline at end of file
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComponentList-1.2.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComponentList-1.2.json
new file mode 100644
index 0000000..22ba4c0
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComponentList-1.2.json
@@ -0,0 +1,139 @@
+{
+ "named-query-uuid" : "2a183f99-2c66-482b-ade5-7962efd801ef",
+ "named-query-name" : "get-component-list",
+ "named-query-version" : "1.2",
+ "description" : "Named Query - Get Component List",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "service-instance-id", "service-instance-name" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "1b2c9ba7-e449-4831-ba15-3073672f5ef2"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "3d560d81-57d0-438b-a2a1-5334dba0651a"
+ } ]
+ } ]
+ }
+ }, {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "fcec1b02-b2d0-4834-aef8-d71be04717dd"
+ } ]
+ } ]
+ }
+ }, {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "do-not-output" : "true",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "6d932c8f-463b-4e76-83fb-87acfbaa2e2d"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7"
+ } ]
+ } ]
+ }
+ }, {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "fcec1b02-b2d0-4834-aef8-d71be04717dd"
+ } ]
+ } ]
+ }
+ }, {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "1b2c9ba7-e449-4831-ba15-3073672f5ef2"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "3d560d81-57d0-438b-a2a1-5334dba0651a"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "ef86f9c5-2165-44f3-8fc3-96018b609ea5"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4"
+ } ]
+ } ]
+ }
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVComplexHostname-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVComplexHostname-1.0.json
new file mode 100644
index 0000000..a610aa6
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVComplexHostname-1.0.json
@@ -0,0 +1,32 @@
+{
+ "named-query-uuid" : "670a94e9-874f-4087-8501-62d4d289c519",
+ "named-query-name" : "dhv-complex-by-hostname",
+ "named-query-version" : "1.0",
+ "description" : "Named Query - DHV Complex By Hostname",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "af91c2f7-35fc-43cf-a13d-443f385b2353"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "6d932c8f-463b-4e76-83fb-87acfbaa2e2d"
+ } ]
+ } ]
+ }
+ } ]
+ }
+} \ No newline at end of file
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVComplexLocationId-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVComplexLocationId-1.0.json
new file mode 100644
index 0000000..70d6db1
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVComplexLocationId-1.0.json
@@ -0,0 +1,32 @@
+{
+ "named-query-uuid" : "59490c32-eaae-488d-8442-f301b1ed43a9",
+ "named-query-name" : "dhv-complex-by-location-id",
+ "named-query-version" : "1.0",
+ "description" : "Named Query - DHV Complex By LocationId",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "6d932c8f-463b-4e76-83fb-87acfbaa2e2d"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "af91c2f7-35fc-43cf-a13d-443f385b2353"
+ } ]
+ } ]
+ }
+ } ]
+ }
+} \ No newline at end of file
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVLogicalLink-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVLogicalLink-1.0.json
new file mode 100644
index 0000000..6e90b61
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVLogicalLink-1.0.json
@@ -0,0 +1,58 @@
+{
+ "named-query-uuid" : "47e5e7c7-719e-45af-b96f-0c15fa0691b9",
+ "named-query-name" : "logical-link-by-vnf-name",
+ "named-query-version" : "1.0",
+ "description" : "Named Query - get logical-link by vnf-name",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "fe012535-2c31-4a39-a739-612374c638a0"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "d2b1eaf1-ae59-4116-9ee4-aa0179faa4f8"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "cea0a982-8d55-4093-921e-418fbccf7060"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c"
+ } ]
+ } ]
+ }
+ } ]
+ }
+} \ No newline at end of file
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVLogicalLinkByCircuitId-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVLogicalLinkByCircuitId-1.0.json
new file mode 100644
index 0000000..62de1b8
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVLogicalLinkByCircuitId-1.0.json
@@ -0,0 +1,19 @@
+{
+ "named-query-uuid" : "4028faed-b7d5-4059-9d49-7df06da9ebfb",
+ "named-query-name" : "logical-link-by-circuit-id-",
+ "named-query-version" : "1.0",
+ "description" : "Named Query - get logical-link by circuit-id",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "fe012535-2c31-4a39-a739-612374c638a0"
+ } ]
+ } ]
+ }
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVServiceTopology-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVServiceTopology-1.0.json
new file mode 100644
index 0000000..a0ba2fe
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVServiceTopology-1.0.json
@@ -0,0 +1,273 @@
+{
+ "named-query-uuid" : "b546a34b-7e71-45dc-9907-4cbdcf675c64",
+ "named-query-name" : "dhv-service-topology",
+ "named-query-version" : "1.0",
+ "description" : "Named Query - DHV Service Topology",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "service-instance-id", "persona-model-id", "service-instance-name", "service-instance-location-id" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "service-type", "temp-ub-sub-account-id" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "global-customer-id" ],
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "c1d4305f-cdbd-4bbe-9069-a2f4978fd89e"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "2e1a602a-acd8-4f78-94ff-618b802a303b"
+ } ]
+ } ]
+ }
+ }, {
+ "property-collect-list" : [ "service-instance-id", "persona-model-id", "service-instance-name", "service-instance-location-id" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "vnf-name", "vnf-id", "vnf-type", "prov-status", "operational-state" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "interface-name" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "vlan-interface", "vlan-id-inner", "vlan-id-outer", "vlan-description", "speed-value", "speed-units" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "l3-interface-ipv4-address" ],
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2"
+ } ]
+ } ]
+ }
+ }, {
+ "property-collect-list" : [ "l3-interface-ipv6-address" ],
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82966045-43ee-4982-8307-7e9610866140"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "d2b1eaf1-ae59-4116-9ee4-aa0179faa4f8"
+ } ]
+ } ]
+ }
+ }, {
+ "property-collect-list" : [ "l3-interface-ipv4-address" ],
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2"
+ } ]
+ } ]
+ }
+ }, {
+ "property-collect-list" : [ "l3-interface-ipv6-address" ],
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82966045-43ee-4982-8307-7e9610866140"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "cea0a982-8d55-4093-921e-418fbccf7060"
+ } ]
+ } ]
+ }
+ }, {
+ "property-collect-list" : [ "vserver-name", "vserver-id", "prov-status" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "interface-name" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "vlan-interface", "vlan-id-inner", "vlan-id-outer", "vlan-description", "speed-value", "speed-units" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "l3-interface-ipv4-address" ],
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2"
+ } ]
+ } ]
+ }
+ }, {
+ "property-collect-list" : [ "l3-interface-ipv6-address" ],
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82966045-43ee-4982-8307-7e9610866140"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "d2b1eaf1-ae59-4116-9ee4-aa0179faa4f8"
+ } ]
+ } ]
+ }
+ }, {
+ "property-collect-list" : [ "l3-interface-ipv4-address" ],
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2"
+ } ]
+ } ]
+ }
+ }, {
+ "property-collect-list" : [ "l3-interface-ipv6-address" ],
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82966045-43ee-4982-8307-7e9610866140"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "cea0a982-8d55-4093-921e-418fbccf7060"
+ } ]
+ } ]
+ }
+ }, {
+ "property-collect-list" : [ "hostname" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "interface-name" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "service-provider-name" ],
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "c822d81f-822f-4304-9623-1025b53da568"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "94043c37-4e73-439c-a790-0fdd697924cd"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "6d932c8f-463b-4e76-83fb-87acfbaa2e2d"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4"
+ } ]
+ } ]
+ }
+ } ]
+ }
+} \ No newline at end of file
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVServiceTopology-1.1.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVServiceTopology-1.1.json
new file mode 100644
index 0000000..2512590
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVServiceTopology-1.1.json
@@ -0,0 +1,273 @@
+{
+ "named-query-uuid" : "888d6065-e1ff-409c-ac6b-baafc4777788",
+ "named-query-name" : "dhv-service-topology",
+ "named-query-version" : "1.1",
+ "description" : "Named Query - DHV Service Topology",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "service-instance-id", "model-invariant-id", "service-instance-name", "service-instance-location-id" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "service-type", "temp-ub-sub-account-id" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "global-customer-id" ],
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "c1d4305f-cdbd-4bbe-9069-a2f4978fd89e"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "2e1a602a-acd8-4f78-94ff-618b802a303b"
+ } ]
+ } ]
+ }
+ }, {
+ "property-collect-list" : [ "service-instance-id", "persona-model-id", "service-instance-name", "service-instance-location-id" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "vnf-name", "vnf-id", "vnf-type", "prov-status", "operational-state" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "interface-name" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "vlan-interface", "vlan-id-inner", "vlan-id-outer", "vlan-description", "speed-value", "speed-units" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "l3-interface-ipv4-address" ],
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2"
+ } ]
+ } ]
+ }
+ }, {
+ "property-collect-list" : [ "l3-interface-ipv6-address" ],
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82966045-43ee-4982-8307-7e9610866140"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "d2b1eaf1-ae59-4116-9ee4-aa0179faa4f8"
+ } ]
+ } ]
+ }
+ }, {
+ "property-collect-list" : [ "l3-interface-ipv4-address" ],
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2"
+ } ]
+ } ]
+ }
+ }, {
+ "property-collect-list" : [ "l3-interface-ipv6-address" ],
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82966045-43ee-4982-8307-7e9610866140"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "cea0a982-8d55-4093-921e-418fbccf7060"
+ } ]
+ } ]
+ }
+ }, {
+ "property-collect-list" : [ "vserver-name", "vserver-id", "prov-status" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "interface-name" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "vlan-interface", "vlan-id-inner", "vlan-id-outer", "vlan-description", "speed-value", "speed-units" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "l3-interface-ipv4-address" ],
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2"
+ } ]
+ } ]
+ }
+ }, {
+ "property-collect-list" : [ "l3-interface-ipv6-address" ],
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82966045-43ee-4982-8307-7e9610866140"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "d2b1eaf1-ae59-4116-9ee4-aa0179faa4f8"
+ } ]
+ } ]
+ }
+ }, {
+ "property-collect-list" : [ "l3-interface-ipv4-address" ],
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2"
+ } ]
+ } ]
+ }
+ }, {
+ "property-collect-list" : [ "l3-interface-ipv6-address" ],
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82966045-43ee-4982-8307-7e9610866140"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "cea0a982-8d55-4093-921e-418fbccf7060"
+ } ]
+ } ]
+ }
+ }, {
+ "property-collect-list" : [ "hostname" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "interface-name" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "service-provider-name" ],
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "c822d81f-822f-4304-9623-1025b53da568"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "94043c37-4e73-439c-a790-0fdd697924cd"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "6d932c8f-463b-4e76-83fb-87acfbaa2e2d"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4"
+ } ]
+ } ]
+ }
+ } ]
+ }
+} \ No newline at end of file
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVServiceTopology2-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVServiceTopology2-1.0.json
new file mode 100644
index 0000000..986c50a
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVServiceTopology2-1.0.json
@@ -0,0 +1,321 @@
+{
+ "named-query-uuid" : "09236f18-a9d2-4468-9086-464b8385b706",
+ "named-query-name" : "dhv-service-topology-2",
+ "named-query-version" : "1.0",
+ "description" : "Named Query - DHV Service Topology 2",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2"
+ } ]
+ } ]
+ }
+ }, {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82966045-43ee-4982-8307-7e9610866140"
+ } ]
+ } ]
+ }
+ }, {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2"
+ } ]
+ } ]
+ }
+ }, {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82966045-43ee-4982-8307-7e9610866140"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "d2b1eaf1-ae59-4116-9ee4-aa0179faa4f8"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "cea0a982-8d55-4093-921e-418fbccf7060"
+ } ]
+ } ]
+ }
+ }, {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "af91c2f7-35fc-43cf-a13d-443f385b2353"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "6d932c8f-463b-4e76-83fb-87acfbaa2e2d"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c"
+ } ]
+ } ]
+ }
+ }, {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2"
+ } ]
+ } ]
+ }
+ }, {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82966045-43ee-4982-8307-7e9610866140"
+ } ]
+ } ]
+ }
+ }, {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2"
+ } ]
+ } ]
+ }
+ }, {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82966045-43ee-4982-8307-7e9610866140"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "d2b1eaf1-ae59-4116-9ee4-aa0179faa4f8"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "cea0a982-8d55-4093-921e-418fbccf7060"
+ } ]
+ } ]
+ }
+ }, {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2"
+ } ]
+ } ]
+ }
+ }, {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82966045-43ee-4982-8307-7e9610866140"
+ } ]
+ } ]
+ }
+ }, {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2"
+ } ]
+ } ]
+ }
+ }, {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82966045-43ee-4982-8307-7e9610866140"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "d2b1eaf1-ae59-4116-9ee4-aa0179faa4f8"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "cea0a982-8d55-4093-921e-418fbccf7060"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "f6d6a23d-a1a9-48ff-8419-b6530da2d381"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4"
+ } ]
+ } ]
+ }
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getL3networkCloudRegionByNetworkRole-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getL3networkCloudRegionByNetworkRole-1.0.json
new file mode 100644
index 0000000..d6b3c34
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getL3networkCloudRegionByNetworkRole-1.0.json
@@ -0,0 +1,71 @@
+{
+ "named-query-uuid" : "96e54642-c0e1-4aa2-af53-e37c623b8d01",
+ "named-query-name" : "l3network-cloud-region-by-network-role",
+ "named-query-version" : "1.0",
+ "description" : "Named Query - get l3Network and cloudRegion by networkRole",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "425b2158-e51d-4509-9945-dad4556474a3"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "97c26c99-6870-44c1-8a07-1d900d3f4ce6"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "3d560d81-57d0-438b-a2a1-5334dba0651a"
+ } ]
+ } ]
+ }
+ } ]
+ }
+} \ No newline at end of file
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getLogicalLinkByCloudRegionId-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getLogicalLinkByCloudRegionId-1.0.json
new file mode 100644
index 0000000..e987d36
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getLogicalLinkByCloudRegionId-1.0.json
@@ -0,0 +1,32 @@
+{
+ "named-query-uuid" : "25096aa7-bc97-4ece-8a81-41dd28cd0f7d",
+ "named-query-name" : "getLogicalLinkByCloudRegionId",
+ "named-query-version" : "1.0",
+ "description" : "Named query - get logical link by cloud region id",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "fe012535-2c31-4a39-a739-612374c638a0"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "425b2158-e51d-4509-9945-dad4556474a3"
+ } ]
+ } ]
+ }
+ } ]
+ }
+} \ No newline at end of file
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getPinterfacePhysicalLinkBySvcInstId-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getPinterfacePhysicalLinkBySvcInstId-1.0.json
new file mode 100644
index 0000000..e8b377b
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getPinterfacePhysicalLinkBySvcInstId-1.0.json
@@ -0,0 +1,84 @@
+{
+ "named-query-uuid" : "75d55786-200b-49fd-92d7-1393e755d693",
+ "named-query-name" : "pinterface-physical-link-by-service-instance-id",
+ "named-query-version" : "1.0",
+ "description" : "Named Query - get pInterface and physicalLink by serviceInstanceId",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "c822d81f-822f-4304-9623-1025b53da568"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "94043c37-4e73-439c-a790-0fdd697924cd"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "6d932c8f-463b-4e76-83fb-87acfbaa2e2d"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4"
+ } ]
+ } ]
+ }
+ } ]
+ }
+} \ No newline at end of file
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getRouterRoadmTailSummary-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getRouterRoadmTailSummary-1.0.json
new file mode 100644
index 0000000..6f775e8
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getRouterRoadmTailSummary-1.0.json
@@ -0,0 +1,120 @@
+{
+ "named-query-uuid" : "cbf22b8a-f29a-4b9b-a466-a878095b258a",
+ "named-query-name" : "GetRouterRoadmTailSummary",
+ "named-query-version" : "1.0",
+ "description" : "Named query - Get Router ROADM Tail Summary",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "862b25a1-262a-4961-bdaa-cdc55d69785a"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "94043c37-4e73-439c-a790-0fdd697924cd"
+ } ]
+ } ]
+ }
+ }, {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "c1d4305f-cdbd-4bbe-9069-a2f4978fd89e"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "2e1a602a-acd8-4f78-94ff-618b802a303b"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "fe012535-2c31-4a39-a739-612374c638a0"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "fe012535-2c31-4a39-a739-612374c638a0"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "94043c37-4e73-439c-a790-0fdd697924cd"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "862b25a1-262a-4961-bdaa-cdc55d69785a"
+ } ]
+ } ]
+ }
+ } ]
+ }
+} \ No newline at end of file
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getServiceInstanceModel-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getServiceInstanceModel-1.0.json
new file mode 100644
index 0000000..035dc8c
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getServiceInstanceModel-1.0.json
@@ -0,0 +1,93 @@
+{
+ "named-query-uuid" : "3fb4d3d3-36c1-4162-9fe9-3e2c68a9da81",
+ "named-query-name" : "getServiceInstanceModel-1.0",
+ "named-query-version" : "1.0",
+ "description" : "Named query - Get service instance model",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "related-lookups" : {
+ "related-lookup" : [ {
+ "source-node-type" : "vf-module",
+ "source-node-property" : "model-invariant-id-local",
+ "target-node-type" : "model",
+ "target-node-property" : "model-invariant-id",
+ "property-collect-list" : [ "model-invariant-id", "model-type" ]
+ },
+ {
+ "source-node-type" : "vf-module",
+ "source-node-property" : "model-version-id-local",
+ "target-node-type" : "model-ver",
+ "target-node-property" : "model-version-id",
+ "property-collect-list" : [ "model-name", "model-version-id", "model-version" ]
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "ef86f9c5-2165-44f3-8fc3-96018b609ea5"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "related-lookups" : {
+ "related-lookup" : [ {
+ "source-node-type" : "generic-vnf",
+ "source-node-property" : "model-invariant-id-local",
+ "target-node-type" : "model",
+ "target-node-property" : "model-invariant-id",
+ "property-collect-list" : [ "model-invariant-id", "model-type" ]
+ },
+ {
+ "source-node-type" : "generic-vnf",
+ "source-node-property" : "model-version-id-local",
+ "target-node-type" : "model-ver",
+ "target-node-property" : "model-version-id",
+ "property-collect-list" : [ "model-name", "model-version-id", "model-version" ]
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "related-lookups" : {
+ "related-lookup" : [ {
+ "source-node-type" : "service-instance",
+ "source-node-property" : "model-invariant-id-local",
+ "target-node-type" : "model",
+ "target-node-property" : "model-invariant-id",
+ "property-collect-list" : [ "model-invariant-id", "model-type" ]
+ },
+ {
+ "source-node-type" : "service-instance",
+ "source-node-property" : "model-invariant-id-local",
+ "target-node-type" : "model",
+ "target-node-property" : "model-invariant-id",
+ "property-collect-list" : [ "model-name", "model-version-id", "model-version" ]
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4"
+ } ]
+ } ]
+ }
+ } ]
+ }
+} \ No newline at end of file
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getServiceInstanceSummary-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getServiceInstanceSummary-1.0.json
new file mode 100644
index 0000000..971b1a2
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getServiceInstanceSummary-1.0.json
@@ -0,0 +1,126 @@
+{
+ "named-query-uuid" : "5aaae840-ca96-4e5f-9308-58883564a80f",
+ "named-query-name" : "get-service-instance-summary",
+ "named-query-version" : "1.0",
+ "description" : "Named Query - Get Service Instance Summary",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "service-instance-id", "service-instance-name", "operational-status" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "do-not-output" : "true",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "cloud-region-id" ],
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "425b2158-e51d-4509-9945-dad4556474a3"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "3d560d81-57d0-438b-a2a1-5334dba0651a"
+ } ]
+ } ]
+ }
+ }, {
+ "property-collect-list" : [ "service-type" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "global-customer-id", "subscriber-name" ],
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "c1d4305f-cdbd-4bbe-9069-a2f4978fd89e"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "2e1a602a-acd8-4f78-94ff-618b802a303b"
+ } ]
+ } ]
+ }
+ }, {
+ "do-not-output" : "true",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "do-not-output" : "true",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "do-not-output" : "true",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "cloud-region-id" ],
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "425b2158-e51d-4509-9945-dad4556474a3"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "97c26c99-6870-44c1-8a07-1d900d3f4ce6"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4"
+ } ]
+ } ]
+ }
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getSvcSubscriberModelInfo-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getSvcSubscriberModelInfo-1.0.json
new file mode 100644
index 0000000..5dcd475
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getSvcSubscriberModelInfo-1.0.json
@@ -0,0 +1,46 @@
+{
+ "named-query-uuid" : "6e806bc2-8f9b-4534-bb68-be91267ff6c8",
+ "named-query-name" : "get-service-instance-model-info",
+ "named-query-version" : "1.0",
+ "description" : "Named Query - Get Service Instance Model Info",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "do-not-output" : "false",
+ "related-lookups" : {
+ "related-lookup" : [ {
+ "source-node-type" : "service-instance",
+ "source-node-property" : "model-invariant-id-local",
+ "target-node-type" : "model",
+ "target-node-property" : "model-invariant-id",
+ "property-collect-list" : ["model-invariant-id", "model-type", "model-description" ]
+ }, {
+ "source-node-type" : "service-instance",
+ "source-node-property" : "model-version-id-local",
+ "target-node-type" : "model-ver",
+ "target-node-property" : "model-version-id",
+ "property-collect-list" : [ "model-version-id", "model-name", "model-version", "model-description" ]
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "2e1a602a-acd8-4f78-94ff-618b802a303b"
+ } ]
+ } ]
+ }
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getTenantInfoAtSvcInstance-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getTenantInfoAtSvcInstance-1.0.json
new file mode 100644
index 0000000..ee1bec5
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getTenantInfoAtSvcInstance-1.0.json
@@ -0,0 +1,87 @@
+{
+ "named-query-uuid" : "3c167fdb-5a99-46a3-8165-e566d289358d",
+ "named-query-name" : "getTenantInfoAtSvcInstance",
+ "named-query-version" : "1.0",
+ "description" : "Named Query - Tenant Info At Service Instance",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "service-instance-id", "service-instance-name" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "vnf-id", "vnf-name" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "property-collect-list" : [ "vserver-id", "vserver-name" ],
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "af91c2f7-35fc-43cf-a13d-443f385b2353"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "425b2158-e51d-4509-9945-dad4556474a3"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "97c26c99-6870-44c1-8a07-1d900d3f4ce6"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4"
+ } ]
+ } ]
+ }
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getTenantInfoAtSvcSubscription-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getTenantInfoAtSvcSubscription-1.0.json
new file mode 100644
index 0000000..e520585
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getTenantInfoAtSvcSubscription-1.0.json
@@ -0,0 +1,58 @@
+{
+ "named-query-uuid" : "35b13965-ef9d-4597-9859-bde64c521c91",
+ "named-query-name" : "getTenantInfoAtSvcSubscription",
+ "named-query-version" : "1.0",
+ "description" : "Named Query - Tenant Info At ServiceSubscription",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "af91c2f7-35fc-43cf-a13d-443f385b2353"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "425b2158-e51d-4509-9945-dad4556474a3"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "97c26c99-6870-44c1-8a07-1d900d3f4ce6"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "2e1a602a-acd8-4f78-94ff-618b802a303b"
+ } ]
+ } ]
+ }
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getVnfVlanByCircuitId-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getVnfVlanByCircuitId-1.0.json
new file mode 100644
index 0000000..2260ab3
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getVnfVlanByCircuitId-1.0.json
@@ -0,0 +1,58 @@
+{
+ "named-query-uuid" : "9abb2661-d92c-4f84-aea6-b16acfa00e22",
+ "named-query-name" : "generic-vnf-vlan-by-circuit-id",
+ "named-query-version" : "1.0",
+ "description" : "Named Query - get genericVnf and vlan by circuitId",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "cea0a982-8d55-4093-921e-418fbccf7060"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "d2b1eaf1-ae59-4116-9ee4-aa0179faa4f8"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "fe012535-2c31-4a39-a739-612374c638a0"
+ } ]
+ } ]
+ }
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getVserver-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getVserver-1.0.json
new file mode 100644
index 0000000..2107523
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getVserver-1.0.json
@@ -0,0 +1,126 @@
+{
+ "named-query-uuid" : "f199cb88-5e69-4b1f-93e0-6f257877d066",
+ "named-query-name" : "getVserver-1.0",
+ "named-query-version" : "1.0",
+ "description" : "Named query - Get vserver",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "425b2158-e51d-4509-9945-dad4556474a3"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "97c26c99-6870-44c1-8a07-1d900d3f4ce6"
+ } ]
+ } ]
+ }
+ }, {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "related-lookups" : {
+ "related-lookup" : [ {
+ "source-node-type" : "vf-module",
+ "source-node-property" : "model-invariant-id-local",
+ "target-node-type" : "model",
+ "target-node-property" : "model-invariant-id",
+ "property-collect-list" : [ "model-invariant-id", "model-type" ]
+ },
+ {
+ "source-node-type" : "vf-module",
+ "source-node-property" : "model-version-id-local",
+ "target-node-type" : "model-ver",
+ "target-node-property" : "model-version-id",
+ "property-collect-list" : ["model-name", "model-version-id", "model-version" ]
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "ef86f9c5-2165-44f3-8fc3-96018b609ea5"
+ } ]
+ } ]
+ }
+ }, {
+ "related-lookups" : {
+ "related-lookup" : [ {
+ "source-node-type" : "service-instance",
+ "source-node-property" : "model-invariant-id-local",
+ "target-node-type" : "model",
+ "target-node-property" : "model-invariant-id",
+ "property-collect-list" : [ "model-invariant-id", "model-type" ]
+ },
+ {
+ "source-node-type" : "service-instance",
+ "source-node-property" : "model-version-id-local",
+ "target-node-type" : "model-ver",
+ "target-node-property" : "model-version-id",
+ "property-collect-list" : [ "model-name", "model-version-id", "model-version" ]
+ }]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "related-lookups" : {
+ "related-lookup" : [ {
+ "source-node-type" : "generic-vnf",
+ "source-node-property" : "model-invariant-id-local",
+ "target-node-type" : "model",
+ "target-node-property" : "model-invariant-id",
+ "property-collect-list" : [ "model-invariant-id", "model-type" ]
+ },
+ {
+ "source-node-type" : "generic-vnf",
+ "source-node-property" : "model-version-id-local",
+ "target-node-type" : "model-ver",
+ "target-node-property" : "model-version-id",
+ "property-collect-list" : [ "model-name", "model-version-id", "model-version" ]
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7"
+ } ]
+ } ]
+ }
+ } ]
+ }
+} \ No newline at end of file
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getWlBundleId-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getWlBundleId-1.0.json
new file mode 100644
index 0000000..203aa38
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getWlBundleId-1.0.json
@@ -0,0 +1,81 @@
+{
+ "named-query-uuid" : "88aae9bc-9b3d-44c8-a0ba-3c4911da755c",
+ "named-query-name" : "GetWlBundleId",
+ "named-query-version" : "1.0",
+ "description" : "Named query for wavelength services with same Bundle Id",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "c1d4305f-cdbd-4bbe-9069-a2f4978fd89e"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "2e1a602a-acd8-4f78-94ff-618b802a303b"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4"
+ } ]
+ } ]
+ }
+ }, {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "fe012535-2c31-4a39-a739-612374c638a0"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "fe012535-2c31-4a39-a739-612374c638a0"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "86ffe6e5-4d0e-4cec-80b5-5c38aa3eff98"
+ } ]
+ } ]
+ }
+ } ]
+ }
+} \ No newline at end of file
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/vnf-to-esr-system-info-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/vnf-to-esr-system-info-1.0.json
new file mode 100644
index 0000000..c371796
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/vnf-to-esr-system-info-1.0.json
@@ -0,0 +1,71 @@
+{
+ "named-query-uuid" : "037eb932-edac-48f5-9782-c19c0aa5a031",
+ "named-query-name" : "vnf-to-esr-system-info",
+ "named-query-version" : "1.0",
+ "description" : "Named Query - VNF to ESR System Info",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "0562518b-e5b3-49f4-8ad8-19b43766c79d"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "425b2158-e51d-4509-9945-dad4556474a3"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "97c26c99-6870-44c1-8a07-1d900d3f4ce6"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c"
+ } ]
+ } ]
+ }
+ } ]
+ }
+} \ No newline at end of file
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/vnf-to-service-instance-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/vnf-to-service-instance-1.0.json
new file mode 100644
index 0000000..53e6f26
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/vnf-to-service-instance-1.0.json
@@ -0,0 +1,45 @@
+{
+ "named-query-uuid" : "a93ac487-409c-4e8c-9e5f-334ae8f99087",
+ "named-query-name" : "vnf-to-service-instance",
+ "named-query-version" : "1.0",
+ "description" : "Named Query - VNF to Service Instance",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c"
+ } ]
+ } ]
+ }
+ } ]
+ }
+} \ No newline at end of file
diff --git a/aai-traversal/src/test/resources/bundleconfig-local/etc/scriptdata/resource-model-json/000-README b/aai-traversal/src/main/resources/etc/scriptdata/resource-model-json/000-README
index 9647972..9647972 100644
--- a/aai-traversal/src/test/resources/bundleconfig-local/etc/scriptdata/resource-model-json/000-README
+++ b/aai-traversal/src/main/resources/etc/scriptdata/resource-model-json/000-README
diff --git a/aai-traversal/src/test/resources/bundleconfig-local/etc/scriptdata/service-model-json/000-README b/aai-traversal/src/main/resources/etc/scriptdata/service-model-json/000-README
index bb30e02..bb30e02 100644
--- a/aai-traversal/src/test/resources/bundleconfig-local/etc/scriptdata/service-model-json/000-README
+++ b/aai-traversal/src/main/resources/etc/scriptdata/service-model-json/000-README
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/action-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/action-1.0.json
new file mode 100644
index 0000000..9d3e00c
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/action-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "af593b4b-490e-4665-ad74-2f6351c0a7ce",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "fd7fb09e-d930-41b9-b83f-cfde9df48640",
+ "model-version" : "1.0",
+ "model-name" : "action"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/action-data-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/action-data-1.0.json
new file mode 100644
index 0000000..7229f5a
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/action-data-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "9551346c-7d8b-4daf-9926-b93e96e2344a",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd",
+ "model-version" : "1.0",
+ "model-name" : "action-data"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/allotted-resource-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/allotted-resource-1.0.json
new file mode 100644
index 0000000..9329af8
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/allotted-resource-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "f6d6a23d-a1a9-48ff-8419-b6530da2d381",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "7ad0915f-25c0-4a70-b9bc-185a75f87564",
+ "model-version" : "1.0",
+ "model-name" : "allotted-resource"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/availability-zone-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/availability-zone-1.0.json
new file mode 100644
index 0000000..0c423fe
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/availability-zone-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "61b88c01-d819-41c0-8e21-7fd7ba47148e",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "6c092fb1-21b2-456b-9e01-67fb4de1896e",
+ "model-version" : "1.0",
+ "model-name" : "availability-zone"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/az-and-dvs-switches-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/az-and-dvs-switches-1.0.json
new file mode 100644
index 0000000..620a33d
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/az-and-dvs-switches-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "53dc00d4-e6d9-48ec-b6cc-3d3797e9b896",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "b2dea88d-78a0-49bf-95c9-5819df08e966",
+ "model-version" : "1.0",
+ "model-name" : "az-and-dvs-switches"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/class-of-service-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/class-of-service-1.0.json
new file mode 100644
index 0000000..2b28152
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/class-of-service-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "18094b19-d16d-4822-8acf-e92c6aefa178",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "d2fb27cc-15eb-4c4e-828e-71d41aaecc5b",
+ "model-version" : "1.0",
+ "model-name" : "class-of-service"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/cloud-region-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/cloud-region-1.0.json
new file mode 100644
index 0000000..a2957c4
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/cloud-region-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "425b2158-e51d-4509-9945-dad4556474a3",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "2a160989-b202-47dd-874b-4a0f275998f7",
+ "model-version" : "1.0",
+ "model-name" : "cloud-region"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/complex-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/complex-1.0.json
new file mode 100644
index 0000000..c8ca766
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/complex-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "af91c2f7-35fc-43cf-a13d-443f385b2353",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "3a8ab1ee-9220-4fe8-b89c-9251d160ddc2",
+ "model-version" : "1.0",
+ "model-name" : "complex"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/configuration-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/configuration-1.0.json
new file mode 100644
index 0000000..939f175
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/configuration-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "166c050d-f69d-4305-943e-0bc58c3a26cf",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "5a175add-57e4-4a5d-8b02-c36f1d69c52b",
+ "model-version" : "1.0",
+ "model-name" : "configuration"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/connector-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/connector-1.0.json
new file mode 100644
index 0000000..f9bfed0
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/connector-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "4c01c948-7607-4d66-8a6c-99c2c2717936",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "22104c9f-29fd-462f-be07-96cd6b46dd33",
+ "model-version" : "1.0",
+ "model-name" : "connector"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/constrained-element-set-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/constrained-element-set-1.0.json
new file mode 100644
index 0000000..44f5de2
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/constrained-element-set-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "c0292b4f-ee97-40cc-8c2e-f967c48f5701",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "01102126-9c04-4a89-945b-b131e61e95d7",
+ "model-version" : "1.0",
+ "model-name" : "constrained-element-set"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/ctag-assignment-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/ctag-assignment-1.0.json
new file mode 100644
index 0000000..87eee5c
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/ctag-assignment-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "fcb8d46b-b656-4ad6-8fa4-22cef74b443f",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "44e5cb1f-0938-41aa-b766-d4595109fe89",
+ "model-version" : "1.0",
+ "model-name" : "ctag-assignment"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/ctag-pool-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/ctag-pool-1.0.json
new file mode 100644
index 0000000..c85e267
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/ctag-pool-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "46c51d4e-d67e-4a9c-b1f5-49b1e9c6fcaa",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "2056c41f-23b9-4de7-9f50-819adad37d76",
+ "model-version" : "1.0",
+ "model-name" : "ctag-pool"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/customer-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/customer-1.0.json
new file mode 100644
index 0000000..35cf683
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/customer-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "c1d4305f-cdbd-4bbe-9069-a2f4978fd89e",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "d4df5c27-98a1-4812-a8aa-c17f055b7a3f",
+ "model-version" : "1.0",
+ "model-name" : "customer"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/cvlan-tag-entry-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/cvlan-tag-entry-1.0.json
new file mode 100644
index 0000000..95211f2
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/cvlan-tag-entry-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "245cf4b0-7cc5-4eea-bbd9-753e939adcab",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "c3878ffb-8d85-4114-bee6-e4074a9db10b",
+ "model-version" : "1.0",
+ "model-name" : "cvlan-tag-entry"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/dvs-switch-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/dvs-switch-1.0.json
new file mode 100644
index 0000000..22dc769
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/dvs-switch-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "98fbb471-1f86-428e-bd8a-c8a25de6fa23",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "4cb44ae8-e3ab-452a-9f95-bcc8a44c55ea",
+ "model-version" : "1.0",
+ "model-name" : "dvs-switch"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/edge-prop-names-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/edge-prop-names-1.0.json
new file mode 100644
index 0000000..4ed663f
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/edge-prop-names-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "7a08cad4-8759-46a5-8245-095d1ba57ac6",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "f0442326-8201-4d0e-857c-74b4ddcbfc9f",
+ "model-version" : "1.0",
+ "model-name" : "edge-prop-names"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/element-choice-set-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/element-choice-set-1.0.json
new file mode 100644
index 0000000..46c7348
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/element-choice-set-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "9a011958-7165-47a3-b872-00951d1f09ae",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "af27fbfd-598d-44da-aeae-0f9d3a5fcd6a",
+ "model-version" : "1.0",
+ "model-name" : "element-choice-set"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/entitlement-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/entitlement-1.0.json
new file mode 100644
index 0000000..b6bf0e8
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/entitlement-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "ae75b5a0-d5e1-4f3a-b8fb-37626a753da3",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "7e27ba2e-b7db-4e13-9fae-d142152ef98a",
+ "model-version" : "1.0",
+ "model-name" : "entitlement"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/esr-system-info-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/esr-system-info-1.0.json
new file mode 100644
index 0000000..54a3bc8
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/esr-system-info-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "0562518b-e5b3-49f4-8ad8-19b43766c79d",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "5ded840b-42aa-4692-a7ac-9a6ed5f3146b",
+ "model-version" : "1.0",
+ "model-name" : "esr-system-info"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/flavor-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/flavor-1.0.json
new file mode 100644
index 0000000..c44e554
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/flavor-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "bace8d1c-a261-4041-9e37-823117415d0f",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "36200fb5-f251-4f5d-a520-7c5ad5c2cd4b",
+ "model-version" : "1.0",
+ "model-name" : "flavor"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/generic-vnf-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/generic-vnf-1.0.json
new file mode 100644
index 0000000..afab83a
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/generic-vnf-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "acc6edd8-a8d4-4b93-afaa-0994068be14c",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "93a6166f-b3d5-4f06-b4ba-aed48d009ad9",
+ "model-version" : "1.0",
+ "model-name" : "generic-vnf"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/group-assignment-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/group-assignment-1.0.json
new file mode 100644
index 0000000..33e1495
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/group-assignment-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "7cc05f25-7ba2-42b7-a237-c5662a1689e1",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "fe578080-ce19-4604-8760-fc264fbb2565",
+ "model-version" : "1.0",
+ "model-name" : "group-assignment"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/image-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/image-1.0.json
new file mode 100644
index 0000000..59f095b
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/image-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "3f4c7204-739b-4bbb-87a7-8a6856439c90",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "f6a038c2-820c-42ba-8c2b-375e24e8f932",
+ "model-version" : "1.0",
+ "model-name" : "image"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/include-node-filter-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/include-node-filter-1.0.json
new file mode 100644
index 0000000..83d9255
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/include-node-filter-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "2a2d8ad2-af0a-4e1f-9982-0c899e7dc827",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "f05f804d-7057-4ffe-bdc5-39f2f0c9c9fd",
+ "model-version" : "1.0",
+ "model-name" : "include-node-filter"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/instance-group-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/instance-group-1.0.json
new file mode 100644
index 0000000..81eeff0
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/instance-group-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "3bf1e610-45f7-4ad6-b833-ca4c5ee6a3fd",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "8e6ee9dc-9017-444a-83b3-219edb018128",
+ "model-version" : "1.0",
+ "model-name" : "instance-group"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/inventory-item-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/inventory-item-1.0.json
new file mode 100644
index 0000000..307d29d
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/inventory-item-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "cd57d844-9017-4078-aa19-926935a3d77c",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "69957f4a-2155-4b95-8d72-d6dd9b88b27b",
+ "model-version" : "1.0",
+ "model-name" : "inventory-item"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/inventory-item-data-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/inventory-item-data-1.0.json
new file mode 100644
index 0000000..46cb9f0
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/inventory-item-data-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "87a383ae-cf03-432e-a9de-04e6a622d0fd",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "0e54bb87-bd6e-4a2b-ad1c-6d935b87ae51",
+ "model-version" : "1.0",
+ "model-name" : "inventory-item-data"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/ipsec-configuration-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/ipsec-configuration-1.0.json
new file mode 100644
index 0000000..165ebbe
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/ipsec-configuration-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "aca4c310-cb45-42bd-9f88-73e40ba7b962",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "d949fd10-36bf-408a-ac7a-cad5004d2e0d",
+ "model-version" : "1.0",
+ "model-name" : "ipsec-configuration"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/key-data-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/key-data-1.0.json
new file mode 100644
index 0000000..f0f7cb4
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/key-data-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "f5faa464-c2f2-4cc3-89d2-a90452dc3a07",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "c23ea04d-1a3b-453d-bc49-a6c783a5e92b",
+ "model-version" : "1.0",
+ "model-name" : "key-data"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l-interface-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l-interface-1.0.json
new file mode 100644
index 0000000..0f63ba5
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l-interface-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "cea0a982-8d55-4093-921e-418fbccf7060",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "a32613fd-18b9-459e-aab8-fffb3912966a",
+ "model-version" : "1.0",
+ "model-name" : "l-interface"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l3-interface-ipv4-address-list-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l3-interface-ipv4-address-list-1.0.json
new file mode 100644
index 0000000..0bb4d41
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l3-interface-ipv4-address-list-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "aad85df2-09be-40fa-b867-16415e4e10e2",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "41e76b6f-1e06-4fd4-82cd-81c50fc4574b",
+ "model-version" : "1.0",
+ "model-name" : "l3-interface-ipv4-address-list"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l3-interface-ipv6-address-list-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l3-interface-ipv6-address-list-1.0.json
new file mode 100644
index 0000000..9a830f4
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l3-interface-ipv6-address-list-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "82966045-43ee-4982-8307-7e9610866140",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "d040621d-541a-477b-bb1b-a2b61b14e295",
+ "model-version" : "1.0",
+ "model-name" : "l3-interface-ipv6-address-list"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l3-network-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l3-network-1.0.json
new file mode 100644
index 0000000..0d92d38
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l3-network-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "3d560d81-57d0-438b-a2a1-5334dba0651a",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "9111f20f-e680-4001-b83f-19a2fc23bfc1",
+ "model-version" : "1.0",
+ "model-name" : "l3-network"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/lag-interface-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/lag-interface-1.0.json
new file mode 100644
index 0000000..9bf0715
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/lag-interface-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "e0ee9bde-c1fc-4651-a95d-8e0597bf7d70",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "ce95f7c3-b61b-4758-ae9e-7e943b1c103d",
+ "model-version" : "1.0",
+ "model-name" : "lag-interface"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/lag-link-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/lag-link-1.0.json
new file mode 100644
index 0000000..44046a9
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/lag-link-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "86ffe6e5-4d0e-4cec-80b5-5c38aa3eff98",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "d29a087a-af59-4053-a3f8-0f95a92faa75",
+ "model-version" : "1.0",
+ "model-name" : "lag-link"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/license-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/license-1.0.json
new file mode 100644
index 0000000..fc79b60
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/license-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "b9a9b337-1f86-42d3-b9f9-f987a089507c",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "6889274b-a1dc-40ab-9090-93677e13e2e6",
+ "model-version" : "1.0",
+ "model-name" : "license"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/license-key-resource-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/license-key-resource-1.0.json
new file mode 100644
index 0000000..b56df16
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/license-key-resource-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "9022ebfe-b54f-4911-a6b2-8c3f5ec189b7",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "24b25f8c-b8bd-4c62-9421-87c12667aac9",
+ "model-version" : "1.0",
+ "model-name" : "license-key-resource"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/logical-link-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/logical-link-1.0.json
new file mode 100644
index 0000000..66300e7
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/logical-link-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "fe012535-2c31-4a39-a739-612374c638a0",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "a1481a38-f8ba-4ae4-bdf1-06c2c6af4c54",
+ "model-version" : "1.0",
+ "model-name" : "logical-link"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/metadatum-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/metadatum-1.0.json
new file mode 100644
index 0000000..1110746
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/metadatum-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "86dbb63a-265e-4614-993f-6771c30b56a5",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "6bae950e-8939-41d3-a6a7-251b03e4c1fc",
+ "model-version" : "1.0",
+ "model-name" : "metadatum"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-1.0.json
new file mode 100644
index 0000000..4c5da8c
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "06d1418a-5faa-452d-a94b-a2829df5f67b",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "1f51c05c-b164-4c27-9c03-5cbb239fd6be",
+ "model-version" : "1.0",
+ "model-name" : "model"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-constraint-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-constraint-1.0.json
new file mode 100644
index 0000000..37b7272
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-constraint-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "c28966f3-e758-4483-b37b-a90b05d3dd33",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "ad70dd19-f156-4fb5-a865-97b5563b0d37",
+ "model-version" : "1.0",
+ "model-name" : "model-constraint"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-element-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-element-1.0.json
new file mode 100644
index 0000000..6e4df08
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-element-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "2076e726-3577-477a-a300-7fa65cd4df11",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "753e813a-ba9e-4a1d-ab34-b2f6dc6eec0c",
+ "model-version" : "1.0",
+ "model-name" : "model-element"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-ver-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-ver-1.0.json
new file mode 100644
index 0000000..98511b0
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-ver-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "b5cd462f-e426-4146-b1fe-5475ae272c3d",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "93f2f8bc-cb12-4a01-96c8-3d2649e4ab8f",
+ "model-name" : "model-ver",
+ "model-version" : "1.0"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/multicast-configuration-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/multicast-configuration-1.0.json
new file mode 100644
index 0000000..c76e423
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/multicast-configuration-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "ea78c9e3-514d-4a0a-9162-13837fa54c35",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "666a06ee-4b57-46df-bacf-908da8f10c3f",
+ "model-version" : "1.0",
+ "model-name" : "multicast-configuration"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/named-query-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/named-query-1.0.json
new file mode 100644
index 0000000..7aef873
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/named-query-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "80b712fd-0ad3-4180-a99c-8c995cf1cc32",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "5c3b7c33-afa3-4be5-8da7-1a5ac6f99896",
+ "model-version" : "1.0",
+ "model-name" : "named-query"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/named-query-element-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/named-query-element-1.0.json
new file mode 100644
index 0000000..6f6d11a
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/named-query-element-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "3c504d40-b847-424c-9d25-4fb7e0a3e994",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "204c641a-3494-48c8-979a-86856f5fd32a",
+ "model-version" : "1.0",
+ "model-name" : "named-query-element"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/network-policy-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/network-policy-1.0.json
new file mode 100644
index 0000000..a28b19e
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/network-policy-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "6aa05779-94d7-4d8b-9bee-59ef2ab0c246",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "a0ccd9dc-7062-4940-9bcc-e91dd28af510",
+ "model-version" : "1.0",
+ "model-name" : "network-policy"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/network-profile-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/network-profile-1.0.json
new file mode 100644
index 0000000..30d6d9d
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/network-profile-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "2734b44a-b8a2-40f6-957d-6256589e5d00",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "01f45471-4240-498c-a9e1-235dc0b8b4a6",
+ "model-version" : "1.0",
+ "model-name" : "network-profile"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/newvce-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/newvce-1.0.json
new file mode 100644
index 0000000..b2285d4
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/newvce-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "4b05ec9c-c55d-4987-83ff-e08d6ddb694f",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "7c79e11f-a408-4593-aa86-ba948a1236af",
+ "model-version" : "1.0",
+ "model-name" : "newvce"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/oam-network-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/oam-network-1.0.json
new file mode 100644
index 0000000..7a3cd18
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/oam-network-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "2851cf01-9c40-4064-87d4-6184a6fcff35",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "f4fb34f3-fd6e-4a8f-a3fb-4ab61a343b79",
+ "model-version" : "1.0",
+ "model-name" : "oam-network"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/p-interface-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/p-interface-1.0.json
new file mode 100644
index 0000000..3d02918
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/p-interface-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "94043c37-4e73-439c-a790-0fdd697924cd",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "d2cdb2d0-fc1f-4a57-a89e-591b1c4e3754",
+ "model-version" : "1.0",
+ "model-name" : "p-interface"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/physical-link-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/physical-link-1.0.json
new file mode 100644
index 0000000..904a4cc
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/physical-link-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "c822d81f-822f-4304-9623-1025b53da568",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "9c523936-95b4-4d7f-9f53-6bdfe0cf2c05",
+ "model-version" : "1.0",
+ "model-name" : "physical-link"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/pnf-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/pnf-1.0.json
new file mode 100644
index 0000000..9260b17
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/pnf-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "862b25a1-262a-4961-bdaa-cdc55d69785a",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "e9f1fa7d-c839-418a-9601-03dc0d2ad687",
+ "model-version" : "1.0",
+ "model-name" : "pnf"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/port-group-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/port-group-1.0.json
new file mode 100644
index 0000000..8aac84d
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/port-group-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "8ce940fb-55d7-4230-9e7f-a56cc2741f77",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "03e8bb6b-b48a-46ae-b5d4-e5af577e6844",
+ "model-version" : "1.0",
+ "model-name" : "port-group"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/property-constraint-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/property-constraint-1.0.json
new file mode 100644
index 0000000..4db5389
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/property-constraint-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "f4a863c3-6886-470a-a6ae-05723837ea45",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "81706bbd-981e-4362-ae20-995cbcb2d995",
+ "model-version" : "1.0",
+ "model-name" : "property-constraint"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/pserver-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/pserver-1.0.json
new file mode 100644
index 0000000..a22b859
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/pserver-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "6d932c8f-463b-4e76-83fb-87acfbaa2e2d",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "72f0d495-bc27-4653-9e1a-eef76bd34bc9",
+ "model-version" : "1.0",
+ "model-name" : "pserver"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/related-lookup-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/related-lookup-1.0.json
new file mode 100644
index 0000000..e67fa07
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/related-lookup-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "468f6f5b-2996-41bb-b2a3-7cf9613ebb9b",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "0988bab5-bf4f-4938-a419-ab249867d12a",
+ "model-version" : "1.0",
+ "model-name" : "related-lookup"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/reserved-prop-names-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/reserved-prop-names-1.0.json
new file mode 100644
index 0000000..1bfc7d3
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/reserved-prop-names-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "0c3e0ba3-618c-498d-9127-c8d42b00170f",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "ac49d26d-9163-430e-934a-13b738a04f5c",
+ "model-version" : "1.0",
+ "model-name" : "reserved-prop-names"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/result-data-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/result-data-1.0.json
new file mode 100644
index 0000000..059dfb0
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/result-data-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "ff656f23-6185-406f-9006-4b26834f3e1c",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "4e9b50aa-5227-4f6f-b489-62e6bbc03c79",
+ "model-version" : "1.0",
+ "model-name" : "result-data"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/route-table-reference-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/route-table-reference-1.0.json
new file mode 100644
index 0000000..f7910a9
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/route-table-reference-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "a8614b63-2636-4c4f-98df-fd448c4241db",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "fed7e326-03a7-45ff-a3f2-471470d268c4",
+ "model-version" : "1.0",
+ "model-name" : "route-table-reference"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/routing-instance-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/routing-instance-1.0.json
new file mode 100644
index 0000000..caec0d6
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/routing-instance-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "1c2ded4f-8b01-4193-829c-966847dfec3e",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "3ccbcbc7-d19e-44d5-a52f-7e18aa8d69fa",
+ "model-version" : "1.0",
+ "model-name" : "routing-instance"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/secondary-filter-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/secondary-filter-1.0.json
new file mode 100644
index 0000000..cef0a94
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/secondary-filter-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "738ff299-6290-4c00-8998-bd0e96a07b93",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "1380619d-dd1a-4cec-b755-c6407833e065",
+ "model-version" : "1.0",
+ "model-name" : "secondary-filter"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/segmentation-assignment-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/segmentation-assignment-1.0.json
new file mode 100644
index 0000000..4335e10
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/segmentation-assignment-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "6e814aee-46e1-4583-a9d4-0049bfd2b59b",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "c5171ae0-44fb-4c04-b482-d56702241a44",
+ "model-version" : "1.0",
+ "model-name" : "segmentation-assignment"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-1.0.json
new file mode 100644
index 0000000..ab3295a
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "07a3a60b-1b6c-4367-8173-8014386f89e3",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "ecce2c42-3957-4ae0-9442-54bc6afe27b6",
+ "model-version" : "1.0",
+ "model-name" : "service"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-capability-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-capability-1.0.json
new file mode 100644
index 0000000..038a993
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-capability-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "b1a7cc05-d19d-443b-a5d1-733e325c4232",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "f9cfec1b-18da-4bba-bd83-4b26cca115cd",
+ "model-version" : "1.0",
+ "model-name" : "service-capability"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-instance-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-instance-1.0.json
new file mode 100644
index 0000000..b5ef861
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-instance-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "82194af1-3c2c-485a-8f44-420e22a9eaa4",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "46b92144-923a-4d20-b85a-3cbd847668a9",
+ "model-version" : "1.0",
+ "model-name" : "service-instance"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-subscription-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-subscription-1.0.json
new file mode 100644
index 0000000..2af765f
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-subscription-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "2e1a602a-acd8-4f78-94ff-618b802a303b",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "5e68299a-79f2-4bfb-8fbc-2bae877a2459",
+ "model-version" : "1.0",
+ "model-name" : "service-subscription"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/site-pair-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/site-pair-1.0.json
new file mode 100644
index 0000000..eef13ea
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/site-pair-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "db63f3e6-f8d1-484e-8d5e-191600b7914b",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "7106bc02-6552-4fc3-8a56-4f3df9034531",
+ "model-version" : "1.0",
+ "model-name" : "site-pair"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/site-pair-set-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/site-pair-set-1.0.json
new file mode 100644
index 0000000..3c77903
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/site-pair-set-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "5d4dae3e-b402-4bfd-909e-ece12ff75d26",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "a5c6c1bc-dc38-468e-9459-bb08f87247df",
+ "model-version" : "1.0",
+ "model-name" : "site-pair-set"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/snapshot-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/snapshot-1.0.json
new file mode 100644
index 0000000..24ea90b
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/snapshot-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "24de00ef-aead-4b52-995b-0adf8d4bd90d",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "962a7c8b-687f-4d32-a775-fe098e214bcd",
+ "model-version" : "1.0",
+ "model-name" : "snapshot"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/sriov-vf-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/sriov-vf-1.0.json
new file mode 100644
index 0000000..a5c077a
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/sriov-vf-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "04b2935f-33c4-40a9-8af0-8b52690042dc",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "1e8b331f-3d4a-4160-b7aa-f4d5a8916625",
+ "model-version" : "1.0",
+ "model-name" : "sriov-vf"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/start-node-filter-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/start-node-filter-1.0.json
new file mode 100644
index 0000000..743d89e
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/start-node-filter-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "083093a3-e407-447a-ba5d-7583e4d23e1d",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "aad96fd3-e75f-42fc-9777-3450c36f1168",
+ "model-version" : "1.0",
+ "model-name" : "start-node-filter"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/subnet-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/subnet-1.0.json
new file mode 100644
index 0000000..f6b2e55
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/subnet-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "1b2c9ba7-e449-4831-ba15-3073672f5ef2",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "f902a6bc-6be4-4fe5-8458-a6ec0056b374",
+ "model-version" : "1.0",
+ "model-name" : "subnet"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/tagged-inventory-item-list-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/tagged-inventory-item-list-1.0.json
new file mode 100644
index 0000000..5146b99
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/tagged-inventory-item-list-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "e78a7eaa-f65d-4919-9c2b-5b258c8c4d7e",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "c246f6e2-e3a1-4697-94c0-5672a7fbbf04",
+ "model-version" : "1.0",
+ "model-name" : "tagged-inventory-item-list"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/tenant-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/tenant-1.0.json
new file mode 100644
index 0000000..e105783
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/tenant-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "97c26c99-6870-44c1-8a07-1d900d3f4ce6",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "abcc54bc-bb74-49dc-9043-7f7171707545",
+ "model-version" : "1.0",
+ "model-name" : "tenant"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/tunnel-xconnect-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/tunnel-xconnect-1.0.json
new file mode 100644
index 0000000..5c6d5c6
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/tunnel-xconnect-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "50b9e2fa-005c-4bbe-b651-3251dece4cd8",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "e7cb4ca8-e1a5-4487-a716-4ae0bcd8aef5",
+ "model-version" : "1.0",
+ "model-name" : "tunnel-xconnect"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/update-node-key-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/update-node-key-1.0.json
new file mode 100644
index 0000000..25c5efd
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/update-node-key-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "fe81c801-f65d-408a-b2b7-a729a18f8154",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "6004cfa6-eb6d-4062-971f-b1fde6b74aa0",
+ "model-version" : "1.0",
+ "model-name" : "update-node-key"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vce-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vce-1.0.json
new file mode 100644
index 0000000..45f01d4
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vce-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "bab6dceb-e7e6-4301-a5e0-a7399b48d792",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "b6cf54b5-ec45-43e1-be64-97b4e1513333",
+ "model-version" : "1.0",
+ "model-name" : "vce"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vf-module-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vf-module-1.0.json
new file mode 100644
index 0000000..383d187
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vf-module-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "ef86f9c5-2165-44f3-8fc3-96018b609ea5",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "c00563ae-812b-4e62-8330-7c4d0f47088a",
+ "model-version" : "1.0",
+ "model-name" : "vf-module"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vig-server-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vig-server-1.0.json
new file mode 100644
index 0000000..6fd8d24
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vig-server-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "bed7c3b7-35d0-4cd9-abde-41b20e68b28e",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "8e8c22f1-fbdf-48ea-844c-8bdeb44e7b16",
+ "model-version" : "1.0",
+ "model-name" : "vig-server"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/virtual-data-center-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/virtual-data-center-1.0.json
new file mode 100644
index 0000000..a36361e
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/virtual-data-center-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "5150abcf-0c5f-4593-9afe-a19c48fc4824",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "6dd43ced-d789-47af-a759-d3abc14e3ac1",
+ "model-version" : "1.0",
+ "model-name" : "virtual-data-center"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vlan-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vlan-1.0.json
new file mode 100644
index 0000000..64608f8
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vlan-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "d2b1eaf1-ae59-4116-9ee4-aa0179faa4f8",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "257d88a5-a269-4c35-944f-aca04fbdb791",
+ "model-version" : "1.0",
+ "model-name" : "vlan"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vnf-image-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vnf-image-1.0.json
new file mode 100644
index 0000000..1756e38
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vnf-image-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "f9a628ff-7aa0-40e2-a93d-02d91c950982",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "c4d3e747-ba4a-4b17-9896-94c6f18c19d3",
+ "model-version" : "1.0",
+ "model-name" : "vnf-image"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vnfc-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vnfc-1.0.json
new file mode 100644
index 0000000..8c663a7
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vnfc-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "96129eb9-f0de-4e05-8af2-73146473f766",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "5761e0a7-c6df-4d8a-9ebd-b8f445054dec",
+ "model-version" : "1.0",
+ "model-name" : "vnfc"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/volume-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/volume-1.0.json
new file mode 100644
index 0000000..dd5d239
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/volume-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "ddd739b4-2b25-46c4-affc-41a32af5cc42",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "0fbe2e8f-4d91-4415-a772-88387049b38d",
+ "model-version" : "1.0",
+ "model-name" : "volume"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/volume-group-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/volume-group-1.0.json
new file mode 100644
index 0000000..4ccde3a
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/volume-group-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "fcec1b02-b2d0-4834-aef8-d71be04717dd",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "99d44c90-1f61-4418-b9a6-56586bf38c79",
+ "model-version" : "1.0",
+ "model-name" : "volume-group"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vpe-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vpe-1.0.json
new file mode 100644
index 0000000..ed5017e
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vpe-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "053ec3a7-5b72-492d-b54d-123805a9b967",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "203817d3-829c-42d4-942d-2a935478e993",
+ "model-version" : "1.0",
+ "model-name" : "vpe"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vpls-pe-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vpls-pe-1.0.json
new file mode 100644
index 0000000..0d072bc
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vpls-pe-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "457ba89b-334c-4fbd-acc4-160ac0e0cdc0",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "b1566228-6785-4ce1-aea2-053736f80341",
+ "model-version" : "1.0",
+ "model-name" : "vpls-pe"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vpn-binding-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vpn-binding-1.0.json
new file mode 100644
index 0000000..e0439b6
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vpn-binding-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "9e23b675-db2b-488b-b459-57aa9857baa0",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "21a146e5-9901-448c-9197-723076770119",
+ "model-version" : "1.0",
+ "model-name" : "vpn-binding"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vserver-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vserver-1.0.json
new file mode 100644
index 0000000..a069209
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vserver-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "8ecb2c5d-7176-4317-a255-26274edfdd53",
+ "model-version" : "1.0",
+ "model-name" : "vserver"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/zone-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/zone-1.0.json
new file mode 100644
index 0000000..8427ded
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/zone-1.0.json
@@ -0,0 +1,11 @@
+{
+ "model-invariant-id" : "16f7cb93-e807-4065-816b-9cdf391d4992",
+ "model-type" : "widget",
+ "model-vers" : {
+ "model-ver" : [ {
+ "model-version-id" : "f7f21a66-4714-431c-af17-52d64e21de95",
+ "model-name" : "zone",
+ "model-version" : "1.0"
+ } ]
+ }
+}
diff --git a/aai-traversal/src/main/resources/etc/sysprops/sys-props.properties b/aai-traversal/src/main/resources/etc/sysprops/sys-props.properties
new file mode 100644
index 0000000..44d58d5
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/sysprops/sys-props.properties
@@ -0,0 +1,140 @@
+#This file is used for defining AJSC system properties for different configuration schemes and is necessary for the AJSC to run properly.
+#The sys-props.properties file is used for running locally. The template.sys-props.properties file will be used when deployed
+#to a SOA/CSI Cloud node.
+
+#AJSC System Properties. The following properties are required for ALL AJSC services. If you are adding System Properties for your
+#particular service, please add them AFTER all AJSC related System Properties.
+
+#For Cadi Authorization, use value="authentication-scheme-1
+CadiAuthN=authentication-scheme-1
+
+#For Basic Authorization, use value="authentication-scheme-1
+authN=authentication-scheme-2
+
+#Persistence used for AJSC meta-data storage. For most environments, "file" should be used.
+ajscPersistence=file
+
+# If using hawtio for local development, these properties will allow for faster server startup and usage for local development
+hawtio.authenticationEnabled=false
+hawtio.config.pullOnStartup=false
+
+#Removes the extraneous restlet console output
+org.restlet.engine.loggerFacadeClass=org.restlet.ext.slf4j.Slf4jLoggerFacade
+
+#server.host property to be enabled for local DME2 related testing
+#server.host=<Your network IP address>
+
+#Enable/disable SSL (values=true/false). This property also determines which protocol to use (https if true, http otherwise), to register services into GRM through DME2.
+enableSSL=false
+
+#Enable/disable csi logging (values=true/false). This can be disabled during local development
+csiEnable=false
+
+#Enable/disable EJB Container
+ENABLE_EJB=false
+
+#Enable/disable OSGI
+isOSGIEnable=false
+
+#Configure JMS Queue (WMQ/TIBCO)
+JMS_BROKER=WMQ
+
+#JMS properties needed for CSI Logging
+JMS_TIBCO_PROVIDER_URL=ONAPserverTBD
+JMS_LOGGER_USER_NAME=spm2
+JMS_LOGGER_PASSWORD=its4test
+JMS_LOGGER_AUDIT_QUEUE_BINDING=pub.m2e.audit.logger.queue
+JMS_LOGGER_PERF_QUEUE_BINDING=log.csi.performance02
+
+#WMQ connectivity
+JMS_WMQ_PROVIDER_URL=aftdsc://AFTUAT/34.07/-84.28
+JMS_WMQ_CONNECTION_FACTORY_NAME=aftdsc://AFTUAT/?service=CSILOG,version=1.0,bindingType=fusionBus,envContext=Q,Q25A=YES
+JMS_WMQ_INITIAL_CONNECTION_FACTORY_NAME=com.att.aft.jms.FusionCtxFactory
+JMS_WMQ_AUDIT_DESTINATION_NAME=queue:///CSILOGQL.M2E.DASHBOARD01.NOT.Q25A
+JMS_WMQ_PERF_DESTINATION_NAME=queue:///CSILOGQL.M2E.PERFORMANCE01.NOT.Q25A
+
+
+#CSI related variables for CSM framework
+csm.hostname=d1a-m2e-q112m2e1.edc.cingular.net
+
+#Enable/disable endpoint level logging (values=true/false). This can be disabled during local development
+endpointLogging=false
+
+#SOA_CLOUD_ENV is used to register your service with dme2 and can be turned off for local development (values=true/false).
+SOA_CLOUD_ENV=false
+
+#CONTINUE_ON_LISTENER_EXCEPTION will exit the application if there is a DME2 exception at the time of registration.
+CONTINUE_ON_LISTENER_EXCEPTION=false
+
+#Jetty Container ThreadCount Configuration Variables
+AJSC_JETTY_ThreadCount_MIN=10
+AJSC_JETTY_ThreadCount_MAX=500
+AJSC_JETTY_IDLETIME_MAX=60000
+AJSC_JETTY_BLOCKING_QUEUE_SIZE=100
+
+#Camel Context level default threadPool Profile configuration
+CAMEL_POOL_SIZE=10
+CAMEL_MAX_POOL_SIZE=20
+CAMEL_KEEP_ALIVE_TIME=60
+CAMEL_MAX_QUEUE_SIZE=1000
+
+#File Monitor configurations
+ssf_filemonitor_polling_interval=5
+ssf_filemonitor_threadpool_size=10
+
+#GRM/DME2 System Properties
+AFT_DME2_CONN_IDLE_TIMEOUTMS=5000
+AJSC_ENV=SOACLOUD
+
+SOACLOUD_NAMESPACE=com.att.ajsc
+SOACLOUD_ENV_CONTEXT=DEV
+SOACLOUD_PROTOCOL=http
+SOACLOUD_ROUTE_OFFER=DEFAULT
+
+sslport=8446
+server.port=8083
+
+AFT_LATITUDE=23.4
+AFT_LONGITUDE=33.6
+AFT_ENVIRONMENT=AFTUAT
+
+#Restlet Component Default Properties
+RESTLET_COMPONENT_CONTROLLER_DAEMON=true
+RESTLET_COMPONENT_CONTROLLER_SLEEP_TIME_MS=100
+RESTLET_COMPONENT_INBOUND_BUFFER_SIZE=8192
+RESTLET_COMPONENT_MIN_THREADS=1
+RESTLET_COMPONENT_MAX_THREADS=10
+RESTLET_COMPONENT_LOW_THREADS=8
+RESTLET_COMPONENT_MAX_QUEUED=0
+RESTLET_COMPONENT_MAX_CONNECTIONS_PER_HOST=-1
+RESTLET_COMPONENT_MAX_TOTAL_CONNECTIONS=-1
+RESTLET_COMPONENT_OUTBOUND_BUFFER_SIZE=8192
+RESTLET_COMPONENT_PERSISTING_CONNECTIONS=true
+RESTLET_COMPONENT_PIPELINING_CONNECTIONS=false
+RESTLET_COMPONENT_THREAD_MAX_IDLE_TIME_MS=60000
+RESTLET_COMPONENT_USE_FORWARDED_HEADER=false
+RESTLET_COMPONENT_REUSE_ADDRESS=true
+
+#Externalized jar and properties file location. In CSI environments, there are a few libs that have been externalized to aid
+#in CSTEM maintenance of the versions of these libs. The most important to the AJSC is the DME2 lib. Not only is this lib necessary
+#for proper registration of your AJSC service on a node, but it is also necessary for running locally as well. Another framework
+#used in CSI envs is the CSM framework. These 2 framework libs are shown as "provided" dependencies within the pom.xml. These
+#dependencies will be copied into the target/commonLibs folder with the normal "mvn clean package" goal of the AJSC. They will
+#then be added to the classpath via AJSC_EXTERNAL_LIB_FOLDERS system property. Any files (mainly property files) that need
+#to be on the classpath should be added to the AJSC_EXTERNAL_PROPERTIES_FOLDERS system property. The default scenario when
+#testing your AJSC service locally will utilize the target/commonLibs directory for DME2 and CSM related artifacts and 2
+#default csm properties files will be used for local testing with anything CSM knorelated.
+#NOTE: we are using maven-replacer-plugin to replace "(doubleUnderscore)basedir(doubleUnderscore)" with ${basedir} within the
+#target directory for running locally. Multiple folder locations can be separated by the pipe ("|") character.
+#Please, NOTE: for running locally, we are setting this system property in the antBuild/build.xml "runLocal" target and in the
+#"runAjsc" profile within the pom.xml. This is to most effectively use maven variables (${basedir}, most specifically. Therefore,
+#when running locally, the following 2 properties should be set within the profile(s) themselves.
+#Example: target/commonLibs|target/otherLibs
+#AJSC_EXTERNAL_LIB_FOLDERS=__basedir__/target/commonLibs
+#AJSC_EXTERNAL_PROPERTIES_FOLDERS=__basedir__/ajsc-shared-config/etc
+#End of AJSC System Properties
+
+#Service System Properties. Please, place any Service related System Properties below.
+KEY_STORE_PASSWORD=OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0
+KEY_MANAGER_PASSWORD=OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0
+AAI_CORE_VERSION=1.2.0-SNAPSHOT
diff --git a/aai-traversal/src/main/resources/etc/sysprops/template.sys-props.properties b/aai-traversal/src/main/resources/etc/sysprops/template.sys-props.properties
new file mode 100644
index 0000000..c9060f9
--- /dev/null
+++ b/aai-traversal/src/main/resources/etc/sysprops/template.sys-props.properties
@@ -0,0 +1,115 @@
+#This file is used for defining AJSC system properties for different configuration schemes and is necessary for the AJSC to run properly.
+#The sys-props.properties file is used for running locally.
+
+#For Cadi Authorization, use value="authentication-scheme-1"
+CadiAuthN=__AJSC_CADI_AUTHN__
+
+#For Basic Authorization, use value="authentication-scheme-1"
+authN=__AJSC_AUTH_SCHEME__
+
+#Persistence used for AJSC meta-data storage. For most environments, "file" should be used.
+ajscPersistence=__AJSC_PERSISTENCE__
+
+#Configure externalized logback location
+logback.configurationFile=__LOGBACK_CONFIG_FILE__
+
+# If using hawtio for local development, these properties will allow for faster server startup and usage for local development.
+# You may wish to deploy hawtio.war to dev/test environments to help debugging as well, but should not be used in PROD env.
+hawtio.authenticationEnabled=__HAWTIO_AUTHENTICATION_ENABLED__
+hawtio.config.pullOnStartup=__HAWTIO_CONFIG_PULLONSTARTUP__
+
+#Removes the extraneous restlet console output
+org.restlet.engine.loggerFacadeClass=org.restlet.ext.slf4j.Slf4jLoggerFacade
+
+#Enable/disable SSL (values=true/false).
+enableSSL=__AJSC_ENABLE_SSL__
+
+#Enable/disable csi logging (values=true/false).
+csiEnable=__CSI_ENABLE__
+
+#Enable/disable EJB Container
+ENABLE_EJB=__ENABLE_EJB__
+
+#Enable/disable OSGI
+isOSGIEnable=__OSGI_ENABLE__
+
+#Configure JMS Queue (WMQ/TIBCO)
+JMS_BROKER=WMQ
+
+#JMS properties needed for CSI Logging
+JMS_TIBCO_PROVIDER_URL=ONAPserverTBD
+JMS_LOGGER_USER_NAME=spm2
+JMS_LOGGER_PASSWORD=
+JMS_LOGGER_AUDIT_QUEUE_BINDING=pub.m2e.audit.logger.queue
+JMS_LOGGER_PERF_QUEUE_BINDING=log.csi.performance02
+
+#WMQ connectivity
+JMS_WMQ_PROVIDER_URL=__JMS_WMQ_PROVIDER_URL__
+JMS_WMQ_CONNECTION_FACTORY_NAME=__JMS_WMQ_CONNECTION_FACTORY_NAME__
+JMS_WMQ_INITIAL_CONNECTION_FACTORY_NAME=__JMS_WMQ_INITIAL_CONNECTION_FACTORY_NAME__
+JMS_WMQ_AUDIT_DESTINATION_NAME=__JMS_WMQ_AUDIT_DESTINATION_NAME__
+JMS_WMQ_PERF_DESTINATION_NAME=__JMS_WMQ_PERF_DESTINATION_NAME__
+
+#CSI related variables for CSM framework
+csm.hostname=d1a-m2e-q112m2e1.edc.cingular.net
+
+#Enable/disable endpoint level logging (values=true/false).
+endpointLogging=__END_POINT_LEVEL_LOGGING__
+
+#SOA_CLOUD_ENV is used to register your service with dme2 (values=true/false).
+SOA_CLOUD_ENV=__SOA_CLOUD_ENV__
+
+#Jetty Container ThreadCount Configuration Variables
+AJSC_JETTY_ThreadCount_MAX=__AJSC_JETTY_ThreadCount_MAX__
+AJSC_JETTY_ThreadCount_MIN=__AJSC_JETTY_ThreadCount_MIN__
+AJSC_JETTY_IDLETIME_MAX=__AJSC_JETTY_IDLETIME_MAX__
+AJSC_SERVICE_NAMESPACE=ActiveAndAvailableInventory-Traversal
+AJSC_SERVICE_VERSION=__AJSC_SERVICE_VERSION__
+AJSC_JETTY_BLOCKING_QUEUE_SIZE=100
+
+#Camel Context level default threadPool Profile configuration
+CAMEL_POOL_SIZE=__CAMEL_POOL_SIZE__
+CAMEL_MAX_POOL_SIZE=__CAMEL_MAX_POOL_SIZE__
+CAMEL_KEEP_ALIVE_TIME=__CAMEL_KEEP_ALIVE_TIME__
+CAMEL_MAX_QUEUE_SIZE=__CAMEL_MAX_QUEUE_SIZE__
+
+#File Monitor configurations
+ssf_filemonitor_polling_interval=__AJSC_SSF_FILE_MONITOR_POLLING_INTERVAL__
+ssf_filemonitor_threadpool_size=__AJSC_SSF_FILE_MONITOR_THREAD_POOL_SIZE__
+
+#GRM/DME2 System Properties below
+AFT_DME2_CONN_IDLE_TIMEOUTMS=__AFT_DME2_CONN_IDLE_TIMEOUTMS__
+AJSC_ENV=__AJSC_ENV__
+SOACLOUD_NAMESPACE=__SOA_CLOUD_NAMESPACE__
+SOACLOUD_ENV_CONTEXT=__SCLD_ENV__
+SOACLOUD_PROTOCOL=__SOACLOUD_PROTOCOL__
+SOACLOUD_ROUTE_OFFER=__AAIENV__
+sslport=8446
+server.port=8083
+AFT_LATITUDE=__LATITUDE__
+AFT_LONGITUDE=__LONGITUDE__
+AFT_ENVIRONMENT=__AFT_ENVIRONMENT__
+
+#Restlet Component Properties
+RESTLET_COMPONENT_CONTROLLER_DAEMON=__RESTLET_COMPONENT_CONTROLLER_DAEMON__
+RESTLET_COMPONENT_CONTROLLER_SLEEP_TIME_MS=__RESTLET_COMPONENT_CONTROLLER_SLEEP_TIME_MS__
+RESTLET_COMPONENT_INBOUND_BUFFER_SIZE=__RESTLET_COMPONENT_INBOUND_BUFFER_SIZE__
+RESTLET_COMPONENT_MIN_THREADS=__RESTLET_COMPONENT_MIN_THREADS__
+RESTLET_COMPONENT_MAX_THREADS=__RESTLET_COMPONENT_MAX_THREADS__
+RESTLET_COMPONENT_LOW_THREADS=__RESTLET_COMPONENT_LOW_THREADS__
+RESTLET_COMPONENT_MAX_QUEUED=__RESTLET_COMPONENT_MAX_QUEUED__
+RESTLET_COMPONENT_MAX_CONNECTIONS_PER_HOST=__RESTLET_COMPONENT_MAX_CONNECTIONS_PER_HOST__
+RESTLET_COMPONENT_MAX_TOTAL_CONNECTIONS=__RESTLET_COMPONENT_MAX_TOTAL_CONNECTIONS__
+RESTLET_COMPONENT_OUTBOUND_BUFFER_SIZE=__RESTLET_COMPONENT_OUTBOUND_BUFFER_SIZE__
+RESTLET_COMPONENT_PERSISTING_CONNECTIONS=__RESTLET_COMPONENT_PERSISTING_CONNECTIONS__
+RESTLET_COMPONENT_PIPELINING_CONNECTIONS=__RESTLET_COMPONENT_PIPELINING_CONNECTIONS__
+RESTLET_COMPONENT_THREAD_MAX_IDLE_TIME_MS=__RESTLET_COMPONENT_THREAD_MAX_IDLE_TIME_MS__
+RESTLET_COMPONENT_USE_FORWARDED_HEADER=__RESTLET_COMPONENT_USE_FORWARDED_HEADER__
+RESTLET_COMPONENT_REUSE_ADDRESS=__RESTLET_COMPONENT_REUSE_ADDRESS__
+
+AJSC_EXTERNAL_LIB_FOLDERS=__CSM_LIB__|__DME2_LIB__|__AJSC_EXTERNAL_LIB_FOLDERS__
+AJSC_EXTERNAL_PROPERTIES_FOLDERS=__AJSC_SHARED_CONFIG__|__AJSC_EXTERNAL_PROPERTIES_FOLDERS__
+
+KEY_STORE_PASSWORD=__KEY_STORE_PASSWORD__
+KEY_MANAGER_PASSWORD=__KEY_MANAGER_PASSWORD__
+AAI_CORE_VERSION=1.2.0-SNAPSHOT
diff --git a/aai-traversal/src/main/resources/localhost-access-logback.xml b/aai-traversal/src/main/resources/localhost-access-logback.xml
new file mode 100644
index 0000000..a318796
--- /dev/null
+++ b/aai-traversal/src/main/resources/localhost-access-logback.xml
@@ -0,0 +1,62 @@
+<!--
+
+ ============LICENSE_START=======================================================
+ org.onap.aai
+ ================================================================================
+ Copyright © 2017 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.
+ ============LICENSE_END=========================================================
+
+ ECOMP is a trademark and service mark of AT&T Intellectual Property.
+
+-->
+<configuration>
+ <property name="AJSC_HOME" value="${AJSC_HOME:-.}" />
+ <appender name="ACCESS"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log.%d{yyyy-MM-dd}
+ </fileNamePattern>
+ </rollingPolicy>
+ <encoder class="org.onap.aai.logging.CustomLogPatternLayoutEncoder">
+ <Pattern>%a %u %z [%t] "%m %U%q" %s %b %y %i{X-TransactionId} %i{X-FromAppId} %i{X-Forwarded-For} %i{X-AAI-SSL-Client-CN} %i{X-AAI-SSL-Client-OU} %i{X-AAI-SSL-Client-O} %i{X-AAI-SSL-Client-L} %i{X-AAI-SSL-Client-ST} %i{X-AAI-SSL-Client-C} %i{X-AAI-SSL-Client-NotBefore} %i{X-AAI-SSL-Client-NotAfter} %i{X-AAI-SSL-Client-DN} %D</Pattern>
+ </encoder>
+ </appender>
+ <appender-ref ref="ACCESS" />
+</configuration>
+
+<!--
+%a - Remote IP address
+%A - Local IP address
+%b - Bytes sent, excluding HTTP headers, or '-' if no bytes were sent
+%B - Bytes sent, excluding HTTP headers
+%h - Remote host name
+%H - Request protocol
+%l - Remote logical username from identd (always returns '-')
+%m - Request method
+%p - Local port
+%q - Query string (prepended with a '?' if it exists, otherwise an empty string
+%r - First line of the request
+%s - HTTP status code of the response
+%S - User session ID
+%t - Date and time, in Common Log Format format
+%u - Remote user that was authenticated
+%U - Requested URL path
+%v - Local server name
+%I - current request thread name (can compare later with stacktraces)
+
+%z - Custom pattern that parses the cert for the subject
+%y - Custom pattern determines rest or dme2
+ --> \ No newline at end of file
diff --git a/aai-traversal/src/main/resources/logback.xml b/aai-traversal/src/main/resources/logback.xml
new file mode 100644
index 0000000..4bdc015
--- /dev/null
+++ b/aai-traversal/src/main/resources/logback.xml
@@ -0,0 +1,391 @@
+<!--
+
+ ============LICENSE_START=======================================================
+ org.onap.aai
+ ================================================================================
+ Copyright © 2017 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.
+ ============LICENSE_END=========================================================
+
+ ECOMP is a trademark and service mark of AT&T Intellectual Property.
+
+-->
+<configuration scan="true" scanPeriod="60 seconds" debug="false">
+ <statusListener class="ch.qos.logback.core.status.NopStatusListener" />
+
+ <property resource="application.properties" />
+
+ <property name="namespace" value="aai-traversal"/>
+
+ <property name="AJSC_HOME" value="${AJSC_HOME:-.}" />
+ <jmxConfigurator />
+ <property name="logDirectory" value="${AJSC_HOME}/logs" />
+ <property name="eelfLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+ <property name="eelfAuditLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+ <property name="eelfMetricLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{targetVirtualEntity}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+ <!-- <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> -->
+ <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%ecompResponseCode|%ecompResponseDescription|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+ <property name="eelfTransLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{partnerName}:%m%n"/>
+
+ <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
+ <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
+ <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>
+ %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
+ </pattern>
+ </encoder>
+ </appender>
+
+ <appender name="SANE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/rest/sane.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/rest/sane.log.%d{yyyy-MM-dd}</fileNamePattern>
+ </rollingPolicy>
+ <encoder>
+ <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n
+ </pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncSANE" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>1000</queueSize>
+ <includeCallerData>true</includeCallerData>
+ <appender-ref ref="SANE" />
+ </appender>
+
+ <appender name="METRIC"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <level>INFO</level>
+ <onMatch>ACCEPT</onMatch>
+ <onMismatch>DENY</onMismatch>
+ </filter>
+ <file>${logDirectory}/rest/metrics.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/rest/metrics.log.%d{yyyy-MM-dd}
+ </fileNamePattern>
+ </rollingPolicy>
+ <encoder class="org.onap.aai.logging.EcompEncoder">
+ <pattern>${eelfMetricLogPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncMETRIC" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>1000</queueSize>
+ <includeCallerData>true</includeCallerData>
+ <appender-ref ref="METRIC" />
+ </appender>
+
+ <appender name="DEBUG"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <level>DEBUG</level>
+ <onMatch>ACCEPT</onMatch>
+ <onMismatch>DENY</onMismatch>
+ </filter>
+ <file>${logDirectory}/rest/debug.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/rest/debug.log.%d{yyyy-MM-dd}
+ </fileNamePattern>
+ </rollingPolicy>
+ <encoder class="org.onap.aai.logging.EcompEncoder">
+ <pattern>${eelfLogPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncDEBUG" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>1000</queueSize>
+ <includeCallerData>true</includeCallerData>
+ <appender-ref ref="DEBUG" />
+ </appender>
+
+ <appender name="ERROR"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>WARN</level>
+ </filter>
+ <file>${logDirectory}/rest/error.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/rest/error.log.%d{yyyy-MM-dd}
+ </fileNamePattern>
+ </rollingPolicy>
+ <encoder class="org.onap.aai.logging.EcompEncoder">
+ <pattern>${eelfErrorLogPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncERROR" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>1000</queueSize>
+ <includeCallerData>true</includeCallerData>
+ <appender-ref ref="ERROR" />
+ </appender>
+
+ <appender name="AUDIT"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/rest/audit.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/rest/audit.log.%d{yyyy-MM-dd}
+ </fileNamePattern>
+ </rollingPolicy>
+ <encoder class="org.onap.aai.logging.EcompEncoder">
+ <pattern>${eelfAuditLogPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncAUDIT" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>1000</queueSize>
+ <includeCallerData>true</includeCallerData>
+ <appender-ref ref="AUDIT" />
+ </appender>
+
+ <appender name="translog"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <level>DEBUG</level>
+ <onMatch>ACCEPT</onMatch>
+ <onMismatch>DENY</onMismatch>
+ </filter>
+ <file>${logDirectory}/rest/translog.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/rest/translog.log.%d{yyyy-MM-dd}
+ </fileNamePattern>
+ </rollingPolicy>
+ <encoder class="org.onap.aai.logging.EcompEncoder">
+ <pattern>${eelfTransLogPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asynctranslog" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>1000</queueSize>
+ <includeCallerData>true</includeCallerData>
+ <appender-ref ref="translog" />
+ </appender>
+
+ <appender name="dmaapAAIEventConsumer"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>WARN</level>
+ </filter>
+ <File>${logDirectory}/dmaapAAIEventConsumer/error.log</File>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/error.log.%d{yyyy-MM-dd}
+ </fileNamePattern>
+ </rollingPolicy>
+ <encoder class="org.onap.aai.logging.EcompEncoder">
+ <pattern>${eelfLogPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="dmaapAAIEventConsumerDebug"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <level>DEBUG</level>
+ <onMatch>ACCEPT</onMatch>
+ <onMismatch>DENY</onMismatch>
+ </filter>
+ <File>${logDirectory}/dmaapAAIEventConsumer/debug.log</File>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/debug.log.%d{yyyy-MM-dd}
+ </fileNamePattern>
+ </rollingPolicy>
+ <encoder class="org.onap.aai.logging.EcompEncoder">
+ <pattern>${eelfLogPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="dmaapAAIEventConsumerMetric"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <level>INFO</level>
+ <onMatch>ACCEPT</onMatch>
+ <onMismatch>DENY</onMismatch>
+ </filter>
+ <File>${logDirectory}/dmaapAAIEventConsumer/metrics.log</File>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/metrics.log.%d{yyyy-MM-dd}
+ </fileNamePattern>
+ </rollingPolicy>
+ <encoder class="org.onap.aai.logging.EcompEncoder">
+ <pattern>${eelfMetricLogPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="external"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>WARN</level>
+ </filter>
+ <file>${logDirectory}/external/external.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/external/external.log.%d{yyyy-MM-dd}
+ </fileNamePattern>
+ </rollingPolicy>
+ <encoder class="org.onap.aai.logging.EcompEncoder">
+ <pattern>${eelfLogPattern}</pattern>
+ </encoder>
+ </appender>
+ <logger name="org.onap.aai" level="DEBUG" additivity="false">
+ <appender-ref ref="asyncDEBUG" />
+ <appender-ref ref="asyncERROR" />
+ <appender-ref ref="asyncMETRIC" />
+ <appender-ref ref="asyncSANE" />
+ </logger>
+
+ <!-- Spring related loggers -->
+ <logger name="org.springframework" level="WARN" />
+ <logger name="org.springframework.beans" level="WARN" />
+ <logger name="org.springframework.web" level="WARN" />
+ <logger name="com.blog.spring.jms" level="WARN" />
+ <logger name="com.jayway.jsonpath" level="WARN" />
+
+ <!-- AJSC Services (bootstrap services) -->
+ <logger name="ajsc" level="WARN" />
+ <logger name="ajsc.RouteMgmtService" level="WARN" />
+ <logger name="ajsc.ComputeService" level="WARN" />
+ <logger name="ajsc.VandelayService" level="WARN" />
+ <logger name="ajsc.FilePersistenceService" level="WARN" />
+ <logger name="ajsc.UserDefinedJarService" level="WARN" />
+ <logger name="ajsc.UserDefinedBeansDefService" level="WARN" />
+ <logger name="ajsc.LoggingConfigurationService" level="WARN" />
+
+ <!-- AJSC related loggers (DME2 Registration, csi logging, restlet, servlet
+ logging) -->
+ <logger name="org.codehaus.groovy" level="WARN" />
+ <logger name="com.att.scamper" level="WARN" />
+ <logger name="ajsc.utils" level="WARN" />
+ <logger name="ajsc.utils.DME2Helper" level="WARN" />
+ <logger name="ajsc.filters" level="WARN" />
+ <logger name="ajsc.beans.interceptors" level="WARN" />
+ <logger name="ajsc.restlet" level="WARN" />
+ <logger name="ajsc.servlet" level="WARN" />
+ <logger name="com.att.ajsc" level="WARN" />
+ <logger name="com.att.ajsc.csi.logging" level="WARN" />
+ <logger name="com.att.ajsc.filemonitor" level="WARN" />
+ <logger name="com.netflix.loadbalancer" level="WARN" />
+
+ <logger name="org.apache.zookeeper" level="WARN" />
+
+ <!-- Other Loggers that may help troubleshoot -->
+ <logger name="net.sf" level="WARN" />
+ <logger name="org.apache.commons.httpclient" level="WARN" />
+ <logger name="org.apache.commons" level="WARN" />
+ <logger name="org.apache.coyote" level="WARN" />
+ <logger name="org.apache.jasper" level="WARN" />
+
+ <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging.
+ May aid in troubleshooting) -->
+ <logger name="org.apache.camel" level="WARN" />
+ <logger name="org.apache.cxf" level="WARN" />
+ <logger name="org.apache.camel.processor.interceptor" level="WARN" />
+ <logger name="org.apache.cxf.jaxrs.interceptor" level="WARN" />
+ <logger name="org.apache.cxf.service" level="WARN" />
+ <logger name="org.restlet" level="WARN" />
+ <logger name="org.apache.camel.component.restlet" level="WARN" />
+
+ <logger name="org.hibernate.validator" level="WARN" />
+ <logger name="org.hibernate" level="WARN" />
+ <logger name="org.hibernate.ejb" level="OFF" />
+
+ <!-- logback internals logging -->
+ <logger name="ch.qos.logback.classic" level="WARN" />
+ <logger name="ch.qos.logback.core" level="WARN" />
+
+ <logger name="org.eclipse.jetty" level="WARN" />
+
+ <!-- logback jms appenders & loggers definition starts here -->
+ <appender name="auditLogs"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter" />
+ <file>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.log
+ </file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
+ </encoder>
+ </appender>
+ <appender name="perfLogs"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter" />
+ <file>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.log
+ </file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
+ </encoder>
+ </appender>
+ <logger name="AuditRecord" level="INFO" additivity="false">
+ <appender-ref ref="auditLogs" />
+ </logger>
+ <logger name="AuditRecord_DirectCall" level="INFO" additivity="false">
+ <appender-ref ref="auditLogs" />
+ </logger>
+ <logger name="PerfTrackerRecord" level="INFO" additivity="false">
+ <appender-ref ref="perfLogs" />
+ </logger>
+ <!-- logback jms appenders & loggers definition ends here -->
+
+ <logger name="org.onap.aai.interceptors.post" level="DEBUG"
+ additivity="false">
+ <appender-ref ref="asynctranslog" />
+ </logger>
+
+ <logger name="org.onap.aai.interceptors.pre.SetLoggingContext" level="DEBUG">
+ <appender-ref ref="asyncAUDIT"/>
+ </logger>
+
+ <logger name="org.onap.aai.interceptors.post.ResetLoggingContext" level="DEBUG">
+ <appender-ref ref="asyncAUDIT"/>
+ </logger>
+
+ <logger name="org.onap.aai.dmaap" level="DEBUG" additivity="false">
+ <appender-ref ref="dmaapAAIEventConsumer" />
+ <appender-ref ref="dmaapAAIEventConsumerDebug" />
+ <appender-ref ref="dmaapAAIEventConsumerMetric" />
+ </logger>
+
+ <logger name="org.apache" level="WARN" />
+ <logger name="org.zookeeper" level="WARN" />
+ <logger name="com.thinkaurelius" level="WARN" />
+ <logger name="com.att.aft.dme2" level="WARN" />
+
+ <!-- ============================================================================ -->
+ <!-- General EELF logger -->
+ <!-- ============================================================================ -->
+ <logger name="com.att.eelf" level="WARN" additivity="false">
+ <appender-ref ref="asyncDEBUG" />
+ <appender-ref ref="asyncERROR" />
+ <appender-ref ref="asyncMETRIC" />
+ </logger>
+
+ <root level="DEBUG">
+ <appender-ref ref="external" />
+ </root>
+</configuration>
diff --git a/aai-traversal/src/main/config/realm.properties b/aai-traversal/src/main/resources/realm.properties
index fb692cc..fb692cc 100644
--- a/aai-traversal/src/main/config/realm.properties
+++ b/aai-traversal/src/main/resources/realm.properties
diff --git a/aai-traversal/src/main/runtime/context/__module.ajsc.namespace.name__#__module.ajsc.namespace.version__.context b/aai-traversal/src/main/runtime/context/__module.ajsc.namespace.name__#__module.ajsc.namespace.version__.context
deleted file mode 100644
index 8514196..0000000
--- a/aai-traversal/src/main/runtime/context/__module.ajsc.namespace.name__#__module.ajsc.namespace.version__.context
+++ /dev/null
@@ -1 +0,0 @@
-{"context":{"contextClass":"ajsc.Context","contextId":"__module_ajsc_namespace_name__:__module_ajsc_namespace_version__","contextName":"__module_ajsc_namespace_name__","contextVersion":"__module_ajsc_namespace_version__","description":"__module_ajsc_namespace_name__ Context"}} \ No newline at end of file
diff --git a/aai-traversal/src/main/runtime/context/default#0.context b/aai-traversal/src/main/runtime/context/default#0.context
deleted file mode 100644
index d1b5ab4..0000000
--- a/aai-traversal/src/main/runtime/context/default#0.context
+++ /dev/null
@@ -1 +0,0 @@
-{"context":{"contextClass":"ajsc.Context","contextId":"default:0","contextName":"default","contextVersion":"0","description":"Default Context"}} \ No newline at end of file
diff --git a/aai-traversal/src/main/runtime/deploymentPackage/__module.ajsc.namespace.name__#__module.ajsc.namespace.version__.json b/aai-traversal/src/main/runtime/deploymentPackage/__module.ajsc.namespace.name__#__module.ajsc.namespace.version__.json
deleted file mode 100644
index d0954cf..0000000
--- a/aai-traversal/src/main/runtime/deploymentPackage/__module.ajsc.namespace.name__#__module.ajsc.namespace.version__.json
+++ /dev/null
@@ -1 +0,0 @@
-{"deploymentPackage":{"Class":"ajsc.DeploymentPackage","Id":"__module.ajsc.namespace.name__:__module_ajsc_namespace_version__","namespace":"__module_ajsc_namespace_name__","namespaceVersion":"__module_ajsc_namespace_version__","description":"__module_ajsc_namespace_name__ __module_ajsc_namespace_version__ - default description","userId":"ajsc"}} \ No newline at end of file
diff --git a/aai-traversal/src/main/runtime/shiroRole/ajscadmin.json b/aai-traversal/src/main/runtime/shiroRole/ajscadmin.json
deleted file mode 100644
index f5e981e..0000000
--- a/aai-traversal/src/main/runtime/shiroRole/ajscadmin.json
+++ /dev/null
@@ -1 +0,0 @@
-{"shiroRoleClass":"ajsc.auth.ShiroRole","shiroRoleId":"ajscadmin","name":"ajscadmin","permissions":"[ajscadmin:*, ajsc:*]"} \ No newline at end of file
diff --git a/aai-traversal/src/main/runtime/shiroRole/contextadmin#__module.ajsc.namespace.name__.json b/aai-traversal/src/main/runtime/shiroRole/contextadmin#__module.ajsc.namespace.name__.json
deleted file mode 100644
index 2dae9f5..0000000
--- a/aai-traversal/src/main/runtime/shiroRole/contextadmin#__module.ajsc.namespace.name__.json
+++ /dev/null
@@ -1 +0,0 @@
-{"shiroRoleClass":"ajsc.auth.ShiroRole","shiroRoleId":"contextadmin:__module_ajsc_namespace_name__","name":"contextadmin:__module_ajsc_namespace_name__","permissions":"[]"} \ No newline at end of file
diff --git a/aai-traversal/src/main/runtime/shiroRole/contextadmin#default.json b/aai-traversal/src/main/runtime/shiroRole/contextadmin#default.json
deleted file mode 100644
index 5de814e..0000000
--- a/aai-traversal/src/main/runtime/shiroRole/contextadmin#default.json
+++ /dev/null
@@ -1 +0,0 @@
-{"shiroRoleClass":"ajsc.auth.ShiroRole","shiroRoleId":"contextadmin:default","name":"contextadmin:default","permissions":"[]"} \ No newline at end of file
diff --git a/aai-traversal/src/main/runtime/shiroUser/ajsc.json b/aai-traversal/src/main/runtime/shiroUser/ajsc.json
deleted file mode 100644
index f4c7855..0000000
--- a/aai-traversal/src/main/runtime/shiroUser/ajsc.json
+++ /dev/null
@@ -1 +0,0 @@
-{"shiroUserClass":"ajsc.auth.ShiroUser","shiroUserId":"ajsc","passwordHash":"9471697417008c880720ba54c6038791ad7e98f3b88136fe34f4d31a462dd27a","permissions":"[*:*]","username":"ajsc"} \ No newline at end of file
diff --git a/aai-traversal/src/main/runtime/shiroUserRole/ajsc#ajscadmin.json b/aai-traversal/src/main/runtime/shiroUserRole/ajsc#ajscadmin.json
deleted file mode 100644
index cb8d483..0000000
--- a/aai-traversal/src/main/runtime/shiroUserRole/ajsc#ajscadmin.json
+++ /dev/null
@@ -1 +0,0 @@
-{"shiroUserRoleClass":"ajsc.auth.ShiroUserRole","shiroUserRoleId":"ajsc:ajscadmin","roleId":"ajscadmin","userId":"ajsc"} \ No newline at end of file
diff --git a/aai-traversal/src/main/runtime/shiroUserRole/ajsc#contextadmin#__module.ajsc.namespace.name__.json b/aai-traversal/src/main/runtime/shiroUserRole/ajsc#contextadmin#__module.ajsc.namespace.name__.json
deleted file mode 100644
index 95d2361..0000000
--- a/aai-traversal/src/main/runtime/shiroUserRole/ajsc#contextadmin#__module.ajsc.namespace.name__.json
+++ /dev/null
@@ -1 +0,0 @@
-{"shiroUserRoleClass":"ajsc.auth.ShiroUserRole","shiroUserRoleId":"ajsc:contextadmin:__module_ajsc_namespace_name__","roleId":"contextadmin:__module_ajsc_namespace_name__","userId":"ajsc"} \ No newline at end of file
diff --git a/aai-traversal/src/main/runtime/shiroUserRole/ajsc#contextadmin#default.json b/aai-traversal/src/main/runtime/shiroUserRole/ajsc#contextadmin#default.json
deleted file mode 100644
index 2bd5063..0000000
--- a/aai-traversal/src/main/runtime/shiroUserRole/ajsc#contextadmin#default.json
+++ /dev/null
@@ -1 +0,0 @@
-{"shiroUserRoleClass":"ajsc.auth.ShiroUserRole","shiroUserRoleId":"ajsc:contextadmin:default","roleId":"contextadmin:default","userId":"ajsc"} \ No newline at end of file
diff --git a/aai-traversal/src/main/scripts/common_functions.sh b/aai-traversal/src/main/scripts/common_functions.sh
new file mode 100644
index 0000000..8bd881a
--- /dev/null
+++ b/aai-traversal/src/main/scripts/common_functions.sh
@@ -0,0 +1,56 @@
+#!/bin/ksh
+
+# Common functions that can be used throughout multiple scripts
+# In order to call these functions, this file needs to be sourced
+
+# Checks if the user that is currently running is aaiadmin
+check_user(){
+
+ userid=$( id | cut -f2 -d"(" | cut -f1 -d")" )
+
+ if [ "${userid}" != "aaiadmin" ]; then
+ echo "You must be aaiadmin to run $0. The id used $userid."
+ exit 1
+ fi
+}
+
+# Sources the profile and sets the project home
+source_profile(){
+ . /etc/profile.d/aai.sh
+ PROJECT_HOME=/opt/app/aai-traversal
+}
+
+# Runs the spring boot jar based on which main class
+# to execute and which logback file to use for that class
+execute_spring_jar(){
+
+ className=$1;
+ logbackFile=$2;
+
+ shift 2;
+
+ EXECUTABLE_JAR=$(ls ${PROJECT_HOME}/lib/aai-traversal-*SNAPSHOT.jar);
+
+ JAVA_OPTS="${JAVA_PRE_OPTS}";
+ JAVA_OPTS="-DAJSC_HOME=$PROJECT_HOME";
+ JAVA_OPTS="$JAVA_OPTS -DBUNDLECONFIG_DIR=resources";
+ JAVA_OPTS="$JAVA_OPTS -Daai.home=$PROJECT_HOME ";
+ JAVA_OPTS="$JAVA_OPTS -Dhttps.protocols=TLSv1.1,TLSv1.2";
+ JAVA_OPTS="$JAVA_OPTS -Dloader.main=${className}";
+ JAVA_OPTS="$JAVA_OPTS -Dlogback.configurationFile=${logbackFile}";
+ JAVA_OPTS="${JAVA_OPTS} ${JAVA_POST_OPTS}";
+
+ ${JAVA_HOME}/bin/java ${JVM_OPTS} ${JAVA_OPTS} -jar ${EXECUTABLE_JAR} "$@"
+}
+
+# Prints the start date and the script that the user called
+start_date(){
+ echo
+ echo `date` " Starting $0"
+}
+
+# Prints the end date and the script that the user called
+end_date(){
+ echo
+ echo `date` " Done $0"
+}
diff --git a/aai-traversal/src/main/scripts/deleteNamedQuery.sh b/aai-traversal/src/main/scripts/deleteNamedQuery.sh
index 2d19a9c..43aaae7 100644
--- a/aai-traversal/src/main/scripts/deleteNamedQuery.sh
+++ b/aai-traversal/src/main/scripts/deleteNamedQuery.sh
@@ -22,15 +22,11 @@
#
#
-# This script deletes the named query in bundleconfig/etc/scriptdata/named-query-json directory
+# This script deletes the named query in resources/etc/scriptdata/named-query-json directory
#
PROGNAME=$(basename $0)
-<<<<<<< HEAD
-OUTFILE=$PROJECT_HOME/logs/misc/${PROGNAME}.log.$(date +\%Y-\%m-\%d)
-=======
OUTFILE=/opt/app/aai-traversal/logs/misc/${PROGNAME}.log.$(date +\%Y-\%m-\%d)
->>>>>>> codecloud/release/1802
#OUTFILE=/c/temp/${PROGNAME}.log.$(date +\%Y-\%m-\%d)
TS=$(date "+%Y-%m-%d %H:%M:%S")
@@ -49,23 +45,15 @@ error_exit () {
}
j=0
-<<<<<<< HEAD
-for filepath in `ls $PROJECT_HOME/bundleconfig/etc/scriptdata/named-query-json/*.json|sort -f`
-=======
-for filepath in `ls /opt/app/aai-traversal/bundleconfig/etc/scriptdata/named-query-json/*.json|sort -f`
->>>>>>> codecloud/release/1802
-#for filepath in `ls /c/sources/aai/aaigitnew/bundleconfig-local/etc/scriptdata/named-query-json/*.json|sort -f`
+for filepath in `ls /opt/app/aai-traversal/resources/etc/scriptdata/named-query-json/*.json|sort -f`
+#for filepath in `ls /c/sources/aai/aaigitnew/resources-local/etc/scriptdata/named-query-json/*.json|sort -f`
do
j=$(expr "$j" + 1)
filename=$(basename $filepath)
echo "Begin deleteTool for named-query $filename" | tee -a $OUTFILE
vers=`grep named-query-uuid $filepath|cut -d':' -f2|cut -d'"' -f2`
resource=service-design-and-creation/named-queries/named-query/$vers
-<<<<<<< HEAD
-echo "y" | $PROJECT_HOME/scripts/deleteTool.sh $resource >> $OUTFILE 2>&1 || error_exit "$resource $filepath" $j
-=======
echo "y" | /opt/app/aai-traversal/scripts/deleteTool.sh $resource >> $OUTFILE 2>&1 || error_exit "$resource $filepath" $j
->>>>>>> codecloud/release/1802
echo "End deleteTool for named-query $filename" | tee -a $OUTFILE
done
diff --git a/aai-traversal/src/main/scripts/deleteTool.sh b/aai-traversal/src/main/scripts/deleteTool.sh
index 60c3e1c..8d51437 100644
--- a/aai-traversal/src/main/scripts/deleteTool.sh
+++ b/aai-traversal/src/main/scripts/deleteTool.sh
@@ -50,7 +50,7 @@ fi
. /etc/profile.d/aai.sh
PROJECT_HOME=/opt/app/aai-traversal
-prop_file=$PROJECT_HOME/bundleconfig/etc/appprops/aaiconfig.properties
+prop_file=$PROJECT_HOME/resources/etc/appprops/aaiconfig.properties
log_dir=$PROJECT_HOME/logs/misc
today=$(date +\%Y-\%m-\%d)
@@ -80,7 +80,7 @@ fi
if [ $MISSING_PROP = false ]; then
if [ $USEBASICAUTH = false ]; then
- AUTHSTRING="--cert $PROJECT_HOME/bundleconfig/etc/auth/aaiClientPublicCert.pem --key $PROJECT_HOME/bundleconfig/etc/auth/aaiClientPrivateKey.pem"
+ AUTHSTRING="--cert $PROJECT_HOME/resources/etc/auth/aaiClientPublicCert.pem --key $PROJECT_HOME/resources/etc/auth/aaiClientPrivateKey.pem"
else
AUTHSTRING="-u $CURLUSER:$CURLPASSWORD"
fi
diff --git a/aai-traversal/src/main/scripts/getTool.sh b/aai-traversal/src/main/scripts/getTool.sh
index 39d4e87..df0456f 100644
--- a/aai-traversal/src/main/scripts/getTool.sh
+++ b/aai-traversal/src/main/scripts/getTool.sh
@@ -46,7 +46,7 @@ fi
. /etc/profile.d/aai.sh
PROJECT_HOME=/opt/app/aai-traversal
-prop_file=$PROJECT_HOME/bundleconfig/etc/appprops/aaiconfig.properties
+prop_file=$PROJECT_HOME/resources/etc/appprops/aaiconfig.properties
log_dir=$PROJECT_HOME/logs/misc
today=$(date +\%Y-\%m-\%d)
@@ -76,7 +76,7 @@ fi
if [ $MISSING_PROP = false ]; then
if [ $USEBASICAUTH = false ]; then
- AUTHSTRING="--cert $PROJECT_HOME/bundleconfig/etc/auth/aaiClientPublicCert.pem --key $PROJECT_HOME/bundleconfig/etc/auth/aaiClientPrivateKey.pem"
+ AUTHSTRING="--cert $PROJECT_HOME/resources/etc/auth/aaiClientPublicCert.pem --key $PROJECT_HOME/resources/etc/auth/aaiClientPrivateKey.pem"
else
AUTHSTRING="-u $CURLUSER:$CURLPASSWORD"
fi
diff --git a/aai-traversal/src/main/scripts/install/updateQueryData.sh b/aai-traversal/src/main/scripts/install/updateQueryData.sh
index 3c7f1bf..a5723d0 100644
--- a/aai-traversal/src/main/scripts/install/updateQueryData.sh
+++ b/aai-traversal/src/main/scripts/install/updateQueryData.sh
@@ -41,7 +41,7 @@ error_exit () {
}
j=0
-for filepath in `ls $PROJECT_HOME/bundleconfig/etc/scriptdata/widget-model-json/*.json|sort -f`
+for filepath in `ls $PROJECT_HOME/resources/etc/scriptdata/widget-model-json/*.json|sort -f`
do
j=$(expr "$j" + 1)
filename=$(basename $filepath)
@@ -54,7 +54,7 @@ echo "End putTool for widget $filename" | tee -a $OUTFILE
done
j=0
-for filepath in `ls $PROJECT_HOME/bundleconfig/etc/scriptdata/named-query-json/*.json|sort -f`
+for filepath in `ls $PROJECT_HOME/resources/etc/scriptdata/named-query-json/*.json|sort -f`
do
j=$(expr "$j" + 1)
filename=$(basename $filepath)
@@ -67,7 +67,7 @@ echo "End putTool for named-query $filename" | tee -a $OUTFILE
done
j=0
-for filepath in `ls $PROJECT_HOME/bundleconfig/etc/scriptdata/resource-model-json/*.json|sort -f`
+for filepath in `ls $PROJECT_HOME/resources/etc/scriptdata/resource-model-json/*.json|sort -f`
do
j=$(expr "$j" + 1)
filename=$(basename $filepath)
@@ -80,7 +80,7 @@ echo "End putTool for resource model $filename" | tee -a $OUTFILE
done
j=0
-for filepath in `ls $PROJECT_HOME/bundleconfig/etc/scriptdata/service-model-json/*.json|sort -f`
+for filepath in `ls $PROJECT_HOME/resources/etc/scriptdata/service-model-json/*.json|sort -f`
do
j=$(expr "$j" + 1)
filename=$(basename $filepath)
diff --git a/aai-traversal/src/main/scripts/putTool.sh b/aai-traversal/src/main/scripts/putTool.sh
index be273a2..6630d8f 100644
--- a/aai-traversal/src/main/scripts/putTool.sh
+++ b/aai-traversal/src/main/scripts/putTool.sh
@@ -22,14 +22,9 @@
#
#
-<<<<<<< HEAD
-# The script is called with a resource, filepath and an optional argument to
-# ignore HTTP failure codes which would otherwise indicate a failure.
-=======
# The script is called with a resource, filepath, an optional argument to
# ignore HTTP failure codes which would otherwise indicate a failure,
# and an optional argument to display more data.
->>>>>>> codecloud/release/1802
# It invokes a PUT on the resource with the file using curl
# Uses aaiconfig.properties for authorization type and url. The HTTP response
# code is checked. Responses between 200 and 299 are considered success.
@@ -51,8 +46,6 @@ contains() {
fi
}
-<<<<<<< HEAD
-=======
display_usage() {
cat <<EOF
Usage: $0 [options]
@@ -70,7 +63,6 @@ if [ $# -eq 0 ]; then
exit 1
fi
->>>>>>> codecloud/release/1802
# remove leading slash when present
RESOURCE=`echo $1 | sed "s,^/,,"`
if [ -z $RESOURCE ]; then
@@ -98,12 +90,10 @@ fi
. /etc/profile.d/aai.sh
PROJECT_HOME=/opt/app/aai-traversal
-prop_file=$PROJECT_HOME/bundleconfig/etc/appprops/aaiconfig.properties
+prop_file=$PROJECT_HOME/resources/etc/appprops/aaiconfig.properties
log_dir=$PROJECT_HOME/logs/misc
today=$(date +\%Y-\%m-\%d)
-<<<<<<< HEAD
-=======
RETURNRESPONSE=false
if [ ${#} -ne 2 ]; then
if [ "$3" = "-display" ]; then
@@ -116,7 +106,6 @@ if [ ${#} -ne 3 ]; then
fi
fi
->>>>>>> codecloud/release/1802
MISSING_PROP=false
RESTURL=`grep ^aai.server.url= $prop_file |cut -d'=' -f2 |tr -d "\015"`
if [ -z $RESTURL ]; then
@@ -143,26 +132,19 @@ fi
if [ $MISSING_PROP = false ]; then
if [ $USEBASICAUTH = false ]; then
- AUTHSTRING="--cert $PROJECT_HOME/bundleconfig/etc/auth/aaiClientPublicCert.pem --key $PROJECT_HOME/bundleconfig/etc/auth/aaiClientPrivateKey.pem"
+ AUTHSTRING="--cert $PROJECT_HOME/resources/etc/auth/aaiClientPublicCert.pem --key $PROJECT_HOME/resources/etc/auth/aaiClientPrivateKey.pem"
else
AUTHSTRING="-u $CURLUSER:$CURLPASSWORD"
fi
-<<<<<<< HEAD
- result=`curl --request PUT -sL -w "%{http_code}" -o /dev/null -k $AUTHSTRING -H "X-FromAppId: $XFROMAPPID" -H "X-TransactionId: $XTRANSID" -H "Accept: application/json" -T $JSONFILE $RESTURL$RESOURCE`
- #echo "result is $result."
- RC=0;
- if [ $? -eq 0 ]; then
-=======
-
+
if [ $RETURNRESPONSE = true ]; then
- curl --request PUT -sL -k $AUTHSTRING -H "X-FromAppId: $XFROMAPPID" -H "X-TransactionId: $XTRANSID" -H "Accept: application/json" -T $JSONFILE $RESTURL$RESOURCE | python -mjson.tool
+ curl --request PUT -sL -k $AUTHSTRING -H "Content-Type: application/json" -H "X-FromAppId: $XFROMAPPID" -H "X-TransactionId: $XTRANSID" -H "Accept: application/json" -T $JSONFILE $RESTURL$RESOURCE | python -mjson.tool
RC=$?
else
- result=`curl --request PUT -sL -w "%{http_code}" -o /dev/null -k $AUTHSTRING -H "X-FromAppId: $XFROMAPPID" -H "X-TransactionId: $XTRANSID" -H "Accept: application/json" -T $JSONFILE $RESTURL$RESOURCE`
+ result=`curl --request PUT -sL -w "%{http_code}" -o /dev/null -k $AUTHSTRING -H "Content-Type: application/json" -H "X-FromAppId: $XFROMAPPID" -H "X-TransactionId: $XTRANSID" -H "Accept: application/json" -T $JSONFILE $RESTURL$RESOURCE`
#echo "result is $result."
RC=0;
if [ $? -eq 0 ]; then
->>>>>>> codecloud/release/1802
case $result in
+([0-9])?)
#if [[ "$result" -eq 412 || "$result" -ge 200 && $result -lt 300 ]]
@@ -191,18 +173,11 @@ if [ $MISSING_PROP = false ]; then
;;
esac
-<<<<<<< HEAD
- else
- echo "FAILED to send request to $RESTURL"
- RC=-1
- fi
-=======
else
echo "FAILED to send request to $RESTURL"
RC=-1
fi
fi
->>>>>>> codecloud/release/1802
else
echo "usage: $0 resource file [expected-failure-codes]"
RC=-1
diff --git a/aai-traversal/src/main/swm/package/nix/common/deinstall.env b/aai-traversal/src/main/swm/package/nix/common/deinstall.env
new file mode 100644
index 0000000..fb0a9f5
--- /dev/null
+++ b/aai-traversal/src/main/swm/package/nix/common/deinstall.env
@@ -0,0 +1,10 @@
+
+# This file is used to set the environment which the install_*.sh files
+# will use when executing. Only set variables that must be derived at
+# installation time here. For variables that should be set by the installer
+# in SWM, add VariableDescriptor elements to the descriptor.xml. Place
+# logical steps in the install_preproc.sh or install_postproc.sh.
+
+. `dirname $0`/common.env
+
+AAI_USER=aaiadmin;export AAI_USER
diff --git a/aai-traversal/src/main/swm/package/nix/common/install_postproc.sh b/aai-traversal/src/main/swm/package/nix/common/install_postproc.sh
new file mode 100644
index 0000000..ab5f2b7
--- /dev/null
+++ b/aai-traversal/src/main/swm/package/nix/common/install_postproc.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+###
+# ============LICENSE_START=======================================================
+# org.onap.aai
+# ================================================================================
+# Copyright (C) 2017 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.
+# ============LICENSE_END=========================================================
+###
+
+##############################################################################
+# - SCLD GRM SERVICE
+# - Copyright 2009 AT&T Intellectual Properties
+##############################################################################
+
+
+. `dirname $0`/install.env
+
+cd ${ROOT_DIR};
+
+TEMPLATE_YAML_FILE=${ROOT_DIR}/docker-compose.template.yaml
+YAML_FILE=${ROOT_DIR}/docker-compose.yaml
+
+sh ${UTILPATH}/findreplace.sh ${TEMPLATE_YAML_FILE} ${YAML_FILE} || exit 200
+rm ${TEMPLATE_YAML_FILE}
+
+exit 0
diff --git a/aai-traversal/src/main/swm/package/nix/deinstall/preproc/pre_proc b/aai-traversal/src/main/swm/package/nix/deinstall/preproc/pre_proc
new file mode 100644
index 0000000..5f88c41
--- /dev/null
+++ b/aai-traversal/src/main/swm/package/nix/deinstall/preproc/pre_proc
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+cd ../../common
+exec sh -x ./deinstall_preproc.sh
diff --git a/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/docker-compose.template.yaml b/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/docker-compose.template.yaml
new file mode 100644
index 0000000..74ae555
--- /dev/null
+++ b/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/docker-compose.template.yaml
@@ -0,0 +1,51 @@
+#
+# ============LICENSE_START=======================================================
+# org.onap.aai
+# ================================================================================
+# Copyright © 2017 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.
+# ============LICENSE_END=========================================================
+#
+# ECOMP is a trademark and service mark of AT&T Intellectual Property.
+#
+
+# SCLD_ENV is for the environment context for dme2
+# AAI_CHEF_ENV is used for both dme2 properites and
+# also used by chef to generate appropriate properties
+
+version: '2'
+services:
+ aai-traversal:
+ image: __REGISTRY__/__NAMESPACE__/aai-traversal:__IMAGE_VERSION__
+ network_mode: host
+ environment:
+ - LOCAL_USER_ID=__LOCAL_USER_ID__
+ - LOCAL_GROUP_ID=__LOCAL_GROUP_ID__
+ volumes:
+ - /opt/aai/logroot/AAI-GQ:/opt/aai/logroot/AAI-GQ
+ - /opt/app/aai-traversal/appconfig/aai-client-cert.p12:/opt/app/aai-traversal/resources/etc/auth/aai-client-cert.p12
+ - /opt/app/aai-traversal/appconfig/tomcat_keystore:/opt/app/aai-traversal/resources/etc/auth/tomcat_keystore
+ - /opt/app/aai-traversal/appconfig/aai_policy.json:/opt/app/aai-traversal/resources/etc/auth/aai_policy.json
+ - /opt/app/aai-traversal/appconfig/aaiconfig.properties:/opt/app/aai-traversal/resources/etc/appprops/aaiconfig.properties
+ - /opt/app/aai-traversal/appconfig/application.properties:/opt/app/aai-traversal/resources/application.properties
+ - /opt/app/aai-traversal/appconfig/dme2.properties:/opt/app/aai-traversal/resources/dme2.properties
+ - /opt/app/aai-traversal/appconfig/localhost-access-logback.xml:/opt/app/aai-traversal/resources/localhost-access-logback.xml
+ - /opt/app/aai-traversal/appconfig/logback.xml:/opt/app/aai-traversal/resources/logback.xml
+ - /opt/app/aai-traversal/appconfig/titan-cached.properties:/opt/app/aai-traversal/resources/etc/appprops/titan-cached.properties
+ - /opt/app/aai-traversal/appconfig/titan-realtime.properties:/opt/app/aai-traversal/resources/etc/appprops/titan-realtime.properties
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "30m"
+ max-file: "5"
diff --git a/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/execTool.sh b/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/execTool.sh
new file mode 100644
index 0000000..ab634c0
--- /dev/null
+++ b/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/execTool.sh
@@ -0,0 +1,58 @@
+#!/bin/bash
+
+export WORKING_DIR="$( cd "$(dirname "$0")" ; pwd -P )/"
+
+DOCKER_COMPOSE_CMD="docker-compose -f ${WORKING_DIR}/docker-compose.yaml";
+
+ARG=$1;
+
+if [ -z "$ARG" ]; then
+ echo "Error: You need to at least provide one argument which is the script to execute";
+ exit 1;
+fi;
+
+if [ "${ARG}" = "--debug" ]; then
+
+ SCRIPT_NAME=$2;
+
+ if [ -z "$SCRIPT_NAME" ]; then
+ echo "Error: You need to provide the tool name after specifying the --debug flag";
+ exit 1;
+ fi;
+
+ shift 2;
+
+else
+ SCRIPT_NAME=$1;
+ shift 1;
+fi;
+
+CONTAINER_NAME=$(${DOCKER_COMPOSE_CMD} ps -q aai-traversal);
+
+if [ $? -ne 0 ]; then
+ echo "Error: seems like the container is not running, please run the commands to start aai-traversal";
+ exit 1;
+fi;
+
+if [ ${SCRIPT_NAME} = "putTool.sh" ]; then
+
+ PAYLOAD_FILE=$2;
+
+ if [ ! -z "${PAYLOAD_FILE}" ] && [ -f "${PAYLOAD_FILE}" ]; then
+ docker cp ${PAYLOAD_FILE} ${CONTAINER_NAME}:/tmp/$(basename ${PAYLOAD_FILE})
+ fi;
+fi;
+
+${DOCKER_COMPOSE_CMD} exec --user aaiadmin aai-traversal ls /opt/app/aai-traversal/scripts/${SCRIPT_NAME} && {
+
+ if [ "${ARG}" = "--debug" ]; then
+ ${DOCKER_COMPOSE_CMD} exec --user aaiadmin aai-traversal bash -x /opt/app/aai-traversal/scripts/${SCRIPT_NAME} "$@"
+ else
+ ${DOCKER_COMPOSE_CMD} exec --user aaiadmin aai-traversal /opt/app/aai-traversal/scripts/${SCRIPT_NAME} "$@"
+ fi;
+
+ exit 0;
+} || {
+ echo "Unable to find the tool in the /opt/app/aai-traversal/scripts";
+ exit 1;
+}
diff --git a/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/kill_resources.sh b/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/kill_resources.sh
new file mode 100644
index 0000000..00855da
--- /dev/null
+++ b/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/kill_resources.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+. /etc/profile.d/aai.sh
+PROJECT_HOME=/opt/app/aai-traversal
+
+docker-compose -f ${PROJECT_HOME}/docker-compose.yaml stop && \
+ docker-compose -f ${PROJECT_HOME}/docker-compose.yaml rm -f
diff --git a/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/start_resources.sh b/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/start_resources.sh
new file mode 100644
index 0000000..61819d4
--- /dev/null
+++ b/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/start_resources.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+. /etc/profile.d/aai.sh
+PROJECT_HOME=/opt/app/aai-traversal
+
+docker-compose -f ${PROJECT_HOME}/docker-compose.yaml up -d || exit 200
diff --git a/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/stop_resources.sh b/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/stop_resources.sh
new file mode 100644
index 0000000..009e597
--- /dev/null
+++ b/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/stop_resources.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+. /etc/profile.d/aai.sh
+PROJECT_HOME=/opt/app/aai-traversal
+
+docker-compose -f ${PROJECT_HOME}/docker-compose.yaml stop || exit 200
diff --git a/aai-traversal/src/main/swm/package/nix/initinst/postproc/post_proc b/aai-traversal/src/main/swm/package/nix/initinst/postproc/post_proc
new file mode 100644
index 0000000..d017750
--- /dev/null
+++ b/aai-traversal/src/main/swm/package/nix/initinst/postproc/post_proc
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+cd ../../common
+exec sh -x ./install_postproc.sh
diff --git a/aai-traversal/src/main/swm/package/nix/install/postproc/post_proc b/aai-traversal/src/main/swm/package/nix/install/postproc/post_proc
new file mode 100644
index 0000000..d017750
--- /dev/null
+++ b/aai-traversal/src/main/swm/package/nix/install/postproc/post_proc
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+cd ../../common
+exec sh -x ./install_postproc.sh
diff --git a/aai-traversal/src/main/swm/package/nix/install/preproc/pre_proc b/aai-traversal/src/main/swm/package/nix/install/preproc/pre_proc
new file mode 100644
index 0000000..3f1b26f
--- /dev/null
+++ b/aai-traversal/src/main/swm/package/nix/install/preproc/pre_proc
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+cd ../../common
+exec sh -x ./install_preproc.sh
diff --git a/aai-traversal/src/main/xjb/bindings.xjb b/aai-traversal/src/main/xjb/bindings.xjb
deleted file mode 100644
index b7629d3..0000000
--- a/aai-traversal/src/main/xjb/bindings.xjb
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<jaxb:bindings
- version="2.1"
- xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
- xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <jaxb:bindings scd="x-schema::a" xmlns:a="http://org.openecomp.aai.inventory/v7">
- <jaxb:schemaBindings>
- <jaxb:package name="org.openecomp.aai.domain.yang.v7"/>
- </jaxb:schemaBindings>
- </jaxb:bindings>
- <jaxb:bindings scd="x-schema::a" xmlns:a="http://org.openecomp.aai.inventory/v8">
- <jaxb:schemaBindings>
- <jaxb:package name="org.openecomp.aai.domain.yang.v8"/>
- </jaxb:schemaBindings>
- </jaxb:bindings>
- <jaxb:bindings scd="x-schema::a" xmlns:a="http://org.openecomp.aai.inventory/v9">
- <jaxb:schemaBindings>
- <jaxb:package name="org.openecomp.aai.domain.yang"/>
- </jaxb:schemaBindings>
- </jaxb:bindings>
-</jaxb:bindings> \ No newline at end of file
diff --git a/aai-traversal/src/test/java/org/onap/aai/AAIGremlinQueryTest.java b/aai-traversal/src/test/java/org/onap/aai/AAIGremlinQueryTest.java
new file mode 100644
index 0000000..4210596
--- /dev/null
+++ b/aai-traversal/src/test/java/org/onap/aai/AAIGremlinQueryTest.java
@@ -0,0 +1,126 @@
+package org.onap.aai;
+
+import com.jayway.jsonpath.JsonPath;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.onap.aai.config.PropertyPasswordConfiguration;
+import org.onap.aai.exceptions.AAIException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.context.embedded.LocalServerPort;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.annotation.Import;
+import org.springframework.http.*;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.TestPropertySource;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.web.client.RestTemplate;
+
+import javax.ws.rs.core.Response;
+import java.io.UnsupportedEncodingException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.Assert.assertNotNull;
+
+/**
+ * A sample junit test using spring boot that provides the ability to spin
+ * up the application from the junit layer and run rest requests against
+ * SpringBootTest annotation with web environment requires which spring boot
+ * class to load and the random port starts the application on a random port
+ * and injects back into the application for the field with annotation LocalServerPort
+ * <p>
+ *
+ * This can be used to potentially replace a lot of the fitnesse tests since
+ * they will be testing against the same thing except fitnesse uses hbase
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = TraversalApp.class)
+@TestPropertySource(locations = "classpath:application-test.properties")
+@ContextConfiguration(initializers = PropertyPasswordConfiguration.class)
+@Import(TraversalTestConfiguration.class)
+public class AAIGremlinQueryTest {
+
+ private HttpTestUtil httpTestUtil;
+
+ private String pserverUri;
+
+ private String hostname;
+
+ @Autowired
+ RestTemplate restTemplate;
+
+ @LocalServerPort
+ int randomPort;
+
+ private HttpEntity httpEntity;
+
+ private HttpHeaders headers;
+
+ private String baseUrl;
+
+ @Before
+ public void setup() throws Exception {
+
+ httpTestUtil = new HttpTestUtil();
+
+ hostname = UUID.randomUUID().toString();
+
+ pserverUri ="/aai/v11/cloud-infrastructure/pservers/pserver/" + hostname;
+
+ Map<String, String> pserverMap = new HashMap<>();
+ pserverMap.put("hostname", hostname);
+ String payload = PayloadUtil.getTemplatePayload("pserver.json", pserverMap);
+ httpTestUtil.doPut(pserverUri, payload);
+
+ headers = new HttpHeaders();
+
+ headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
+ headers.setContentType(MediaType.APPLICATION_JSON);
+ headers.add("Real-Time", "true");
+ headers.add("X-FromAppId", "JUNIT");
+ headers.add("X-TransactionId", "JUNIT");
+
+ baseUrl = "https://localhost:" + randomPort;
+ }
+
+ @Test
+ public void testPserverCount() throws Exception {
+ Map<String, String> gremlinQueryMap = new HashMap<>();
+ gremlinQueryMap.put("gremlin-query", "g.V().has('hostname', '" + hostname + "').count()");
+
+ String payload = PayloadUtil.getTemplatePayload("gremlin-query.json", gremlinQueryMap);
+
+ ResponseEntity responseEntity = null;
+
+ String endpoint = "/aai/v11/query?format=console";
+
+ httpEntity = new HttpEntity(payload, headers);
+ responseEntity = restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
+ assertThat(responseEntity.getStatusCode(), is(HttpStatus.OK));
+
+ String result = JsonPath.read(responseEntity.getBody().toString(), "$.results[0].result");
+ assertThat(result, is("1"));
+ }
+
+ @After
+ public void tearDown() throws UnsupportedEncodingException, AAIException {
+
+ Response response = httpTestUtil.doGet(pserverUri);
+
+ assertNotNull("Expected the response to be returned", response);
+ assertThat(response.getStatus(), is(200));
+
+ String body = response.getEntity().toString();
+ String resourceVersion = JsonPath.read(body, "$.resource-version");
+
+ response = httpTestUtil.doDelete(pserverUri, resourceVersion);
+ assertNotNull("Expected the response to be returned", response);
+ assertThat(response.getStatus(), is(204));
+ }
+}
diff --git a/aai-traversal/src/test/java/org/onap/aai/TraversalTestConfiguration.java b/aai-traversal/src/test/java/org/onap/aai/TraversalTestConfiguration.java
new file mode 100644
index 0000000..e4c6f19
--- /dev/null
+++ b/aai-traversal/src/test/java/org/onap/aai/TraversalTestConfiguration.java
@@ -0,0 +1,125 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017 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.
+ * ============LICENSE_END=========================================================
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+package org.onap.aai;
+
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+import org.apache.http.client.HttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.ssl.SSLContextBuilder;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.TestConfiguration;
+import org.springframework.boot.web.client.RestTemplateBuilder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.core.env.Environment;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.client.ClientHttpResponse;
+import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
+import org.springframework.util.ResourceUtils;
+import org.springframework.web.client.ResponseErrorHandler;
+import org.springframework.web.client.RestTemplate;
+
+import javax.net.ssl.SSLContext;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.security.KeyStore;
+
+@TestConfiguration
+public class TraversalTestConfiguration {
+
+ private static final EELFLogger logger = EELFManager.getInstance().getLogger(TraversalTestConfiguration.class);
+
+ @Autowired
+ private Environment env;
+
+ /**
+ * Create a RestTemplate bean, using the RestTemplateBuilder provided
+ * by the auto-configuration.
+ */
+ @Bean
+ RestTemplate restTemplate(RestTemplateBuilder builder) throws Exception {
+
+ char[] trustStorePassword = env.getProperty("server.ssl.trust-store-password").toCharArray();
+ char[] keyStorePassword = env.getProperty("server.ssl.key-store-password").toCharArray();
+
+ String keyStore = env.getProperty("server.ssl.key-store");
+ String trustStore = env.getProperty("server.ssl.trust-store");
+
+ SSLContextBuilder sslContextBuilder = SSLContextBuilder.create();
+
+ if(env.acceptsProfiles("two-way-ssl")){
+ sslContextBuilder = sslContextBuilder.loadKeyMaterial(loadPfx(keyStore, keyStorePassword), keyStorePassword);
+ }
+
+ SSLContext sslContext = sslContextBuilder
+ .loadTrustMaterial(ResourceUtils.getFile(trustStore), trustStorePassword)
+ .build();
+
+ HttpClient client = HttpClients.custom()
+ .setSSLContext(sslContext)
+ .setSSLHostnameVerifier((s, sslSession) -> true)
+ .build();
+
+ RestTemplate restTemplate = builder
+ .requestFactory(new HttpComponentsClientHttpRequestFactory(client))
+ .build();
+
+ restTemplate.setErrorHandler(new ResponseErrorHandler() {
+ @Override
+ public boolean hasError(ClientHttpResponse clientHttpResponse) throws IOException {
+ if (clientHttpResponse.getStatusCode() != HttpStatus.OK) {
+
+ logger.debug("Status code: " + clientHttpResponse.getStatusCode());
+
+ if (clientHttpResponse.getStatusCode() == HttpStatus.FORBIDDEN) {
+ logger.debug("Call returned a error 403 forbidden resposne ");
+ return true;
+ }
+
+ if(clientHttpResponse.getRawStatusCode() % 100 == 5){
+ logger.debug("Call returned a error " + clientHttpResponse.getStatusText());
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ @Override
+ public void handleError(ClientHttpResponse clientHttpResponse) throws IOException {
+ }
+ });
+
+ return restTemplate;
+ }
+
+ private KeyStore loadPfx(String file, char[] password) throws Exception {
+ KeyStore keyStore = KeyStore.getInstance("PKCS12");
+ File key = ResourceUtils.getFile(file);
+ try (InputStream in = new FileInputStream(key)) {
+ keyStore.load(in, password);
+ }
+ return keyStore;
+ }
+}
diff --git a/aai-traversal/src/test/java/org/onap/aai/dbgraphgen/ModelBasedProcessingInvalidDataTest.java b/aai-traversal/src/test/java/org/onap/aai/dbgraphgen/ModelBasedProcessingInvalidDataTest.java
index bd3705e..64d77a9 100644
--- a/aai-traversal/src/test/java/org/onap/aai/dbgraphgen/ModelBasedProcessingInvalidDataTest.java
+++ b/aai-traversal/src/test/java/org/onap/aai/dbgraphgen/ModelBasedProcessingInvalidDataTest.java
@@ -38,7 +38,6 @@ import com.thinkaurelius.titan.graphdb.types.system.EmptyVertex;
import com.thinkaurelius.titan.graphdb.types.vertices.EdgeLabelVertex;
import com.thinkaurelius.titan.graphdb.types.vertices.PropertyKeyVertex;
import org.apache.commons.lang.ObjectUtils;
-import org.apache.openjpa.kernel.exps.Exp;
import org.apache.tinkerpop.gremlin.structure.Graph;
import org.apache.tinkerpop.gremlin.structure.T;
import org.apache.tinkerpop.gremlin.structure.Vertex;
@@ -81,7 +80,7 @@ public class ModelBasedProcessingInvalidDataTest {
@BeforeClass
public static void configure() throws Exception {
System.setProperty("AJSC_HOME", ".");
- System.setProperty("BUNDLECONFIG_DIR", "bundleconfig-local");
+ System.setProperty("BUNDLECONFIG_DIR", "src/main/resources");
loader = LoaderFactory.createLoaderForVersion(ModelType.MOXY, AAIProperties.LATEST);
diff --git a/aai-traversal/src/test/java/org/onap/aai/dbgraphgen/ModelBasedProcessingTest.java b/aai-traversal/src/test/java/org/onap/aai/dbgraphgen/ModelBasedProcessingTest.java
index 406d122..dc8871d 100644
--- a/aai-traversal/src/test/java/org/onap/aai/dbgraphgen/ModelBasedProcessingTest.java
+++ b/aai-traversal/src/test/java/org/onap/aai/dbgraphgen/ModelBasedProcessingTest.java
@@ -74,10 +74,9 @@ public class ModelBasedProcessingTest {
@BeforeClass
public static void configure() throws Exception {
System.setProperty("AJSC_HOME", ".");
- System.setProperty("BUNDLECONFIG_DIR", "bundleconfig-local");
+ System.setProperty("BUNDLECONFIG_DIR", "src/main/resources");
loader = LoaderFactory.createLoaderForVersion(ModelType.MOXY, AAIProperties.LATEST);
-
}
@Before
diff --git a/aai-traversal/src/test/java/org/onap/aai/dbgraphmap/SearchGraphNamedQueryTest.java b/aai-traversal/src/test/java/org/onap/aai/dbgraphmap/SearchGraphNamedQueryTest.java
index 552dbe4..029565d 100644
--- a/aai-traversal/src/test/java/org/onap/aai/dbgraphmap/SearchGraphNamedQueryTest.java
+++ b/aai-traversal/src/test/java/org/onap/aai/dbgraphmap/SearchGraphNamedQueryTest.java
@@ -98,7 +98,7 @@ public class SearchGraphNamedQueryTest {
}
private void addWidgets() {
- String widgetPath = "." + AAIConstants.AAI_FILESEP + "bundleconfig-local" + AAIConstants.AAI_FILESEP + "etc" +
+ String widgetPath = "." + AAIConstants.AAI_FILESEP + "src/main/resources" + AAIConstants.AAI_FILESEP + "etc" +
AAIConstants.AAI_FILESEP + "scriptdata"+ AAIConstants.AAI_FILESEP + "widget-model-json";
File dir = new File(widgetPath);
@@ -120,7 +120,7 @@ public class SearchGraphNamedQueryTest {
}
private void addNamedQueries() {
- String namedQueryPath = "." + AAIConstants.AAI_FILESEP + "bundleconfig-local" + AAIConstants.AAI_FILESEP + "etc" +
+ String namedQueryPath = "." + AAIConstants.AAI_FILESEP + "src/main/resources" + AAIConstants.AAI_FILESEP + "etc" +
AAIConstants.AAI_FILESEP + "scriptdata"+ AAIConstants.AAI_FILESEP + "named-query-json";
File dir = new File(namedQueryPath);
@@ -152,7 +152,7 @@ public class SearchGraphNamedQueryTest {
httpTestUtil = new HttpTestUtil();
System.setProperty("AJSC_HOME", ".");
- System.setProperty("BUNDLECONFIG_DIR", "bundleconfig-local");
+ System.setProperty("BUNDLECONFIG_DIR", "src/main/resources");
searchGraph = new SearchGraph();
diff --git a/aai-traversal/src/test/java/org/onap/aai/dbgraphmap/SearchGraphTest.java b/aai-traversal/src/test/java/org/onap/aai/dbgraphmap/SearchGraphTest.java
index f624828..ba108a6 100644
--- a/aai-traversal/src/test/java/org/onap/aai/dbgraphmap/SearchGraphTest.java
+++ b/aai-traversal/src/test/java/org/onap/aai/dbgraphmap/SearchGraphTest.java
@@ -27,7 +27,6 @@ import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSo
import org.apache.tinkerpop.gremlin.structure.Graph;
import org.apache.tinkerpop.gremlin.structure.Vertex;
import org.apache.tinkerpop.gremlin.structure.VertexProperty;
-import org.apache.velocity.util.ArrayListWrapper;
import org.eclipse.persistence.dynamic.DynamicEntity;
import org.junit.Assert;
import org.junit.Before;
@@ -100,7 +99,7 @@ public class SearchGraphTest {
public void setup(){
System.setProperty("AJSC_HOME", ".");
- System.setProperty("BUNDLECONFIG_DIR", "bundleconfig-local");
+ System.setProperty("BUNDLECONFIG_DIR", "src/main/resources");
searchGraph = new SearchGraph();
@@ -376,4 +375,4 @@ public class SearchGraphTest {
searchGraph.runNodesQuery(httpHeaders,"model-ver",edgeFilter,
filter,dbEngine,loader,urlBuilder);
}
-} \ No newline at end of file
+}
diff --git a/aai-traversal/src/test/java/org/onap/aai/interceptors/AAILogJAXRSInInterceptorTest.java b/aai-traversal/src/test/java/org/onap/aai/interceptors/AAILogJAXRSInInterceptorTest.java
deleted file mode 100644
index 40de5a9..0000000
--- a/aai-traversal/src/test/java/org/onap/aai/interceptors/AAILogJAXRSInInterceptorTest.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 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.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.onap.aai.interceptors;
-
-import org.apache.cxf.message.Exchange;
-import org.apache.cxf.message.ExchangeImpl;
-import org.apache.cxf.message.Message;
-import org.junit.Before;
-import org.junit.Test;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static org.mockito.Mockito.*;
-
-public class AAILogJAXRSInInterceptorTest {
-
- private AAILogJAXRSInInterceptor aaiLogJAXRSInInterceptor;
-
- private Message message;
- private Exchange exchange;
- private InputStream is;
- private Map<String, List<String>> headers;
-
-
- @Before
- public void setup(){
-
- aaiLogJAXRSInInterceptor = new AAILogJAXRSInInterceptor();
-
- message = mock(Message.class);
- exchange = spy(new ExchangeImpl());
-
- is = getClass().getClassLoader().getResourceAsStream("logback.xml");
-
- headers = new HashMap<>();
- headers.put("X-FromAppId", Arrays.asList("JUNIT"));
- headers.put("X-TransactionId", Arrays.asList("JUNIT"));
- headers.put("Content-Type", Arrays.asList("application/json"));
- headers.put("Accept", Arrays.asList("application/json"));
- }
-
- @Test
- public void testHandleMessageWhenNotCamelRequest() throws IOException {
-
- when(message.getExchange()).thenReturn(exchange);
- when(message.getContent(InputStream.class)).thenReturn(is);
- when(message.get(Message.PROTOCOL_HEADERS)).thenReturn(headers);
- when(message.get(Message.CONTENT_TYPE)).thenReturn("*/*");
-
- when(message.get("CamelHttpUrl")).thenReturn("/somestring");
- aaiLogJAXRSInInterceptor.handleMessage(message);
- }
-
- @Test
- public void testHandleMessageWhenUUIDHasMultiple() throws IOException {
-
- Map<String, List<String>> headers = new HashMap<>();
-
- headers.put("X-FromAppId", Arrays.asList("JUNIT"));
- headers.put("X-TransactionId", Arrays.asList("jfasodjf:fjaosjfidsaj:afsidjfaodfja"));
- headers.put("Content-Type", Arrays.asList("application/json"));
- headers.put("Accept", Arrays.asList("application/json"));
-
- when(message.getExchange()).thenReturn(exchange);
- when(message.getContent(InputStream.class)).thenReturn(is);
- when(message.get(Message.PROTOCOL_HEADERS)).thenReturn(headers);
- when(message.get(Message.CONTENT_TYPE)).thenReturn("*/*");
-
- when(message.get("CamelHttpUrl")).thenReturn("/somestring");
- aaiLogJAXRSInInterceptor.handleMessage(message);
- }
-
- @Test
- public void testHandleMessageWhenMissingTransactionId() throws IOException {
-
- Map<String, List<String>> headers = new HashMap<>();
-
- headers.put("X-FromAppId", Arrays.asList("JUNIT"));
- headers.put("Content-Type", Arrays.asList("application/json"));
- headers.put("Accept", Arrays.asList("application/json"));
-
- when(message.getExchange()).thenReturn(exchange);
- when(message.getContent(InputStream.class)).thenReturn(is);
- when(message.get(Message.PROTOCOL_HEADERS)).thenReturn(headers);
- when(message.get(Message.CONTENT_TYPE)).thenReturn("*/*");
-
- when(message.get("CamelHttpUrl")).thenReturn("/somestring");
- aaiLogJAXRSInInterceptor.handleMessage(message);
- }
-
- @Test
- public void testHandleMessageWhenMissingContentType() throws IOException {
-
- Map<String, List<String>> headers = new HashMap<>();
-
- headers.put("X-FromAppId", Arrays.asList("JUNIT"));
- headers.put("X-TransactionId", Arrays.asList("jfasodjf:fjaosjfidsaj:afsidjfaodfja"));
- headers.put("Accept", Arrays.asList("application/json"));
-
- when(message.getExchange()).thenReturn(exchange);
- when(message.getContent(InputStream.class)).thenReturn(is);
- when(message.get(Message.PROTOCOL_HEADERS)).thenReturn(headers);
- when(message.get(Message.CONTENT_TYPE)).thenReturn("*/*");
-
- when(message.get("CamelHttpUrl")).thenReturn("/somestring");
- aaiLogJAXRSInInterceptor.handleMessage(message);
- }
-
- @Test
- public void testHandleMessageWhenQueryExistsAndUriEcho() throws IOException {
-
- Map<String, List<String>> headers = new HashMap<>();
-
- headers.put("X-FromAppId", Arrays.asList("JUNIT"));
- headers.put("X-TransactionId", Arrays.asList("jfasodjf:fjaosjfidsaj:afsidjfaodfja"));
- headers.put("Content-Type", Arrays.asList("application/json"));
- headers.put("Accept", Arrays.asList("application/json"));
-
- when(message.getExchange()).thenReturn(exchange);
- when(message.getContent(InputStream.class)).thenReturn(is);
- when(message.get(Message.PROTOCOL_HEADERS)).thenReturn(headers);
- when(message.get(Message.CONTENT_TYPE)).thenReturn("*/*");
- when(message.get(Message.QUERY_STRING)).thenReturn(null);
- when(exchange.containsKey("AAI_LOGGING_HBASE_ENABLED")).thenReturn(true);
- when(exchange.remove("AAI_LOGGING_HBASE_ENABLED")).thenReturn("");
- when(exchange.containsKey("AAI_LOGGING_TRACE_ENABLED")).thenReturn(true);
- when(exchange.remove("AAI_LOGGING_TRACE_ENABLED")).thenReturn("");
- when(message.get("CamelHttpUrl")).thenReturn("/util/echo");
- aaiLogJAXRSInInterceptor.handleMessage(message);
- }
-
- @Test
- public void testHandleMessageWhenQueryExistsAndUriTranslog() throws IOException {
-
- Map<String, List<String>> headers = new HashMap<>();
-
- headers.put("X-FromAppId", Arrays.asList("JUNIT"));
- headers.put("X-TransactionId", Arrays.asList("jfasodjf:fjaosjfidsaj:afsidjfaodfja"));
- headers.put("Content-Type", Arrays.asList("application/json"));
- headers.put("Accept", Arrays.asList("application/json"));
-
- when(message.getExchange()).thenReturn(exchange);
- when(message.getContent(InputStream.class)).thenReturn(is);
- when(message.get(Message.PROTOCOL_HEADERS)).thenReturn(headers);
- when(message.get(Message.CONTENT_TYPE)).thenReturn("*/*");
- when(message.get(Message.QUERY_STRING)).thenReturn(null);
- when(exchange.containsKey("AAI_LOGGING_HBASE_ENABLED")).thenReturn(true);
- when(exchange.remove("AAI_LOGGING_HBASE_ENABLED")).thenReturn("");
- when(exchange.containsKey("AAI_LOGGING_TRACE_ENABLED")).thenReturn(true);
- when(exchange.remove("AAI_LOGGING_TRACE_ENABLED")).thenReturn("");
- when(message.get("CamelHttpUrl")).thenReturn("/translog/");
- aaiLogJAXRSInInterceptor.handleMessage(message);
- }
-
- @Test
- public void testHandleMessageWhenPutMessageKeyReturnsException() throws IOException {
-
- Map<String, List<String>> headers = new HashMap<>();
-
- headers.put("X-FromAppId", Arrays.asList("JUNIT"));
- headers.put("X-TransactionId", Arrays.asList("jfasodjf:fjaosjfidsaj:afsidjfaodfja"));
- headers.put("Content-Type", Arrays.asList("application/json"));
- headers.put("Accept", Arrays.asList("application/json"));
-
- when(message.getExchange()).thenReturn(exchange);
- when(message.getContent(InputStream.class)).thenReturn(is);
- when(message.get(Message.PROTOCOL_HEADERS)).thenReturn(headers);
- when(message.get(Message.CONTENT_TYPE)).thenReturn("*/*");
- when(message.get(Message.QUERY_STRING)).thenReturn(null);
- when(exchange.containsKey("AAI_LOGGING_HBASE_ENABLED")).thenReturn(true);
- when(exchange.remove("AAI_LOGGING_HBASE_ENABLED")).thenReturn("");
- when(exchange.containsKey("AAI_LOGGING_TRACE_ENABLED")).thenReturn(true);
- when(exchange.remove("AAI_LOGGING_TRACE_ENABLED")).thenReturn("");
- when(message.get("CamelHttpUrl")).thenReturn("/translog/");
- when(message.get(Message.ENCODING)).thenReturn("http");
- when(message.get(Message.RESPONSE_CODE)).thenReturn(200);
-
- aaiLogJAXRSInInterceptor.handleMessage(message);
- }
-} \ No newline at end of file
diff --git a/aai-traversal/src/test/java/org/onap/aai/interceptors/AAILogJAXRSOutInterceptorTest.java b/aai-traversal/src/test/java/org/onap/aai/interceptors/AAILogJAXRSOutInterceptorTest.java
deleted file mode 100644
index 52c6a42..0000000
--- a/aai-traversal/src/test/java/org/onap/aai/interceptors/AAILogJAXRSOutInterceptorTest.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 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.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.onap.aai.interceptors;
-
-import org.apache.cxf.io.CacheAndWriteOutputStream;
-import org.apache.cxf.message.Exchange;
-import org.apache.cxf.message.ExchangeImpl;
-import org.apache.cxf.message.Message;
-import org.junit.Before;
-import org.junit.Test;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static org.mockito.Mockito.*;
-
-public class AAILogJAXRSOutInterceptorTest {
-
- private AAILogJAXRSOutInterceptor aaiLogJAXRSOutInterceptor;
-
- private Message message;
- private Exchange exchange;
- private OutputStream out;
- private Map<String, List<String>> headers;
- private Message outMessage;
- private Message inMessage;
-
-
- @Before
- public void setup(){
-
- aaiLogJAXRSOutInterceptor = new AAILogJAXRSOutInterceptor();
-
- message = mock(Message.class);
- exchange = spy(new ExchangeImpl());
- out = mock(OutputStream.class);
- outMessage = mock(Message.class);
- inMessage = mock(Message.class);
-
-
- headers = new HashMap<>();
- headers.put("X-FromAppId", Arrays.asList("JUNIT"));
- headers.put("X-TransactionId", Arrays.asList("JUNIT"));
- headers.put("Content-Type", Arrays.asList("application/json"));
- headers.put("Accept", Arrays.asList("application/json"));
- }
-
- @Test
- public void testHandleMessageWhenNotCamelRequest() throws IOException {
-
- when(message.getExchange()).thenReturn(exchange);
- when(message.getContent(OutputStream.class)).thenReturn(out);
- when(message.get(Message.PROTOCOL_HEADERS)).thenReturn(headers);
- when(message.get(Message.CONTENT_TYPE)).thenReturn("*/*");
- when(exchange.getOutMessage()).thenReturn(outMessage);
- when(outMessage.getContent(OutputStream.class)).thenReturn(out);
- when(exchange.containsKey("AAI_LOGGING_HBASE_ENABLED")).thenReturn(true);
- when(exchange.remove("AAI_LOGGING_HBASE_ENABLED")).thenReturn("");
-
- when(message.get("CamelHttpUrl")).thenReturn("/somestring");
- aaiLogJAXRSOutInterceptor.handleMessage(message);
- }
-
- @Test
- public void testLogCallBack(){
-
- when(message.getExchange()).thenReturn(exchange);
- when(message.getContent(OutputStream.class)).thenReturn(out);
- when(message.get(Message.PROTOCOL_HEADERS)).thenReturn(headers);
- when(message.get(Message.CONTENT_TYPE)).thenReturn("*/*");
- when(exchange.getOutMessage()).thenReturn(outMessage);
-
- when(outMessage.getContent(OutputStream.class)).thenReturn(out);
- when(exchange.containsKey("AAI_LOGGING_HBASE_ENABLED")).thenReturn(true);
- when(exchange.remove("AAI_LOGGING_HBASE_ENABLED")).thenReturn("");
- when(exchange.getInMessage()).thenReturn(inMessage);
-
- when(inMessage.getExchange()).thenReturn(exchange);
- when(inMessage.getContent(OutputStream.class)).thenReturn(out);
- when(inMessage.get(Message.PROTOCOL_HEADERS)).thenReturn(headers);
- when(inMessage.get(Message.CONTENT_TYPE)).thenReturn("*/*");
-
- AAILogJAXRSOutInterceptor.LoggingCallback loggingCallback = new AAILogJAXRSOutInterceptor().new LoggingCallback(message, out);
- final CacheAndWriteOutputStream newOut = new CacheAndWriteOutputStream(out);
- loggingCallback.onClose(newOut);
- }
-
-} \ No newline at end of file
diff --git a/aai-traversal/src/test/java/org/onap/aai/interceptors/PostAaiAjscInterceptorTest.java b/aai-traversal/src/test/java/org/onap/aai/interceptors/PostAaiAjscInterceptorTest.java
deleted file mode 100644
index fcc1ee3..0000000
--- a/aai-traversal/src/test/java/org/onap/aai/interceptors/PostAaiAjscInterceptorTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 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.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.onap.aai.interceptors;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mockito;
-import org.onap.aai.logging.LoggingContext;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-public class PostAaiAjscInterceptorTest {
-
- private PostAaiAjscInterceptor postAaiAjscInterceptor;
-
- @Before
- public void setup(){
- postAaiAjscInterceptor = new PostAaiAjscInterceptor();
- }
-
- @Test
- public void getInstance() throws Exception {
- PostAaiAjscInterceptor interceptor = PostAaiAjscInterceptor.getInstance();
- assertNotNull(interceptor);
- }
-
- @Test
- public void testAllowOrRejectIfSuccess() throws Exception {
-
- HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
- HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
- response.setStatus(200);
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("/fadsjoifj"));
-
- boolean success = postAaiAjscInterceptor.allowOrReject(request, response, null);
-
- assertTrue("Expecting the post interceptor to return success regardless", success);
- }
-
- @Test
- public void testAllowOrRejectIfFailure() throws Exception {
-
- HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
- HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
- response.setStatus(400);
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("/fadsjoifj"));
-
- boolean success = postAaiAjscInterceptor.allowOrReject(request, response, null);
-
- assertTrue("Expecting the post interceptor to return success regardless", success);
- }
-} \ No newline at end of file
diff --git a/aai-traversal/src/test/java/org/onap/aai/interceptors/PreAaiAjscInterceptorTest.java b/aai-traversal/src/test/java/org/onap/aai/interceptors/PreAaiAjscInterceptorTest.java
deleted file mode 100644
index 35651c3..0000000
--- a/aai-traversal/src/test/java/org/onap/aai/interceptors/PreAaiAjscInterceptorTest.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 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.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.onap.aai.interceptors;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mockito;
-
-import javax.servlet.http.HttpServletRequest;
-
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.anyString;
-
-public class PreAaiAjscInterceptorTest {
-
- private PreAaiAjscInterceptor preAaiAjscInterceptor;
-
- @Before
- public void setup(){
- preAaiAjscInterceptor = new PreAaiAjscInterceptor();
- }
-
- @Test
- public void getInstance() throws Exception {
- PreAaiAjscInterceptor interceptor = PreAaiAjscInterceptor.getInstance();
- assertNotNull(interceptor);
- }
-
- @Test
- public void testAllowOrRejectIfSuccess() throws Exception {
-
- HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
-
- Mockito.when(request.getRequestURI()).thenReturn("/fadsjoifj");
- Mockito.when(request.getHeader(anyString())).thenReturn("JUNIT-Test");
- Mockito.when(request.getMethod()).thenReturn("GET");
-
- boolean success = preAaiAjscInterceptor.allowOrReject(request, null, null);
-
- assertTrue("Expecting the post interceptor to return success regardless", success);
- }
-
-} \ No newline at end of file
diff --git a/aai-traversal/src/test/java/org/onap/aai/rest/search/GetCustomQueryConfigTest.java b/aai-traversal/src/test/java/org/onap/aai/rest/search/GetCustomQueryConfigTest.java
index 9001f48..5988b43 100644
--- a/aai-traversal/src/test/java/org/onap/aai/rest/search/GetCustomQueryConfigTest.java
+++ b/aai-traversal/src/test/java/org/onap/aai/rest/search/GetCustomQueryConfigTest.java
@@ -16,7 +16,7 @@ public class GetCustomQueryConfigTest {
@Before
public void setUp() throws Exception {
System.setProperty("AJSC_HOME", ".");
- System.setProperty("BUNDLECONFIG_DIR", "bundleconfig-local");
+ System.setProperty("BUNDLECONFIG_DIR", "src/main/resources");
configJson = "{\n \"stored-queries\": [{\n" +
diff --git a/aai-traversal/src/test/java/org/onap/aai/rest/search/ModelAndNamedQueryRestProviderTest.java b/aai-traversal/src/test/java/org/onap/aai/rest/search/ModelAndNamedQueryRestProviderTest.java
index 9ab7bc5..2acf5ec 100644
--- a/aai-traversal/src/test/java/org/onap/aai/rest/search/ModelAndNamedQueryRestProviderTest.java
+++ b/aai-traversal/src/test/java/org/onap/aai/rest/search/ModelAndNamedQueryRestProviderTest.java
@@ -89,7 +89,7 @@ public class ModelAndNamedQueryRestProviderTest {
public void setup(){
logger.info("Starting the setup for the integration tests of Rest Endpoints");
System.setProperty("AJSC_HOME", ".");
- System.setProperty("BUNDLECONFIG_DIR", "bundleconfig-local");
+ System.setProperty("BUNDLECONFIG_DIR", "src/main/resources");
modelAndNamedQueryRestProvider = new ModelAndNamedQueryRestProvider();
httpHeaders = mock(HttpHeaders.class);
diff --git a/aai-traversal/src/test/java/org/onap/aai/rest/search/QueryTest.java b/aai-traversal/src/test/java/org/onap/aai/rest/search/QueryTest.java
index ae54449..25d91ce 100644
--- a/aai-traversal/src/test/java/org/onap/aai/rest/search/QueryTest.java
+++ b/aai-traversal/src/test/java/org/onap/aai/rest/search/QueryTest.java
@@ -73,7 +73,7 @@ public abstract class QueryTest {
public void setUp() throws AAIException, NoEdgeRuleFoundException {
System.setProperty("AJSC_HOME", ".");
- System.setProperty("BUNDLECONFIG_DIR", "bundleconfig-local");
+ System.setProperty("BUNDLECONFIG_DIR", "src/main/resources");
MockitoAnnotations.initMocks(this);
graph = TinkerGraph.open();
createGraph();
diff --git a/aai-traversal/src/test/java/org/onap/aai/rest/search/SearchProviderTest.java b/aai-traversal/src/test/java/org/onap/aai/rest/search/SearchProviderTest.java
index bb04653..102bc2f 100644
--- a/aai-traversal/src/test/java/org/onap/aai/rest/search/SearchProviderTest.java
+++ b/aai-traversal/src/test/java/org/onap/aai/rest/search/SearchProviderTest.java
@@ -85,7 +85,7 @@ public class SearchProviderTest {
public void setup(){
logger.info("Starting the setup for the integration tests of Rest Endpoints");
System.setProperty("AJSC_HOME", ".");
- System.setProperty("BUNDLECONFIG_DIR", "bundleconfig-local");
+ System.setProperty("BUNDLECONFIG_DIR", "src/main/resources");
searchProvider = new SearchProvider();
httpHeaders = mock(HttpHeaders.class);
diff --git a/aai-traversal/src/test/java/org/onap/aai/rest/search/SimpleFormatTest.java b/aai-traversal/src/test/java/org/onap/aai/rest/search/SimpleFormatTest.java
index 17ddfc5..106bb44 100644
--- a/aai-traversal/src/test/java/org/onap/aai/rest/search/SimpleFormatTest.java
+++ b/aai-traversal/src/test/java/org/onap/aai/rest/search/SimpleFormatTest.java
@@ -76,7 +76,7 @@ public class SimpleFormatTest {
public void setUp() throws AAIException, NoEdgeRuleFoundException {
System.setProperty("AJSC_HOME", ".");
- System.setProperty("BUNDLECONFIG_DIR", "bundleconfig-local");
+ System.setProperty("BUNDLECONFIG_DIR", "src/main/resources");
MockitoAnnotations.initMocks(this);
graph = TinkerGraph.open();
loader = LoaderFactory.createLoaderForVersion(ModelType.MOXY, Version.v10);
diff --git a/aai-traversal/src/test/java/org/onap/aai/retiredcustomer/JaxrsUserServiceTest.java b/aai-traversal/src/test/java/org/onap/aai/retiredcustomer/JaxrsUserServiceTest.java
deleted file mode 100644
index 3e323dd..0000000
--- a/aai-traversal/src/test/java/org/onap/aai/retiredcustomer/JaxrsUserServiceTest.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 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.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.onap.aai.retiredcustomer;
-
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mockito;
-import org.onap.aai.ajsc_aai.JaxrsUserService;
-import org.onap.aai.introspection.Version;
-import org.onap.aai.rest.retired.RetiredConsumer;
-
-import javax.ws.rs.core.*;
-import java.util.*;
-
-import static org.junit.Assert.assertNotNull;
-import static org.mockito.Matchers.anyObject;
-import static org.mockito.Mockito.when;
-
-public class JaxrsUserServiceTest {
-
-
- protected static final MediaType APPLICATION_JSON = MediaType.valueOf("application/json");
-
- private static final Set<Integer> VALID_HTTP_STATUS_CODES = new HashSet<>();
-
- static {
- VALID_HTTP_STATUS_CODES.add(200);
- VALID_HTTP_STATUS_CODES.add(201);
- VALID_HTTP_STATUS_CODES.add(204);
- }
-
- protected JaxrsUserService jaxrsUserService;
- protected HttpHeaders httpHeaders;
- protected UriInfo uriInfo;
-
- private MultivaluedMap<String, String> headersMultiMap;
- private MultivaluedMap<String, String> queryParameters;
-
- private List<String> aaiRequestContextList;
-
- private List<MediaType> outputMediaTypes;
-
- private static final EELFLogger logger = EELFManager.getInstance().getLogger(RetiredConsumer.class.getName());
-
- @Before
- public void setup(){
- logger.info("Starting the setup for the integration tests of Rest Endpoints");
-
- jaxrsUserService = new JaxrsUserService();
- httpHeaders = Mockito.mock(HttpHeaders.class);
- uriInfo = Mockito.mock(UriInfo.class);
-
- headersMultiMap = new MultivaluedHashMap<>();
- queryParameters = Mockito.spy(new MultivaluedHashMap<>());
-
- headersMultiMap.add("X-FromAppId", "JUNIT");
- headersMultiMap.add("X-TransactionId", UUID.randomUUID().toString());
- headersMultiMap.add("Real-Time", "true");
- headersMultiMap.add("Accept", "application/json");
- headersMultiMap.add("aai-request-context", "");
-
- outputMediaTypes = new ArrayList<>();
- outputMediaTypes.add(APPLICATION_JSON);
-
- aaiRequestContextList = new ArrayList<>();
- aaiRequestContextList.add("");
-
- when(httpHeaders.getAcceptableMediaTypes()).thenReturn(outputMediaTypes);
- when(httpHeaders.getRequestHeaders()).thenReturn(headersMultiMap);
-
- when(httpHeaders.getRequestHeader("aai-request-context")).thenReturn(aaiRequestContextList);
-
-
- when(uriInfo.getQueryParameters()).thenReturn(queryParameters);
- when(uriInfo.getQueryParameters(false)).thenReturn(queryParameters);
-
- // TODO - Check if this is valid since RemoveDME2QueryParameters seems to be very unreasonable
- Mockito.doReturn(null).when(queryParameters).remove(anyObject());
-
- when(httpHeaders.getMediaType()).thenReturn(APPLICATION_JSON);
- }
- @Test
- public void lookUpUserTest(){
- when(uriInfo.getPath()).thenReturn("/user?userID1");
- String response = jaxrsUserService.lookupUser("userID1");
- assertNotNull(response);
-
-
- }
-}
diff --git a/aai-traversal/src/test/java/org/onap/aai/util/AAIAppServletContextListenerTest.java b/aai-traversal/src/test/java/org/onap/aai/util/AAIAppServletContextListenerTest.java
deleted file mode 100644
index 9573d1f..0000000
--- a/aai-traversal/src/test/java/org/onap/aai/util/AAIAppServletContextListenerTest.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 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.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.onap.aai.util;
-
-import ch.qos.logback.classic.Level;
-import ch.qos.logback.classic.Logger;
-import ch.qos.logback.classic.PatternLayout;
-import ch.qos.logback.classic.spi.ILoggingEvent;
-import ch.qos.logback.core.AppenderBase;
-import org.apache.commons.lang.ObjectUtils;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Rule;
-import org.junit.Test;
-import org.onap.aai.dbmap.AAIGraph;
-import org.onap.aai.logging.ErrorLogHelper;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.agent.PowerMockAgent;
-import org.powermock.modules.junit4.rule.PowerMockRule;
-import org.slf4j.LoggerFactory;
-
-import javax.servlet.ServletContextEvent;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-@PrepareForTest({AAIGraph.class, AAIConfig.class, ErrorLogHelper.class})
-public class AAIAppServletContextListenerTest {
-
- @Rule
- public PowerMockRule rule = new PowerMockRule();
-
- static {
- PowerMockAgent.initializeIfNeeded();
- }
-
- private ServletContextEvent arg;
- private AAIAppServletContextListener listener;
-
- /**
- * Initialize.
- */
- @Before
- @PrepareForTest({AAIGraph.class, AAIConfig.class, ErrorLogHelper.class})
- public void initialize(){
- arg = PowerMockito.mock(ServletContextEvent.class);
- PowerMockito.mockStatic(AAIGraph.class);
- PowerMockito.mockStatic(AAIConfig.class);
- PowerMockito.mockStatic(ErrorLogHelper.class);
-
- listener = new AAIAppServletContextListener();
- configureLog();
- }
-
- /**
- * Test contextDestroyed.
- */
- @Test(expected = NullPointerException.class)
- @Ignore
- public void testContextDestroyed(){
- listener.contextDestroyed(arg);
- assertTrue(logContains(Level.DEBUG, "AAI Server shutdown"));
- assertTrue(logContains(Level.INFO, "AAI graph shutdown"));
- }
-
- /**
- * Test contextInitialized.
- */
- @Test
- //@Ignore
- public void testContextInitialized(){
- listener.contextInitialized(arg);
- assertFalse(logContains(Level.DEBUG, "Loading aaiconfig.properties"));
- assertFalse(logContains(Level.DEBUG, "Loading error.properties"));
- assertFalse(logContains(Level.DEBUG, "Loading graph database"));
- assertFalse(logContains(Level.INFO, "AAI Server initialization"));
- }
-
-
- /**
- * Helper method to check if a String appears in the desired log level.
- *
- * @param level Log level to use
- * @param expected String to search for
- * @return True if search String is found, false otherwise
- */
- private boolean logContains(Level level, String expected) {
- String actual[] = RecordingAppender.messages();
- for (String log : actual) {
- if (log.contains(level.toString()) && log.contains(expected))
- return true;
- }
- return false;
- }
-
- /**
- * Set logging level, and initialize log-appender.
- */
- private void configureLog() {
- org.slf4j.Logger rootLogger = LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
- rootLogger.debug("debug");
- // rootLogger.();
- // rootLogger.addAppender(RecordingAppender.appender(new PatternLayout()));
- }
-
-}
-
-
-/**
- * Appender class that appends log messages to a String List when some logging event occurs
- */
-class RecordingAppender extends AppenderBase<ILoggingEvent> {
- private static List<String> messages = new ArrayList<String>();
- private static RecordingAppender appender = new RecordingAppender();
- private PatternLayout patternLayout;
-
- private RecordingAppender() {
- super();
- }
-
- /**
- * @param patternLayout Pattern to format log message
- * @return Current appender
- */
- public static RecordingAppender appender(PatternLayout patternLayout) {
- appender.patternLayout = patternLayout;
- appender.clear();
- return appender;
- }
-
- @Override
- protected void append(ILoggingEvent event) {
- messages.add(patternLayout.doLayout(event));
- }
-
- public void close() {}
-
- public boolean requiresLayout() {
- return false;
- }
-
- /**
- * @return Return logs as a String array
- */
- public static String[] messages() {
- return (String[]) messages.toArray(new String[messages.size()]);
- }
-
- /**
- * Clear the message container
- */
- private void clear() {
- messages.clear();
- }
-
-}
diff --git a/aai-traversal/src/test/resources/application-test.properties b/aai-traversal/src/test/resources/application-test.properties
new file mode 100644
index 0000000..9b6934b
--- /dev/null
+++ b/aai-traversal/src/test/resources/application-test.properties
@@ -0,0 +1,70 @@
+# The following info parameters are being referenced by ajsc6
+info.build.artifact=aai-traversal
+info.build.name=traversal
+info.build.description=Traversal Microservice
+info.build.version=1.1.0
+
+spring.application.name=aai-traversal
+spring.jersey.type=filter
+
+server.contextPath=/
+spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
+
+spring.profiles.active=production
+#The max number of active threads in this pool
+server.tomcat.max-threads=200
+#The minimum number of threads always kept alive
+server.tomcat.min-Spare-Threads=25
+#The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads
+server.tomcat.max-idle-time=60000
+
+
+#Add this properties only if you want to change the URL, AJSC Framework interceptors will intercept
+#com.att.ajsc.common.interceptors.PreInterceptor.url=/**
+#com.att.ajsc.common.interceptors.PostInterceptor.url=/**
+
+#Servlet context parameters
+server.context_parameters.p-name=value #context parameter with p-name as key and value as value.
+kubernetes.namespace=org-onap-aai
+
+# If you get an application startup failure that the port is already taken
+# If thats not it, please check if the key-store file path makes sense
+server.local.startpath=src/main/resources/
+server.basic.auth.location=${server.local.startpath}etc/auth/realm.properties
+
+server.port=8446
+server.ssl.enabled-protocols=TLSv1.1,TLSv1.2
+server.ssl.key-store=${server.local.startpath}etc/auth/aai_keystore
+server.ssl.key-store-password=password(OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0)
+server.ssl.trust-store=${server.local.startpath}etc/auth/aai_keystore
+server.ssl.trust-store-password=password(OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0)
+server.ssl.client-auth=want
+server.ssl.key-store-type=JKS
+
+# JMS bind address host port
+jms.bind.address=tcp://localhost:61647
+dmaap.ribbon.eureka.enabled=false
+dmaap.ribbon.listOfServers=localhost:3904
+# Number of milliseconds to wait before making ping requests again
+dmaap.ribbon.ServerListRefreshInterval=75000
+dmaap.ribbon.NFLoadBalancerPingInterval=75000
+dmaap.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.AvailabilityFilteringRule
+dmaap.ribbon.NFLoadBalancerPingClassName=org.onap.aai.config.HttpPingImpl
+dmaap.ribbon.EnableMarkingServerDownOnReachingFailureLimit=true
+dmaap.ribbon.ServerDownFailureLimit=1
+# This needs to be verified but it seems that adding this property should automatically
+# Make the dmaap client change the url from http to https depending on the server
+dmaap.ribbon.securePorts=3905
+
+# Custom Dmaap Specific Configuration
+dmaap.ribbon.health.endpoint=/topics/AAI-EVENT
+# Number of seconds to wait for the ping to work and might need to increase this if the pings are all failing
+dmaap.ribbon.pingport.timeout=3
+
+niws.loadbalancer.dmaap.filterCircuitTripped=true
+niws.loadbalancer.dmaap.connectionFailureCountThreshold=3
+niws.loadbalancer.dmaap.circuitTripMaxTimeoutSeconds=180
+#dmaap.ribbon.retryableStatusCodes=404,503
+#dmaap.ribbon.retryableStatusCodes.MaxAutoRetriesNextServer=2
+#dmaap.ribbon.retryableStatusCodes.MaxAutoRetries=2
+#dmaap.ribbon.retryableStatusCodes.OkToRetryOnAllOperations=true
diff --git a/aai-traversal/src/test/resources/bundleconfig-local/etc/auth/aai_policy.json b/aai-traversal/src/test/resources/bundleconfig-local/etc/auth/aai_policy.json
deleted file mode 100644
index 9706ce9..0000000
--- a/aai-traversal/src/test/resources/bundleconfig-local/etc/auth/aai_policy.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "roles": [{
- "name": "testRole",
- "functions": [{
- "name": "testFunction",
- "methods": [{
- "name": "GET"
- }, {
- "name": "DELETE"
- }, {
- "name": "PUT"
- }
- ]
- }
- ],
- "users": [{
- "username": "testUser"
- }
- ]
- }, {
- "name": "testBasicAuth",
- "functions": [{
- "name": "testBasicAuthFuncyion",
- "methods": [{
- "name": "GET"
- }
- ]
- }
- ],
- "users": [{
- "user": "testBasicAuthUser",
- "pass": "OBF:1ytc1vu91v2p1rxf1mqh1v8s1z0d1msn1san1mqf1z0h1v9u1msl1rvf1v1p1vv11yta"
- }
- ]
- }
- ]
-} \ No newline at end of file
diff --git a/aai-traversal/src/test/resources/log4j.properties b/aai-traversal/src/test/resources/log4j.properties
deleted file mode 100644
index 2e68f61..0000000
--- a/aai-traversal/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-log4j.logger.org.apache.zookeeper=WARN
-log4j.logger.org.apache.hadoop.hbase.zookeeper=WARN
-log4j.logger.org.apache.hadoop.hbase.client=WARN \ No newline at end of file
diff --git a/aai-traversal/src/test/resources/logback.xml b/aai-traversal/src/test/resources/logback.xml
index 38499e0..f79a189 100644
--- a/aai-traversal/src/test/resources/logback.xml
+++ b/aai-traversal/src/test/resources/logback.xml
@@ -22,14 +22,371 @@
-->
<configuration scan="true" scanPeriod="60 seconds" debug="false">
+ <statusListener class="ch.qos.logback.core.status.NopStatusListener" />
- <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %m%n</pattern>
- </encoder>
- </appender>
+ <property resource="application.properties" />
- <root level="INFO">
- <appender-ref ref="CONSOLE"/>
- </root>
+ <property name="namespace" value="aai-traversal"/>
+
+ <property name="AJSC_HOME" value="${AJSC_HOME:-.}" />
+ <jmxConfigurator />
+ <property name="logDirectory" value="${AJSC_HOME}/logs" />
+ <property name="eelfLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+ <property name="eelfAuditLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+ <property name="eelfMetricLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{targetVirtualEntity}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+ <!-- <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> -->
+ <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%ecompResponseCode|%ecompResponseDescription|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+ <property name="eelfTransLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{partnerName}:%m%n"/>
+
+ <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
+ <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
+ <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>
+ %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
+ </pattern>
+ </encoder>
+ </appender>
+
+ <appender name="SANE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/rest/sane.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/rest/sane.log.%d{yyyy-MM-dd}</fileNamePattern>
+ </rollingPolicy>
+ <encoder>
+ <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n
+ </pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncSANE" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>1000</queueSize>
+ <includeCallerData>true</includeCallerData>
+ <appender-ref ref="SANE" />
+ </appender>
+
+ <appender name="METRIC"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <level>INFO</level>
+ <onMatch>ACCEPT</onMatch>
+ <onMismatch>DENY</onMismatch>
+ </filter>
+ <file>${logDirectory}/rest/metrics.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/rest/metrics.log.%d{yyyy-MM-dd}
+ </fileNamePattern>
+ </rollingPolicy>
+ <encoder class="org.onap.aai.logging.EcompEncoder">
+ <pattern>${eelfMetricLogPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncMETRIC" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>1000</queueSize>
+ <includeCallerData>true</includeCallerData>
+ <appender-ref ref="METRIC" />
+ </appender>
+
+ <appender name="DEBUG"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <level>DEBUG</level>
+ <onMatch>ACCEPT</onMatch>
+ <onMismatch>DENY</onMismatch>
+ </filter>
+ <file>${logDirectory}/rest/debug.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/rest/debug.log.%d{yyyy-MM-dd}
+ </fileNamePattern>
+ </rollingPolicy>
+ <encoder class="org.onap.aai.logging.EcompEncoder">
+ <pattern>${eelfLogPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncDEBUG" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>1000</queueSize>
+ <includeCallerData>true</includeCallerData>
+ <appender-ref ref="DEBUG" />
+ </appender>
+
+ <appender name="ERROR"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>WARN</level>
+ </filter>
+ <file>${logDirectory}/rest/error.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/rest/error.log.%d{yyyy-MM-dd}
+ </fileNamePattern>
+ </rollingPolicy>
+ <encoder class="org.onap.aai.logging.EcompEncoder">
+ <pattern>${eelfErrorLogPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncERROR" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>1000</queueSize>
+ <includeCallerData>true</includeCallerData>
+ <appender-ref ref="ERROR" />
+ </appender>
+
+ <appender name="AUDIT"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/rest/audit.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/rest/audit.log.%d{yyyy-MM-dd}
+ </fileNamePattern>
+ </rollingPolicy>
+ <encoder class="org.onap.aai.logging.EcompEncoder">
+ <pattern>${eelfAuditLogPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncAUDIT" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>1000</queueSize>
+ <includeCallerData>true</includeCallerData>
+ <appender-ref ref="AUDIT" />
+ </appender>
+
+ <appender name="translog"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <level>DEBUG</level>
+ <onMatch>ACCEPT</onMatch>
+ <onMismatch>DENY</onMismatch>
+ </filter>
+ <file>${logDirectory}/rest/translog.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/rest/translog.log.%d{yyyy-MM-dd}
+ </fileNamePattern>
+ </rollingPolicy>
+ <encoder class="org.onap.aai.logging.EcompEncoder">
+ <pattern>${eelfTransLogPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asynctranslog" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>1000</queueSize>
+ <includeCallerData>true</includeCallerData>
+ <appender-ref ref="translog" />
+ </appender>
+
+ <appender name="dmaapAAIEventConsumer"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>WARN</level>
+ </filter>
+ <File>${logDirectory}/dmaapAAIEventConsumer/error.log</File>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/error.log.%d{yyyy-MM-dd}
+ </fileNamePattern>
+ </rollingPolicy>
+ <encoder class="org.onap.aai.logging.EcompEncoder">
+ <pattern>${eelfLogPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="dmaapAAIEventConsumerDebug"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <level>DEBUG</level>
+ <onMatch>ACCEPT</onMatch>
+ <onMismatch>DENY</onMismatch>
+ </filter>
+ <File>${logDirectory}/dmaapAAIEventConsumer/debug.log</File>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/debug.log.%d{yyyy-MM-dd}
+ </fileNamePattern>
+ </rollingPolicy>
+ <encoder class="org.onap.aai.logging.EcompEncoder">
+ <pattern>${eelfLogPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="dmaapAAIEventConsumerMetric"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <level>INFO</level>
+ <onMatch>ACCEPT</onMatch>
+ <onMismatch>DENY</onMismatch>
+ </filter>
+ <File>${logDirectory}/dmaapAAIEventConsumer/metrics.log</File>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/metrics.log.%d{yyyy-MM-dd}
+ </fileNamePattern>
+ </rollingPolicy>
+ <encoder class="org.onap.aai.logging.EcompEncoder">
+ <pattern>${eelfMetricLogPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="external"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>WARN</level>
+ </filter>
+ <file>${logDirectory}/external/external.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/external/external.log.%d{yyyy-MM-dd}
+ </fileNamePattern>
+ </rollingPolicy>
+ <encoder class="org.onap.aai.logging.EcompEncoder">
+ <pattern>${eelfLogPattern}</pattern>
+ </encoder>
+ </appender>
+ <logger name="org.onap.aai" level="DEBUG" additivity="true">
+ <appender-ref ref="asyncDEBUG" />
+ <appender-ref ref="asyncERROR" />
+ <appender-ref ref="asyncMETRIC" />
+ <appender-ref ref="asyncSANE" />
+ </logger>
+
+ <!-- Spring related loggers -->
+ <logger name="org.springframework" level="WARN" />
+ <logger name="org.springframework.beans" level="WARN" />
+ <logger name="org.springframework.web" level="WARN" />
+ <logger name="com.blog.spring.jms" level="WARN" />
+ <logger name="com.jayway.jsonpath" level="WARN" />
+
+ <!-- AJSC Services (bootstrap services) -->
+ <logger name="ajsc" level="WARN" />
+ <logger name="ajsc.RouteMgmtService" level="WARN" />
+ <logger name="ajsc.ComputeService" level="WARN" />
+ <logger name="ajsc.VandelayService" level="WARN" />
+ <logger name="ajsc.FilePersistenceService" level="WARN" />
+ <logger name="ajsc.UserDefinedJarService" level="WARN" />
+ <logger name="ajsc.UserDefinedBeansDefService" level="WARN" />
+ <logger name="ajsc.LoggingConfigurationService" level="WARN" />
+
+ <!-- AJSC related loggers (DME2 Registration, csi logging, restlet, servlet
+ logging) -->
+ <logger name="org.codehaus.groovy" level="WARN" />
+ <logger name="com.att.scamper" level="WARN" />
+ <logger name="ajsc.utils" level="WARN" />
+ <logger name="ajsc.utils.DME2Helper" level="WARN" />
+ <logger name="ajsc.filters" level="WARN" />
+ <logger name="ajsc.beans.interceptors" level="WARN" />
+ <logger name="ajsc.restlet" level="WARN" />
+ <logger name="ajsc.servlet" level="WARN" />
+ <logger name="com.att.ajsc" level="WARN" />
+ <logger name="com.att.ajsc.csi.logging" level="WARN" />
+ <logger name="com.att.ajsc.filemonitor" level="WARN" />
+ <logger name="com.netflix.loadbalancer" level="WARN" />
+
+ <logger name="org.apache.zookeeper" level="WARN" />
+
+ <!-- Other Loggers that may help troubleshoot -->
+ <logger name="net.sf" level="WARN" />
+ <logger name="org.apache.commons.httpclient" level="WARN" />
+ <logger name="org.apache.commons" level="WARN" />
+ <logger name="org.apache.coyote" level="WARN" />
+ <logger name="org.apache.jasper" level="WARN" />
+
+ <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging.
+ May aid in troubleshooting) -->
+ <logger name="org.apache.camel" level="WARN" />
+ <logger name="org.apache.cxf" level="WARN" />
+ <logger name="org.apache.camel.processor.interceptor" level="WARN" />
+ <logger name="org.apache.cxf.jaxrs.interceptor" level="WARN" />
+ <logger name="org.apache.cxf.service" level="WARN" />
+ <logger name="org.restlet" level="WARN" />
+ <logger name="org.apache.camel.component.restlet" level="WARN" />
+
+ <logger name="org.hibernate.validator" level="WARN" />
+ <logger name="org.hibernate" level="WARN" />
+ <logger name="org.hibernate.ejb" level="OFF" />
+
+ <!-- logback internals logging -->
+ <logger name="ch.qos.logback.classic" level="WARN" />
+ <logger name="ch.qos.logback.core" level="WARN" />
+
+ <logger name="org.eclipse.jetty" level="WARN" />
+
+ <!-- logback jms appenders & loggers definition starts here -->
+ <appender name="auditLogs"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter" />
+ <file>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.log
+ </file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
+ </encoder>
+ </appender>
+ <appender name="perfLogs"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter" />
+ <file>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.log
+ </file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip
+ </fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>5MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
+ </encoder>
+ </appender>
+ <logger name="AuditRecord" level="INFO" additivity="false">
+ <appender-ref ref="auditLogs" />
+ </logger>
+ <logger name="AuditRecord_DirectCall" level="INFO" additivity="false">
+ <appender-ref ref="auditLogs" />
+ </logger>
+ <logger name="PerfTrackerRecord" level="INFO" additivity="false">
+ <appender-ref ref="perfLogs" />
+ </logger>
+ <!-- logback jms appenders & loggers definition ends here -->
+
+ <logger name="org.onap.aai.interceptors.post" level="DEBUG"
+ additivity="false">
+ <appender-ref ref="asynctranslog" />
+ </logger>
+
+ <logger name="org.onap.aai.interceptors.pre.SetLoggingContext" level="DEBUG">
+ <appender-ref ref="asyncAUDIT"/>
+ </logger>
+
+ <logger name="org.onap.aai.interceptors.post.ResetLoggingContext" level="DEBUG">
+ <appender-ref ref="asyncAUDIT"/>
+ </logger>
+
+ <logger name="org.onap.aai.dmaap" level="DEBUG" additivity="false">
+ <appender-ref ref="dmaapAAIEventConsumer" />
+ <appender-ref ref="dmaapAAIEventConsumerDebug" />
+ <appender-ref ref="dmaapAAIEventConsumerMetric" />
+ </logger>
+
+ <logger name="org.apache" level="WARN" />
+ <logger name="org.zookeeper" level="WARN" />
+ <logger name="com.thinkaurelius" level="WARN" />
+ <logger name="com.att.aft.dme2" level="WARN" />
+
+ <!-- ============================================================================ -->
+ <!-- General EELF logger -->
+ <!-- ============================================================================ -->
+ <logger name="com.att.eelf" level="WARN" additivity="false">
+ <appender-ref ref="asyncDEBUG" />
+ <appender-ref ref="asyncERROR" />
+ <appender-ref ref="asyncMETRIC" />
+ </logger>
+
+ <root level="DEBUG">
+ <appender-ref ref="external" />
+ <appender-ref ref="STDOUT" />
+ </root>
</configuration>
diff --git a/aai-traversal/src/test/resources/payloads/templates/pserver.json b/aai-traversal/src/test/resources/payloads/templates/pserver.json
new file mode 100644
index 0000000..dbaf2a9
--- /dev/null
+++ b/aai-traversal/src/test/resources/payloads/templates/pserver.json
@@ -0,0 +1,3 @@
+{
+ "hostname": "${hostname}"
+}
diff --git a/aai-traversal/src/test/resources/test_aaiconfig.properties b/aai-traversal/src/test/resources/test_aaiconfig.properties
deleted file mode 100644
index 4f130da..0000000
--- a/aai-traversal/src/test/resources/test_aaiconfig.properties
+++ /dev/null
@@ -1,99 +0,0 @@
-#
-# ============LICENSE_START=======================================================
-# org.onap.aai
-# ================================================================================
-# Copyright © 2017 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.
-# ============LICENSE_END=========================================================
-#
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
-#
-
-####################################################################
-# REMEMBER TO THINK ABOUT ENVIRONMENTAL DIFFERENCES AND CHANGE THE
-# TEMPLATE AND *ALL* DATAFILES
-####################################################################
-
-aai.config.checktime=1000
-
-# this could come from siteconfig.pl?
-aai.config.nodename=AutomaticallyOverwritten
-
-aai.logging.hbase.interceptor=true
-aai.logging.hbase.enabled=true
-aai.logging.hbase.logrequest=true
-aai.logging.hbase.logresponse=true
-
-aai.logging.trace.enabled=true
-aai.logging.trace.logrequest=false
-aai.logging.trace.logresponse=false
-
-aai.auth.cspcookies_on=false
-aai.dbmodel.filename=ex5.json
-
-aai.server.url.base=https://localhost:8446/aai/
-aai.server.url=https://localhost:8446/aai/v12/
-
-aai.truststore.filename=aai_keystore
-aai.truststore.passwd.x=
-aai.keystore.filename=aai-client-cert.p12
-aai.keystore.passwd.x=
-
-# the following parameters are not reloaded automatically and require a manual bounce
-storage.backend=hbase
-storage.hostname=ONAPserverTBD
-#schema.default=none
-storage.lock.wait-time=300
-storage.hbase.table=aaigraph-dev1.dev
-storage.hbase.ext.zookeeper.znode.parent=/hbase-unsecure
-# Setting db-cache to false ensure the fastest propagation of changes across servers
-cache.db-cache = false
-#cache.db-cache-clean-wait = 20
-#cache.db-cache-time = 180000
-#cache.db-cache-size = 0.5
-
-# for transaction log
-hbase.table.name=aailogging-dev1.dev
-hbase.notificationTable.name=aainotification-dev1.dev
-hbase.table.timestamp.format=YYYYMMdd-HH:mm:ss:SSS
-hbase.zookeeper.quorum=ONAPserverTBD
-hbase.zookeeper.property.clientPort=2181
-hbase.zookeeper.znode.parent=/hbase-unsecure
-
-# single primary server
-aai.primary.filetransfer.serverlist=ONAPserverTBD
-aai.primary.filetransfer.primarycheck=echo:8443/aai/util/echo
-aai.primary.filetransfer.pingtimeout=5000
-aai.primary.filetransfer.pingcount=5
-
-#rsync properties
-aai.rsync.command=rsync
-aai.rsync.options.list=-v|-t
-aai.rsync.remote.user=aaiadmin
-aai.rsync.enabled=y
-
-aai.notification.current.version=v12
-aai.notificationEvent.default.status=UNPROCESSED
-aai.notificationEvent.default.eventType=AAI-EVENT
-aai.notificationEvent.default.domain=devINT1
-aai.notificationEvent.default.sourceName=aai
-aai.notificationEvent.default.sequenceNumber=0
-aai.notificationEvent.default.severity=NORMAL
-aai.notificationEvent.default.version=v9
-# This one lets us enable/disable resource-version checking on updates/deletes
-aai.resourceversion.enableflag=true
-aai.logging.maxStackTraceEntries=10
-aai.default.api.version=v12
-
-