aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReshmasree <reshmasree.chamarthi2@wipro.com>2019-03-21 18:54:53 +0530
committerReshmasree <reshmasree.chamarthi2@wipro.com>2019-03-27 20:22:53 +0530
commitab400d51a639a01f31a60ac9d1e127d4d4d28b24 (patch)
treefd7ee3eb66c976bba4e4027e993eeb95666b98e8
parent3cd4023832810e8b65f85a9db807c8bafec38d82 (diff)
Add component spec and blueprint
- validated component spec and blueprints are added to the repo - pom file changed to build,tag and push the docker image - checkstyle version changed from 1.2.3-SNAPSHOT to 1.2.3 - entrypoint script added Change-Id: I0fcf8a17b0c5ce1990de506bf94d2d9ddf93d6fd Issue-ID: DCAEGEN2-1159 Signed-off-by: Reshmasree <reshmasree.chamarthi2@wipro.com>
-rw-r--r--dpo/blueprints/k8s-sonhms-inputs.yaml54
-rw-r--r--dpo/blueprints/k8s-sonhms.yaml225
-rw-r--r--dpo/data-formats/cellListFromSdnr-dataformat.json18
-rw-r--r--dpo/data-formats/configdb-req-dataformat.json12
-rw-r--r--dpo/data-formats/dmaap_son.json45
-rw-r--r--dpo/data-formats/nbrListFromSdnr-dataformat.json33
-rw-r--r--dpo/data-formats/oofToSonAsyncResp-dataformat.json91
-rw-r--r--dpo/data-formats/oofToSonSyncResp-dataformat.json38
-rw-r--r--dpo/data-formats/pciFromSdnr-dataformat.json29
-rw-r--r--dpo/data-formats/pnfNameFromSdnr-dataformat.json29
-rw-r--r--dpo/data-formats/policyToSonReq-dataformat.json23
-rw-r--r--dpo/data-formats/policyToSonResp-dataformat.json64
-rw-r--r--dpo/data-formats/sonInputFromSdnr-dataformat.json212
-rw-r--r--dpo/data-formats/sonToOofReq-dataformat.json97
-rw-r--r--dpo/data-formats/sonToPolicyDmaap-dataformat.json87
-rw-r--r--dpo/data-formats/sonToPolicyReq-dataformat.json24
-rw-r--r--dpo/spec/sonhandler-componentspec.json297
-rw-r--r--entrypoint.sh (renamed from src/main/docker/postgres_scripts/init_db.sh)3
-rw-r--r--pom.xml114
-rw-r--r--src/main/docker/postgres_scripts/Dockerfile7
-rw-r--r--src/main/docker/son-handler/Dockerfile17
-rw-r--r--src/main/docker/son-handler/config.json48
-rw-r--r--src/main/docker/son-handler/entrypoint.sh35
-rw-r--r--src/main/docker/son-handler/policy.crt27
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/Application.java110
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/BufferNotificationComponent.java5
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/ClusterDetailsComponent.java4
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/Configuration.java243
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/ConfigurationFetcher.java72
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/DmaapNotificationsComponent.java7
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/EventHandler.java23
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/MainThread.java7
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/MainThreadComponent.java9
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/NewNotification.java7
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/NotificationToClusterMapping.java4
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/SonController.java1
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/SonRequestsComponent.java1
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/child/ChildThread.java16
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/child/ChildThreadUtils.java6
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/child/ClusterFormation.java15
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/child/Detection.java3
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/child/Graph.java5
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/child/PnfUtils.java12
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/child/StateOof.java17
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/controller/ConfigFetchFromCbs.java109
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/controller/HealthCheck.java8
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/dao/BufferedNotificationsRepository.java3
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/dao/CellInfoRepository.java1
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/dao/ClusterDetailsRepository.java3
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/dao/DmaapNotificationsRepository.java1
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/dao/FaultNotificationsRepository.java (renamed from src/test/java/org/onap/dcaegen2/services/sonhms/ApplicationTest.java)22
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/dao/SonRequestsRepository.java1
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/dmaap/DmaapClient.java255
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/dmaap/NotificationConsumer.java2
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/dmaap/NotificationProducer.java10
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/dmaap/PolicyDmaapClient.java46
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/entity/FaultNotifications.java69
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/model/NeighborListInUse.java1
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/model/Payload.java1
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/model/PolicyNotification.java10
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/model/RadioAccess.java1
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/restclient/OofRestClient.java100
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/restclient/PolicyRestClient.java77
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/restclient/SdnrRestClient.java19
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/utils/AppConfig.java3
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/utils/BeanUtil.java3
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/utils/ClusterUtils.java21
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/utils/DmaapUtils.java133
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/utils/SonHandlerRestTemplate.java19
-rw-r--r--src/main/java/org/onap/dcaegen2/services/sonhms/utils/ThreadUtils.java11
-rw-r--r--src/main/resources/application.properties9
-rw-r--r--src/main/resources/logback.xml2
-rw-r--r--src/main/resources/schema.sql (renamed from src/main/docker/postgres_scripts/createdb.sql)8
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/BufferNotificationComponentTest.java1
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/ClusterDetailsComponentTest.java1
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/ConfigPolicyTest.java1
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/ConfigurationTest.java29
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/DmaapNotificationsComponentTest.java1
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/EventHandlerTest.java10
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/child/GraphTest.java1
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/child/TestChildThreadUtils.java4
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/child/TestDetection.java2
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/child/TestPnfUtils.java20
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/dmaap/DmaapClientTest.java27
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/dmaap/NotificationProducerTest.java37
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/entity/FaultNotificationsTest.java (renamed from src/test/java/org/onap/dcaegen2/services/sonhms/MainThreadTest.java)23
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/model/NotificationTest.java10
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/model/PayloadTest.java9
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/model/PolicyNotificationTest.java7
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/restclient/AsyncResponseBodyTest.java3
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/restclient/CellInfoTest.java2
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/restclient/OofRequestBodyTest.java4
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/restclient/OofRestClientTest.java14
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/restclient/PciSolutionsTest.java1
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/restclient/PolicyRequestBodyTest.java1
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/restclient/PolicyRestClientTest.java117
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/restclient/RequestInfoTest.java1
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/restclient/SdnrRestClientTest.java2
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/restclient/SolutionsTest.java3
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/utils/ClusterUtilsTest.java14
100 files changed, 2344 insertions, 1145 deletions
diff --git a/dpo/blueprints/k8s-sonhms-inputs.yaml b/dpo/blueprints/k8s-sonhms-inputs.yaml
new file mode 100644
index 0000000..9caf823
--- /dev/null
+++ b/dpo/blueprints/k8s-sonhms-inputs.yaml
@@ -0,0 +1,54 @@
+# ============LICENSE_START=======================================================
+# son-handler
+# ================================================================================
+# Copyright (C) 2019 Wipro Limited.
+# ==============================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+
+pgaas_cluster_name: dcae-pg-primary.onap
+database_name: sonhms
+tag_version: nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.son-handler:latest
+replicas: 1
+aaf_username:
+aaf_password:
+polling_interval: 20
+polling_timeout: 60
+num_solutions: 5
+min_collision: 5
+min_confusion: 5
+max_clusters: 5
+dmaap: message-router
+buffer_time: 60
+cg: sonhms-cg
+cid: sonhms-cid
+config_db: http://sdnc.onap.svc.cluster.local:8181
+oof: http://oof.onap.svc.cluster.local:8080
+pci_optimizer: pci
+log_path: /dockerdata-nfs/son-handler
+topic00_location: onap
+topic00_client_role: son-subscriber
+topic00_client_id: sdnr-son-1
+topic00_url: https://message-router.onap.svc.cluster.local:3905/events/unauthenticated.SEC_MEASUREMENT_OUTPUT
+topic01_location: onap
+topic01_client_role: son-subscriber
+topic01_client_id: sdnr-son-1
+topic01_url: https://message-router.onap.svc.cluster.local:3905/events/unauthenticated.SEC_FAULT_OUTPUT
+topic02_location: onap
+topic02_client_role: son-subscriber
+topic02_client_id: sdnr-son-1
+topic02_url: https://message-router.onap.svc.cluster.local:3905/events/PCI-NOTIF-TOPIC-NGHBR-LIST-CHANGE-INFO
+topic03_location: onap
+topic03_client_role: son-subscriber
+topic03_client_id: sdnr-son-1
+topic03_url: https://message-router.onap.svc.cluster.local:3905/events/DCAE_CL_OUTPUT
diff --git a/dpo/blueprints/k8s-sonhms.yaml b/dpo/blueprints/k8s-sonhms.yaml
new file mode 100644
index 0000000..172048c
--- /dev/null
+++ b/dpo/blueprints/k8s-sonhms.yaml
@@ -0,0 +1,225 @@
+ #============LICENSE_START=======================================================
+ # son-handler
+ # ================================================================================
+ # Copyright (C) 2019 Wipro Limited.
+ # ==============================================================================
+ # Licensed under the Apache License, Version 2.0 (the "License");
+ # you may not use this file except in compliance with the License.
+ # You may obtain a copy of the License at
+ #
+ # http://www.apache.org/licenses/LICENSE-2.0
+ #
+ # Unless required by applicable law or agreed to in writing, software
+ # distributed under the License is distributed on an "AS IS" BASIS,
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ # See the License for the specific language governing permissions and
+ # limitations under the License.
+ # ============LICENSE_END=========================================================
+
+tosca_definitions_version: cloudify_dsl_1_3
+imports:
+ - "http://www.getcloudify.org/spec/cloudify/3.4/types.yaml"
+ - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/k8splugin/1.4.5/k8splugin_types.yaml
+ - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.ccsdk.platform.plugins/type_files/pgaas/1.1.0/pgaas_types.yaml
+inputs:
+ replicas:
+ type: integer
+ description: replica count for deployment
+ default: 1
+ tag_version:
+ type: string
+ description: docker image name and version
+ default: "nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.son-handler:latest"
+ pgaas_cluster_name:
+ type: string
+ description: pg cluster
+ default: "dcae-postgres.onap.svc.cluster.local"
+ database_name:
+ type: string
+ description: database name
+ default: sonhms
+ aaf_username:
+ type: string
+ description: aaf username
+ aaf_password:
+ type: string
+ description: aaf password
+ polling_interval:
+ type: integer
+ description: dmaap polling interval
+ default: 20
+ polling_timeout:
+ type: integer
+ description: dmaap polling timeout
+ default: 60
+ num_solutions:
+ type: integer
+ description: num of solutions
+ default: 5
+ min_collision:
+ type: integer
+ description: minimum no. of collisions
+ default: 5
+ min_confusion:
+ type: integer
+ description: minimum no. of confusions
+ default: 5
+ max_clusters:
+ type: integer
+ description: maximum clusters
+ default: 5
+ dmaap:
+ type: string
+ description: dmaap server
+ default: message-router
+ buffer_time:
+ type: integer
+ description: buffer time
+ default: 60
+ cg:
+ type: string
+ description: consumer group
+ default: sonhms-cg
+ cid:
+ type: string
+ description: consumer id
+ default: sonhms-cid
+ config_db:
+ type: string
+ description: config db location
+ oof:
+ type: string
+ description: oof location
+ pci_optimizer:
+ type: string
+ description: pci optimizer name in oof
+ default: pci
+ log_path:
+ type: string
+ description: log location in host
+ default: /dockerdata-nfs/son-handler
+ topic00_location:
+ topic01_location:
+ topic02_location:
+ topic03_location:
+ topic00_client_role:
+ topic01_client_role:
+ topic02_client_role:
+ topic03_client_role:
+ topic00_client_id:
+ topic01_client_id:
+ topic02_client_id:
+ topic03_client_id:
+ topic00_url:
+ topic01_url:
+ topic02_url:
+ topic03_url:
+
+node_templates:
+ pgaasvm:
+ type: dcae.nodes.pgaas.database
+ properties:
+ writerfqdn: { get_input: pgaas_cluster_name }
+ name: { get_input: database_name }
+ use_existing: false
+
+ sonhms:
+ type: dcae.nodes.ContainerizedServiceComponent
+ interfaces:
+ cloudify.interfaces.lifecycle:
+ start:
+ inputs:
+ ports:
+ - "8080:0"
+ volumes:
+ - host:
+ path: { get_input: log_path }
+ container:
+ bind: /var/log/onap
+ mode: rw
+ properties:
+ image:
+ get_input: tag_version
+ service_component_type: 'dcae-sonhms'
+ service_id: 'sonhms'
+ always_pull_image: true
+ replicas: {get_input: replicas}
+ docker_config:
+ healthcheck:
+ endpoint: /healthcheck
+ interval: 15s
+ timeout: 1s
+ type: http
+ application_config:
+ streams_subscribes:
+ performance_management_topic:
+ aaf_username: { get_input: aaf_username }
+ aaf_password: { get_input: aaf_password }
+ dmaap_info:
+ location: { get_input: topic00_location }
+ client_role: { get_input: topic00_client_role }
+ client_id: { get_input: topic00_client_id }
+ topic_url: { get_input: topic00_url }
+ type: message-router
+ fault_management_topic:
+ aaf_username: { get_input: aaf_username }
+ aaf_password: { get_input: aaf_password }
+ dmaap_info:
+ location: { get_input: topic01_location }
+ client_role: { get_input: topic01_client_role }
+ client_id: { get_input: topic01_client_id }
+ topic_url: { get_input: topic01_url }
+ type: message-router
+ nbr_list_change_topic:
+ aaf_username: { get_input: aaf_username }
+ aaf_password: { get_input: aaf_password }
+ dmaap_info:
+ location: { get_input: topic02_location }
+ client_role: { get_input: topic02_client_role }
+ client_id: { get_input: topic02_client_id }
+ topic_url: { get_input: topic02_url }
+ type: message-router
+ streams__publishes:
+ CL_topic:
+ aaf_username: { get_input: aaf_username }
+ aaf_password: { get_input: aaf_password }
+ dmaap_info:
+ location: { get_input: topic03_location }
+ client_role: { get_input: topic03_client_role }
+ client_id: { get_input: topic03_client_id }
+ topic_url: { get_input: topic03_url }
+ type: message-router
+ postgres.host: { get_attribute: [ pgaasvm, admin, host ] }
+ postgres.port: { get_attribute: [ pgaasvm, admin, port ] }
+ postgres.username: { get_attribute: [ pgaasvm, admin, user ] }
+ postgres.password: { get_attribute: [ pgaasvm, admin, password ] }
+ sonhandler.pollingInterval: { get_input: polling_interval}
+ sonhandler.pollingTimeout: { get_input: polling_timeout }
+ sonhandler.numSolutions: { get_input: num_solutions }
+ sonhandler.minCollision: { get_input: min_collision }
+ sonhandler.minConfusion: { get_input: min_confusion }
+ sonhandler.maximumClusters: { get_input: max_clusters }
+ sonhandler.sourceId: SONHMS
+ sonhandler.dmaap.server:
+ - { get_input: dmaap }
+ sonhandler.bufferTime: { get_input: buffer_time }
+ sonhandler.cg: { get_input: cg }
+ sonhandler.cid: { get_input: cid }
+ sonhandler.configDb.service: { get_input: config_db }
+ sonhandler.oof.service: { get_input: oof }
+ sonhandler.optimizers:
+ - { get_input: pci_optimizer }
+ service_calls:
+ sdnr-getpnfname: []
+ sdnr-getpci: []
+ sdnr-getnbrlist: []
+ sdnr-getcelllist: []
+ oof-req: []
+ policy-req: []
+ relationships:
+ - type: cloudify.relationships.depends_on
+ target: pgaasvm
+
+
+
+
diff --git a/dpo/data-formats/cellListFromSdnr-dataformat.json b/dpo/data-formats/cellListFromSdnr-dataformat.json
new file mode 100644
index 0000000..610552e
--- /dev/null
+++ b/dpo/data-formats/cellListFromSdnr-dataformat.json
@@ -0,0 +1,18 @@
+{
+ "dataformatversion": "1.0.0",
+ "jsonschema": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "description": "",
+ "items": {
+ "description": "",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "self": {
+ "description": "",
+ "name": "CELLLIST_FROM_SDNR",
+ "version": "1.0.0"
+ }
+}
+
diff --git a/dpo/data-formats/configdb-req-dataformat.json b/dpo/data-formats/configdb-req-dataformat.json
new file mode 100644
index 0000000..a40a05c
--- /dev/null
+++ b/dpo/data-formats/configdb-req-dataformat.json
@@ -0,0 +1,12 @@
+{
+ "self": {
+ "name": "CONFIGDB-REQ",
+ "version": "1.0.0",
+ "description": "Request to config DB"
+
+ },
+ "dataformatversion": "1.0.0",
+ "unstructured": {
+ "encoding": "UTF-8"
+ }
+}
diff --git a/dpo/data-formats/dmaap_son.json b/dpo/data-formats/dmaap_son.json
new file mode 100644
index 0000000..43f7b8e
--- /dev/null
+++ b/dpo/data-formats/dmaap_son.json
@@ -0,0 +1,45 @@
+{"nbr_list_change_topic":{
+ "type": "message_router",
+ "aaf_username": "",
+ "aaf_password": "",
+ "dmaap_info": {
+ "client_role": "son-subscriber",
+ "client_id": "sdnr-son-1",
+ "location": "onap",
+ "topic_url": "https://HOSTNAME:3905/events/PCI-NOTIF-TOPIC-NGHBR-LIST-CHANGE-INFO"
+ }
+},
+"fault_management_topic":{
+ "type": "message_router",
+ "aaf_username": "",
+ "aaf_password": "",
+ "dmaap_info": {
+ "client_role": "son-subscriber",
+ "client_id": "sdnr-son-1",
+ "location": "onap",
+ "topic_url": "https://HOSTNAME:3905/events/unauthenticated.SEC_FAULT_OUTPUT"
+ }
+},
+"performance_management_topic":{
+ "type": "message_router",
+ "aaf_username": "",
+ "aaf_password": "",
+ "dmaap_info": {
+ "client_role": "son-subscriber",
+ "client_id": "sdnr-son-1",
+ "location": "onap",
+ "topic_url": "https://HOSTNAME:3905/events/unauthenticated.SEC_MEASUREMENT_OUTPUT"
+ }
+},
+"CL_topic":{
+ "type": "message_router",
+ "aaf_username": "",
+ "aaf_password": "",
+ "dmaap_info": {
+ "client_role": "policy-publisher",
+ "client_id": "policy-son-1",
+ "location": "onap",
+ "topic_url": "https://HOSTNAME:3905/events/DCAE_CL_OUTPUT"
+ }
+}
+}
diff --git a/dpo/data-formats/nbrListFromSdnr-dataformat.json b/dpo/data-formats/nbrListFromSdnr-dataformat.json
new file mode 100644
index 0000000..ad50950
--- /dev/null
+++ b/dpo/data-formats/nbrListFromSdnr-dataformat.json
@@ -0,0 +1,33 @@
+{
+ "dataformatversion": "1.0.0",
+ "jsonschema": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "description": "",
+ "items": {
+ "additionalproperties": true,
+ "description": "",
+ "properties": {
+ "cellId": {
+ "description": "",
+ "type": "string"
+ },
+ "pciValue": {
+ "description": "",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "cellId",
+ "pciValue"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "self": {
+ "description": "",
+ "name": "NBRLST_FROM_SDNR",
+ "version": "1.0.0"
+ }
+}
+
diff --git a/dpo/data-formats/oofToSonAsyncResp-dataformat.json b/dpo/data-formats/oofToSonAsyncResp-dataformat.json
new file mode 100644
index 0000000..2668370
--- /dev/null
+++ b/dpo/data-formats/oofToSonAsyncResp-dataformat.json
@@ -0,0 +1,91 @@
+{
+ "dataformatversion": "1.0.0",
+ "jsonschema": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "additionalproperties": true,
+ "description": "",
+ "properties": {
+ "requestId": {
+ "description": "",
+ "type": "string"
+ },
+ "requestStatus": {
+ "description": "",
+ "type": "string"
+ },
+ "solutions": {
+ "description": "",
+ "items": {
+ "additionalproperties": true,
+ "description": "",
+ "properties": {
+ "finishTime": {
+ "description": "",
+ "type": "string"
+ },
+ "networkId": {
+ "description": "",
+ "type": "string"
+ },
+ "pciSolutions": {
+ "description": "",
+ "items": {
+ "additionalproperties": true,
+ "description": "",
+ "properties": {
+ "cellId": {
+ "description": "",
+ "type": "string"
+ },
+ "pci": {
+ "description": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "cellId",
+ "pci"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "startTime": {
+ "description": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "finishTime",
+ "networkId",
+ "pciSolutions",
+ "startTime"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "statusMessage": {
+ "description": "",
+ "type": "string"
+ },
+ "transactionId": {
+ "description": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "requestId",
+ "requestStatus",
+ "solutions",
+ "statusMessage",
+ "transactionId"
+ ],
+ "type": "object"
+ },
+ "self": {
+ "description": "",
+ "name": "SON_OOF_ASYNC_RESP",
+ "version": "1.0.0"
+ }
+}
diff --git a/dpo/data-formats/oofToSonSyncResp-dataformat.json b/dpo/data-formats/oofToSonSyncResp-dataformat.json
new file mode 100644
index 0000000..11f8cd0
--- /dev/null
+++ b/dpo/data-formats/oofToSonSyncResp-dataformat.json
@@ -0,0 +1,38 @@
+{
+ "dataformatversion": "1.0.0",
+ "jsonschema": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "additionalproperties": true,
+ "description": "",
+ "properties": {
+ "requestId": {
+ "description": "",
+ "type": "string"
+ },
+ "requestStatus": {
+ "description": "",
+ "type": "string"
+ },
+ "statusMessage": {
+ "description": "",
+ "type": "string"
+ },
+ "transactionId": {
+ "description": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "requestId",
+ "requestStatus",
+ "statusMessage",
+ "transactionId"
+ ],
+ "type": "object"
+ },
+ "self": {
+ "description": "",
+ "name": "SON_OOF_SYNC_RESP",
+ "version": "1.0.0"
+ }
+}
diff --git a/dpo/data-formats/pciFromSdnr-dataformat.json b/dpo/data-formats/pciFromSdnr-dataformat.json
new file mode 100644
index 0000000..5eb8e7c
--- /dev/null
+++ b/dpo/data-formats/pciFromSdnr-dataformat.json
@@ -0,0 +1,29 @@
+{
+ "dataformatversion": "1.0.0",
+ "jsonschema": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "additionalproperties": true,
+ "description": "",
+ "properties": {
+ "attribute-name": {
+ "description": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "attribute-name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "self": {
+ "description": "",
+ "name": "PCI_FROM_SDNR",
+ "version": "1.0.0"
+ }
+}
+
diff --git a/dpo/data-formats/pnfNameFromSdnr-dataformat.json b/dpo/data-formats/pnfNameFromSdnr-dataformat.json
new file mode 100644
index 0000000..84787dc
--- /dev/null
+++ b/dpo/data-formats/pnfNameFromSdnr-dataformat.json
@@ -0,0 +1,29 @@
+{
+ "dataformatversion": "1.0.0",
+ "jsonschema": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "additionalproperties": true,
+ "description": "",
+ "properties": {
+ "attribute-name": {
+ "description": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "attribute-name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "self": {
+ "description": "",
+ "name": "PNFNAME_FROM_SDNR",
+ "version": "1.0.0"
+ }
+}
+
diff --git a/dpo/data-formats/policyToSonReq-dataformat.json b/dpo/data-formats/policyToSonReq-dataformat.json
new file mode 100644
index 0000000..f787695
--- /dev/null
+++ b/dpo/data-formats/policyToSonReq-dataformat.json
@@ -0,0 +1,23 @@
+{
+ "dataformatversion": "1.0.0",
+ "jsonschema": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "additionalproperties": true,
+ "description": "",
+ "properties": {
+ "policyName": {
+ "description": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "policyName"
+ ],
+ "type": "object"
+ },
+ "self": {
+ "description": "",
+ "name": "SON_TO_POLICY_REST_REQ",
+ "version": "1.0.0"
+ }
+}
diff --git a/dpo/data-formats/policyToSonResp-dataformat.json b/dpo/data-formats/policyToSonResp-dataformat.json
new file mode 100644
index 0000000..526f145
--- /dev/null
+++ b/dpo/data-formats/policyToSonResp-dataformat.json
@@ -0,0 +1,64 @@
+{
+ "dataformatversion": "1.0.0",
+ "jsonschema": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "additionalproperties": true,
+ "description": "",
+ "properties": {
+ "configBody": {
+ "description": "",
+ "type": "string"
+ },
+ "configBodyType": {
+ "description": "",
+ "type": "string"
+ },
+ "configName": {
+ "description": "",
+ "type": "string"
+ },
+ "onapName": {
+ "description": "",
+ "type": "string"
+ },
+ "policyClass": {
+ "description": "",
+ "type": "string"
+ },
+ "policyConfigType": {
+ "description": "",
+ "type": "string"
+ },
+ "policyName": {
+ "description": "",
+ "type": "string"
+ },
+ "policyVersion": {
+ "description": "",
+ "type": "string"
+ },
+ "ttlDate": {
+ "description": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "configBody",
+ "configBodyType",
+ "configName",
+ "onapName",
+ "policyClass",
+ "policyConfigType",
+ "policyName",
+ "policyVersion",
+ "ttlDate"
+ ],
+ "type": "object"
+ },
+ "self": {
+ "description": "",
+ "name": "POLICY_TO_SON_REST_RESP",
+ "version": "1.0.0"
+ }
+}
+
diff --git a/dpo/data-formats/sonInputFromSdnr-dataformat.json b/dpo/data-formats/sonInputFromSdnr-dataformat.json
new file mode 100644
index 0000000..de8c017
--- /dev/null
+++ b/dpo/data-formats/sonInputFromSdnr-dataformat.json
@@ -0,0 +1,212 @@
+{
+ "dataformatversion": "1.0.0",
+ "jsonschema": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "additionalproperties": true,
+ "description": "",
+ "properties": {
+ "AAI": {
+ "description": "",
+ "type": "object"
+ },
+ "Action": {
+ "description": "",
+ "type": "string"
+ },
+ "Payload": {
+ "additionalproperties": true,
+ "description": "",
+ "properties": {
+ "RadioAccess": {
+ "additionalproperties": true,
+ "description": "",
+ "properties": {
+ "FAPServiceList": {
+ "description": "",
+ "items": {
+ "additionalproperties": true,
+ "description": "",
+ "properties": {
+ "CellConfig": {
+ "additionalproperties": true,
+ "description": "",
+ "properties": {
+ "LTE": {
+ "additionalproperties": true,
+ "description": "",
+ "properties": {
+ "RAN": {
+ "additionalproperties": true,
+ "description": "",
+ "properties": {
+ "CellIdentity": {
+ "description": "",
+ "type": "string"
+ },
+ "NeighborListInUse": {
+ "additionalproperties": true,
+ "description": "",
+ "properties": {
+ "LTECellNumberOfEntries": {
+ "description": "",
+ "type": "string"
+ },
+ "LTENeighborListInUseLTECell": {
+ "description": "",
+ "items": {
+ "additionalproperties": true,
+ "description": "",
+ "properties": {
+ "alias": {
+ "description": "",
+ "type": "string"
+ },
+ "blacklisted": {
+ "description": "",
+ "type": "string"
+ },
+ "cid": {
+ "description": "",
+ "type": "string"
+ },
+ "enable": {
+ "description": "",
+ "type": "string"
+ },
+ "mustInclude": {
+ "description": "",
+ "type": "string"
+ },
+ "phyCellId": {
+ "description": "",
+ "type": "string"
+ },
+ "plmnid": {
+ "description": "",
+ "type": "string"
+ },
+ "pnfName": {
+ "description": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "alias",
+ "blacklisted",
+ "cid",
+ "enable",
+ "mustInclude",
+ "phyCellId",
+ "plmnid",
+ "pnfName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "LTECellNumberOfEntries",
+ "LTENeighborListInUseLTECell"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "CellIdentity",
+ "NeighborListInUse"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "RAN"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "LTE"
+ ],
+ "type": "object"
+ },
+ "X0005b9Lte": {
+ "additionalproperties": true,
+ "description": "",
+ "properties": {
+ "phyCellIdInUse": {
+ "description": "",
+ "type": "string"
+ },
+ "pnfName": {
+ "description": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "phyCellIdInUse",
+ "pnfName"
+ ],
+ "type": "object"
+ },
+ "alias": {
+ "description": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "CellConfig",
+ "X0005b9Lte",
+ "alias"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "FAPServiceNumberOfEntries": {
+ "description": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "FAPServiceList",
+ "FAPServiceNumberOfEntries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "RadioAccess"
+ ],
+ "type": "object"
+ },
+ "from": {
+ "description": "",
+ "type": "string"
+ },
+ "requestID": {
+ "description": "",
+ "type": "string"
+ },
+ "version": {
+ "description": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "AAI",
+ "Action",
+ "Payload",
+ "from",
+ "requestID",
+ "version"
+ ],
+ "type": "object"
+ },
+ "self": {
+ "description": "dmaap message from SDNR to SON handler",
+ "name": "SON_INPUT_FROM_SDNR",
+ "version": "1.0.0"
+ }
+}
+
diff --git a/dpo/data-formats/sonToOofReq-dataformat.json b/dpo/data-formats/sonToOofReq-dataformat.json
new file mode 100644
index 0000000..3ca70e0
--- /dev/null
+++ b/dpo/data-formats/sonToOofReq-dataformat.json
@@ -0,0 +1,97 @@
+{
+ "dataformatversion": "1.0.0",
+ "jsonschema": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "additionalproperties": true,
+ "description": "",
+ "properties": {
+ "cellInfo": {
+ "additionalproperties": true,
+ "description": "",
+ "properties": {
+ "cellIdList": {
+ "description": "",
+ "items": {
+ "description": "",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "networkId": {
+ "description": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "cellIdList",
+ "networkId"
+ ],
+ "type": "object"
+ },
+ "requestInfo": {
+ "additionalproperties": true,
+ "description": "",
+ "properties": {
+ "callbackUrl": {
+ "description": "",
+ "type": "string"
+ },
+ "numSolutions": {
+ "description": "",
+ "type": "integer"
+ },
+ "optimizers": {
+ "description": "",
+ "items": {
+ "description": "",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "requestId": {
+ "description": "",
+ "type": "string"
+ },
+ "requestType": {
+ "description": "",
+ "type": "string"
+ },
+ "sourceId": {
+ "description": "",
+ "type": "string"
+ },
+ "timeout": {
+ "description": "",
+ "type": "integer"
+ },
+ "transactionId": {
+ "description": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "callbackUrl",
+ "numSolutions",
+ "optimizers",
+ "requestId",
+ "requestType",
+ "sourceId",
+ "timeout",
+ "transactionId"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "cellInfo",
+ "requestInfo"
+ ],
+ "type": "object"
+ },
+ "self": {
+ "description": "",
+ "name": "SON_TO_OOF_REST_REQ",
+ "version": "1.0.0"
+ }
+}
+
diff --git a/dpo/data-formats/sonToPolicyDmaap-dataformat.json b/dpo/data-formats/sonToPolicyDmaap-dataformat.json
new file mode 100644
index 0000000..fcca5e6
--- /dev/null
+++ b/dpo/data-formats/sonToPolicyDmaap-dataformat.json
@@ -0,0 +1,87 @@
+{
+ "dataformatversion": "1.0.0",
+ "jsonschema": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "additionalproperties": true,
+ "description": "",
+ "properties": {
+ "AAI": {
+ "additionalproperties": true,
+ "description": "",
+ "properties": {
+ "generic-vnf.is-closed-loop-disabled": {
+ "description": "",
+ "type": "string"
+ },
+ "generic-vnf.prov-status": {
+ "description": "",
+ "type": "string"
+ },
+ "generic-vnf.vnf-id": {
+ "description": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "generic-vnf.is-closed-loop-disabled",
+ "generic-vnf.prov-status",
+ "generic-vnf.vnf-id"
+ ],
+ "type": "object"
+ },
+ "Action": {
+ "description": "",
+ "type": "string"
+ },
+ "closedLoopAlarmStart": {
+ "description": "",
+ "type": "integer"
+ },
+ "closedLoopControlName": {
+ "description": "",
+ "type": "string"
+ },
+ "closedLoopEventClient": {
+ "description": "",
+ "type": "string"
+ },
+ "closedLoopEventStatus": {
+ "description": "",
+ "type": "string"
+ },
+ "from": {
+ "description": "",
+ "type": "string"
+ },
+ "payload": {
+ "description": "",
+ "type": "string"
+ },
+ "requestID": {
+ "description": "",
+ "type": "string"
+ },
+ "target": {
+ "description": "",
+ "type": "string"
+ },
+ "target_type": {
+ "description": "",
+ "type": "string"
+ },
+ "version": {
+ "description": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "AAI", "Action", "closedLoopAlarmStart", "closedLoopControlName", "closedLoopEventClient", "closedLoopEventStatus", "from", "payload", "requestID", "target", "target_type", "version"
+ ],
+ "type": "object"
+ },
+ "self": {
+ "description": "",
+ "name": "SON_TO_POLICY_DMAAP",
+ "version": "1.0.0"
+ }
+}
diff --git a/dpo/data-formats/sonToPolicyReq-dataformat.json b/dpo/data-formats/sonToPolicyReq-dataformat.json
new file mode 100644
index 0000000..7686242
--- /dev/null
+++ b/dpo/data-formats/sonToPolicyReq-dataformat.json
@@ -0,0 +1,24 @@
+{
+ "dataformatversion": "1.0.0",
+ "jsonschema": {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "additionalproperties": true,
+ "description": "",
+ "properties": {
+ "policyName": {
+ "description": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "policyName"
+ ],
+ "type": "object"
+ },
+ "self": {
+ "description": "",
+ "name": "SON_TO_POLICY_REST_REQ",
+ "version": "1.0.0"
+ }
+}
+
diff --git a/dpo/spec/sonhandler-componentspec.json b/dpo/spec/sonhandler-componentspec.json
new file mode 100644
index 0000000..186fbf7
--- /dev/null
+++ b/dpo/spec/sonhandler-componentspec.json
@@ -0,0 +1,297 @@
+{
+ "self":{
+ "version":"1.0.0",
+ "name":"docker.sonhandler.app",
+ "description":"Handles the PCI optimization for SON network",
+ "component_type":"docker"
+ },
+ "streams":{
+ "subscribes":[
+ {
+ "format":"SON_INPUT_FROM_SDNR",
+ "version":"1.0.0",
+ "config_key":"nbr_list_change_topic",
+ "type":"message router"
+ },
+ {
+ "format":"FM_ALARM_FROM_VES",
+ "version":"1.0.0",
+ "config_key":"fault_management_topic",
+ "type":"message router"
+ },
+ {
+ "format":"PM_ALARM_FROM_VES",
+ "version":"1.0.0",
+ "config_key":"performance_management_topic",
+ "type":"message router"
+ },
+ {
+ "format":"SON_OOF_ASYNC_RESP",
+ "version":"1.0.0",
+ "route":"/callbackUrl",
+ "type":"http"
+ }
+ ],
+ "publishes":[
+ {
+ "format":"SON_TO_POLICY_DMAAP",
+ "version":"1.0.0",
+ "config_key":"CL_topic",
+ "type":"message router"
+ }
+ ]
+ },
+ "services":{
+ "calls":[
+ {
+ "config_key":"oof-req",
+ "request":{
+ "format":"SON_TO_OOF_REST_REQ",
+ "version":"1.0.0"
+ },
+ "response":{
+ "format":"SON_OOF_SYNC_RESP",
+ "version":"1.0.0"
+ }
+ },
+ {
+ "config_key":"sdnr-getpnfname",
+ "request":{
+ "format":"CONFIGDB-REQ",
+ "version":"1.0.0"
+ },
+ "response":{
+ "format":"PNFNAME_FROM_SDNR",
+ "version":"1.0.0"
+ }
+ },
+ {
+ "config_key":"sdnr-getcelllist",
+ "request":{
+ "format":"CONFIGDB-REQ",
+ "version":"1.0.0"
+ },
+ "response":{
+ "format":"CELLLIST_FROM_SDNR",
+ "version":"1.0.0"
+ }
+ },
+ {
+ "config_key":"sdnr-getnbrlist",
+ "request":{
+ "format":"CONFIGDB-REQ",
+ "version":"1.0.0"
+ },
+ "response":{
+ "format":"NBRLST_FROM_SDNR",
+ "version":"1.0.0"
+ }
+ },
+ {
+ "config_key":"sdnr-getpci",
+ "request":{
+ "format":"CONFIGDB-REQ",
+ "version":"1.0.0"
+ },
+ "response":{
+ "format":"PCI_FROM_SDNR",
+ "version":"1.0.0"
+ }
+ }
+ ],
+ "provides":[
+
+ ]
+ },
+ "parameters":[
+ {
+ "name":"postgres.username",
+ "value":"sonuser",
+ "description":"postgres config",
+ "sourced_at_deployment":false,
+ "policy_editable":false,
+ "designer_editable":false
+ },
+ {
+ "name":"postgres.password",
+ "value":"sonpassword",
+ "description":"postgres config",
+ "sourced_at_deployment":false,
+ "policy_editable":false,
+ "designer_editable":false
+ },
+ {
+ "name":"postgres.host",
+ "value":"10.165.160.148",
+ "description":"postgres config",
+ "sourced_at_deployment":false,
+ "policy_editable":false,
+ "designer_editable":false
+ },
+ {
+ "name":"postgres.port",
+ "value":"5432",
+ "description":"postgres config",
+ "sourced_at_deployment":false,
+ "policy_editable":false,
+ "designer_editable":false
+ },
+ {
+ "name":"sonhandler.optimizers",
+ "value":[
+ "pci"
+ ],
+ "description":"son handler optimizers list",
+ "sourced_at_deployment":false,
+ "policy_editable":false,
+ "designer_editable":false
+ },
+ {
+ "name":"sonhandler.buffertime",
+ "value":"60",
+ "description":"buffer time in seconds",
+ "sourced_at_deployment":false,
+ "policy_editable":false,
+ "designer_editable":false
+ },
+ {
+ "name":"sonhandler.numsolutions",
+ "value":"10",
+ "description":"number of solutions",
+ "sourced_at_deployment":false,
+ "policy_editable":false,
+ "designer_editable":false
+ },
+ {
+ "name":"sonhandler.maximumclusters",
+ "value":"5",
+ "description":"maximum number of clusters",
+ "sourced_at_deployment":false,
+ "policy_editable":false,
+ "designer_editable":false
+ },
+ {
+ "name":"sonhandler.cg",
+ "value":"sonhms-cg",
+ "description":"son consumer group",
+ "sourced_at_deployment":false,
+ "policy_editable":false,
+ "designer_editable":false
+ },
+ {
+ "name":"sonhandler.cid",
+ "value":"sonhms-cid",
+ "description":"son consumer Id",
+ "sourced_at_deployment":false,
+ "policy_editable":false,
+ "designer_editable":false
+ },
+ {
+ "name":"sonhandler.dmaap.servers",
+ "value":["message-router:3904"],
+ "description":"dmaap server location",
+ "sourced_at_deployment":false,
+ "policy_editable":false,
+ "designer_editable":false
+ },
+ {
+ "name":"sonhandler.pollingInterval",
+ "value":"20",
+ "description":"dmaap polling interval",
+ "sourced_at_deployment":false,
+ "policy_editable":false,
+ "designer_editable":false
+ },
+ {
+ "name":"sonhandler.pollingTimeout",
+ "value":"60",
+ "description":"dmaap polling timeout",
+ "sourced_at_deployment":false,
+ "policy_editable":false,
+ "designer_editable":false
+ },
+ {
+ "name":"sonhandler.minCollision",
+ "value":"5",
+ "description":"minimum collision count",
+ "sourced_at_deployment":false,
+ "policy_editable":false,
+ "designer_editable":false
+ },
+ {
+ "name":"sonhandler.minConfusion",
+ "value":"5",
+ "description":"minimum confusion count",
+ "sourced_at_deployment":false,
+ "policy_editable":false,
+ "designer_editable":false
+ },
+ {
+ "name":"sonhandler.configDb.service",
+ "value":"http://sdnc:8282",
+ "description":"configDb service url",
+ "sourced_at_deployment":false,
+ "policy_editable":false,
+ "designer_editable":false
+ },
+ {
+ "name":"sonhandler.oof.service",
+ "value":"http://oof:8080",
+ "description":"oof service url",
+ "sourced_at_deployment":false,
+ "policy_editable":false,
+ "designer_editable":false
+ },
+ {
+ "name":"sonhandler.sourceId",
+ "value":"SONHMS",
+ "description":"sonhms source ID",
+ "sourced_at_deployment":false,
+ "policy_editable":false,
+ "designer_editable":false
+ },
+ {
+ "name":"sonhandler.callbackUrl",
+ "value":"http://sonhms.onap:8080/callbackUrl",
+ "description":"sonhms callback url",
+ "sourced_at_deployment":false,
+ "policy_editable":false,
+ "designer_editable":false
+ }
+ ],
+ "auxilary":{
+ "healthcheck":{
+ "type":"http",
+ "interval":"15s",
+ "timeout":"1s",
+ "endpoint":"/healthckeck"
+ },
+ "volumes":[
+ {
+ "container":{
+ "bind":"/etc/localtime"
+ },
+ "host":{
+ "path":"/etc/localtime"
+ }
+ },
+ {
+ "container":{
+ "bind":"/var/log/onap"
+ },
+ "host":{
+ "path":"/dockerdata-nfs/pci-handler/logs"
+ }
+ }
+ ],
+ "ports":[
+ "8080:8080"
+ ]
+ },
+ "artifacts":[
+ {
+ "type":"docker image",
+ "uri":"k8s-rancher-1:5000/son-handler:1.0.1"
+ }
+ ]
+}
diff --git a/src/main/docker/postgres_scripts/init_db.sh b/entrypoint.sh
index f01eea6..5c4541f 100644
--- a/src/main/docker/postgres_scripts/init_db.sh
+++ b/entrypoint.sh
@@ -20,4 +20,5 @@
#
#*******************************************************************************
-psql -U postgres -tc "SELECT 1 FROM pg_database WHERE datname = 'pci_ms'" | grep -q 1 || psql -U postgres -c "CREATE DATABASE pci_ms"
+java -jar /bin/application.jar
+
diff --git a/pom.xml b/pom.xml
index cbb2c72..05dd29b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -42,12 +42,32 @@
<properties>
+ <sdk.version>1.1.3</sdk.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
+ <docker.image.name>onap/org.onap.dcaegen2.services.son-handler</docker.image.name>
+ <!-- NEXUS RELATED SETTINGS -->
+ <nexusproxy>https://nexus.onap.org</nexusproxy>
+ <snapshots.path>content/repositories/snapshots/</snapshots.path>
+ <releases.path>content/repositories/releases/</releases.path>
+ <site.path>content/sites/site/org/onap/dcaegen2/services/son-handler/${project.artifactId}/${project.version}</site.path>
+ <maven.build.timestamp.format>yyyyMMdd'T'HHmmss</maven.build.timestamp.format>
</properties>
<dependencies>
+ <!-- cbs client -->
+ <dependency>
+ <groupId>org.onap.dcaegen2.services.sdk.rest.services</groupId>
+ <artifactId>cbs-client</artifactId>
+ <version>${sdk.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.onap.dcaegen2.services.sdk.security.crypt</groupId>
+ <artifactId>crypt-password</artifactId>
+ <version>${sdk.version}</version>
+ </dependency>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
@@ -82,7 +102,6 @@
<artifactId>javax.json-api</artifactId>
<version>1.1.2</version>
</dependency>
-
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
@@ -212,7 +231,7 @@
<dependency>
<groupId>org.onap.oparent</groupId>
<artifactId>checkstyle</artifactId>
- <version>1.2.3-SNAPSHOT</version>
+ <version>1.2.3</version>
<scope>compile</scope>
</dependency>
</dependencies>
@@ -245,13 +264,92 @@
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.0.4.RELEASE</version>
<executions>
- <execution>
- <goals>
- <goal>repackage</goal>
- </goals>
- </execution>
- </executions>
+ <execution>
+ <goals>
+ <goal>repackage</goal>
+ </goals>
+ </execution>
+ </executions>
</plugin>
+ <plugin>
+ <groupId>com.spotify</groupId>
+ <artifactId>docker-maven-plugin</artifactId>
+ <configuration>
+ <serverId>${onap.nexus.dockerregistry.daily}</serverId>
+
+ <imageName>${docker.image.name}</imageName>
+ <imageTags>
+ <tag>latest</tag>
+ </imageTags>
+ <baseImage>java:openjdk-8</baseImage>
+ <resources>
+ <resource>
+ <targetPath>/bin</targetPath>
+ <directory>${project.build.directory}</directory>
+ <include>${project.artifactId}-${project.version}.jar</include>
+ </resource>
+ <resource>
+ <targetPath>/bin</targetPath>
+ <directory>${project.basedir}</directory>
+ <include>entrypoint.sh</include>
+ </resource>
+ </resources>
+ <runs>
+ <!-- Maven is loosing file permissions during artifacts copy -->
+ <run>chmod +x /bin/entrypoint.sh</run>
+ <run>mv /bin/*.jar /bin/application.jar</run>
+ </runs>
+ <exposes>
+ <expose>8080</expose>
+ </exposes>
+ <entryPoint>/bin/entrypoint.sh</entryPoint>
+ </configuration>
+ <executions>
+ <execution>
+ <id>build-image</id>
+ <phase>package</phase>
+ <goals>
+ <goal>build</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>tag-and-push-image-latest</id>
+ <phase>deploy</phase>
+ <goals>
+ <goal>tag</goal>
+ </goals>
+ <configuration>
+ <image>${docker.image.name}:latest</image>
+ <newName>${onap.nexus.dockerregistry.daily}/${docker.image.name}:latest</newName>
+ <pushImage>true</pushImage>
+ </configuration>
+ </execution>
+ <execution>
+ <id>tag-and-push-image-with-version</id>
+ <phase>deploy</phase>
+ <goals>
+ <goal>tag</goal>
+ </goals>
+ <configuration>
+ <image>${docker.image.name}:latest</image>
+ <newName>${onap.nexus.dockerregistry.daily}/${docker.image.name}:${project.version}</newName>
+ <pushImage>true</pushImage>
+ </configuration>
+ </execution>
+ <execution>
+ <id>tag-and-push-image-with-version-and-date</id>
+ <phase>deploy</phase>
+ <goals>
+ <goal>tag</goal>
+ </goals>
+ <configuration>
+ <image>${docker.image.name}:latest</image>
+ <newName>${onap.nexus.dockerregistry.daily}/${docker.image.name}:${project.version}-${maven.build.timestamp}Z</newName>
+ <pushImage>true</pushImage>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
</project>
diff --git a/src/main/docker/postgres_scripts/Dockerfile b/src/main/docker/postgres_scripts/Dockerfile
deleted file mode 100644
index 9ccb016..0000000
--- a/src/main/docker/postgres_scripts/Dockerfile
+++ /dev/null
@@ -1,7 +0,0 @@
-from busybox
-
-RUN mkdir /docker-entrypoint-initdb.d
-
-ADD createdb.sql /tmp
-
-
diff --git a/src/main/docker/son-handler/Dockerfile b/src/main/docker/son-handler/Dockerfile
deleted file mode 100644
index 6e50fb1..0000000
--- a/src/main/docker/son-handler/Dockerfile
+++ /dev/null
@@ -1,17 +0,0 @@
-FROM java:openjdk-8
-
-ADD config.json /etc/config.json
-
-ADD policy.crt /policy.crt
-
-RUN keytool -import -file /policy.crt -alias policycert -keystore /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/cacerts -storepass changeit -noprompt
-
-COPY pci-handler-1.0-SNAPSHOT.jar application.jar
-
-ADD entrypoint.sh .
-
-RUN chmod +x entrypoint.sh
-
-EXPOSE 8080
-
-ENTRYPOINT ["./entrypoint.sh"]
diff --git a/src/main/docker/son-handler/config.json b/src/main/docker/son-handler/config.json
deleted file mode 100644
index 6cdf863..0000000
--- a/src/main/docker/son-handler/config.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "topics":[
- {
- "name": "PCI-NOTIF-TOPIC-NGHBR-LIST-CHANGE-INFO",
- "producer": "SDNR_API_KEY",
- "consumer": "PCIMS_API_KEY"
- },
- {
- "name": "DCAE_CL_OUTPUT",
- "producer": "PCIMS_API_KEY",
- "consumer": "POLICY_API_KEY"
- },
- {
- "name": "SDNR-CL",
- "producer": "POLICY_API_KEY",
- "consumer": "SDNR_API_KEY"
- },
- {
- "name": "SDNR-CL-RSP",
- "producer": "SDNR_API_KEY",
- "consumer": "POLICY_API_KEY"
- }
- ],
- "sdnrTopic": "PCI-NOTIF-TOPIC-NGHBR-LIST-CHANGE-INFO",
- "policyTopic": "DCAE_CL_OUTPUT",
- "servers": ["DMAAP_SERVER:3904"],
- "managerApiKey": "MANAGER_API_KEY",
- "managerSecretKey": "MANAGER_SECRET_KEY",
- "pcimsApiKey": "PCIMS_API_KEY",
- "pcimsSecretKey": "PCIMS_SECRET_KEY",
- "cg": "pcims-cg",
- "cid": "pcims-cid",
- "pollingTimeout": "60",
- "pollingInterval": "20",
- "minCollision": "5",
- "minConfusion": "5",
- "sdnrService": "http://SDNR_SERVICE",
- "oofService": "http://OOF_SERVICE",
- "policyService": "https://POLICY_SERVICE",
- "sourceId": "PCIHMS",
- "callbackUrl": "http://pcims.onap:8080/callbackUrl",
- "policyName": "com.Config_PCIMS_CONFIG_POLICY.1.xml",
- "configName": "PCIMS_CONFIG_POLICY",
- "optimizers": ["pci"],
- "bufferTime": "60000",
- "numSolutions": "1",
- "maximumClusters": "5"
-}
diff --git a/src/main/docker/son-handler/entrypoint.sh b/src/main/docker/son-handler/entrypoint.sh
deleted file mode 100644
index 36e3178..0000000
--- a/src/main/docker/son-handler/entrypoint.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash
-#*******************************************************************************
-# ============LICENSE_START=======================================================
-# son-handler
-# ================================================================================
-# Copyright (C) 2019 Wipro Limited.
-# ==============================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END=========================================================
-#
-#*******************************************************************************
-
-sed -i s/DMAAP_SERVER/$DMAAPSERVER/ /etc/config.json
-sed -i s/SDNR_SERVICE/$SDNRSERVICE/ /etc/config.json
-sed -i s/OOF_SERVICE/$OOFSERVICE/ /etc/config.json
-sed -i s/POLICY_SERVICE/$POLICYSERVICE/ /etc/config.json
-sed -i s/PCIMS_SERVICE_HOST/$PCIMS_SERVICE_HOST/ /etc/config.json
-sed -i s/MANAGER_API_KEY/$MANAGERAPIKEY/ /etc/config.json
-sed -i s/MANAGER_SECRET_KEY/$MANAGERSECRETKEY/ /etc/config.json
-sed -i s/PCIMS_API_KEY/$PCIMSAPIKEY/ /etc/config.json
-sed -i s/PCIMS_SECRET_KEY/$PCIMSSECRETKEY/ /etc/config.json
-sed -i s/SDNR_API_KEY/$SDNRAPIKEY/ /etc/config.json
-sed -i s/POLICY_API_KEY/$POLICYAPIKEY/ /etc/config.json
-java -jar application.jar
-
diff --git a/src/main/docker/son-handler/policy.crt b/src/main/docker/son-handler/policy.crt
deleted file mode 100644
index e017bf4..0000000
--- a/src/main/docker/son-handler/policy.crt
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEkzCCA3ugAwIBAgIIaG5i2/yYcycwDQYJKoZIhvcNAQELBQAwRzELMAkGA1UE
-BhMCVVMxDTALBgNVBAoMBE9OQVAxDjAMBgNVBAsMBU9TQUFGMRkwFwYDVQQDDBBp
-bnRlcm1lZGlhdGVDQV85MB4XDTE4MTAxMTIyMDkwNVoXDTE5MDQxMTIyMDkwNVow
-bzEPMA0GA1UEAwwGcG9saWN5MQ8wDQYJKoZIhvcNAQkBFgAxHzAdBgNVBAsMFnBv
-bGljeUBwb2xpY3kub25hcC5vcmcxDjAMBgNVBAsMBU9TQUFGMQ0wCwYDVQQKDARP
-TkFQMQswCQYDVQQGEwJVUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-ALdwMkNAqr43X9eBdGV9xT+Gi2usZC8GdOvAuEJ0srqdLY1baSMrGDY6sN4o5o/X
-fD+wwoaTYtnrrESC13BEoXRo7vIuqxKnNjqkljHcgk09m8BaBB5zQQQULoeEEVIV
-7c9+agrE+Jg3BPsilyWnJco6zLPpjSuTlqEvCtUjk6aQ+dS8ItHN26c/W42AuyLn
-iofaWY2HZdhOZJg6UetyITOywQ5o3vl09tE+zPzk7cixsxVUJy2aunUuDcrFiyKf
-tSX3XBAxaspgVtnNrUheudwkWc5pdBFNYSJS8NSCc7yDuAz0AfrCS7Tcd4IZG7Lw
-zJjMoIj0fOsinFViPkiyAA8CAwEAAaOCAVkwggFVMAkGA1UdEwQCMAAwDgYDVR0P
-AQH/BAQDAgXgMCAGA1UdJQEB/wQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjBUBgNV
-HSMETTBLgBSB95lbELnIjN7zUl7qTmmgQz6s3aEwpC4wLDEOMAwGA1UECwwFT1NB
-QUYxDTALBgNVBAoMBE9OQVAxCzAJBgNVBAYTAlVTggEHMB0GA1UdDgQWBBTO1RjR
-xvjgraJ+1nZUENDKSngpITCBoAYDVR0RBIGYMIGVggZwb2xpY3mCBSoucGRwghwq
-LnBkcC5vbmFwLnN2Yy5jbHVzdGVyLmxvY2FsggZicm1zZ3eCC2JybXNndy5vbmFw
-ggZkcm9vbHOCC2Ryb29scy5vbmFwggNwYXCCCHBhcC5vbmFwggNwZHCCCHBkcC5v
-bmFwgh5wb2xpY3kuYXBpLnNpbXBsZWRlbW8ub25hcC5vcmcwDQYJKoZIhvcNAQEL
-BQADggEBAHuhhuTD5zcrBaPGU7NT9V82BwrCPfEH2UTxracU/P/3YRQ4yBcnnyX4
-FznNAHJOrNnwdz7kht0XLV2Td5iI+Gs0X5AVlQE2paSgiJRXPkwU7un5xk7a6cbN
-7lnx5RcAxVBi6Nf078cSPu0I+E344MUoYwKb4haBKTB2lN48W7HxzePdnWZiPhrR
-iTIKwUa1WvKPG9KpbOZDbukCfStPeMb2i0G3rk4T/Vr1cDRLyG8u1nnJEHeAoU+t
-SWAq9bKpspFW0rRd2m8jOcql9ja7OUSgU0Qt10xoUQrkogS3Y8P8ib0Nf/kuyTnJ
-aAchKp0OSx2z8HceBCQPEJsR5Cj1h2M=
------END CERTIFICATE-----
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/Application.java b/src/main/java/org/onap/dcaegen2/services/sonhms/Application.java
index 7eb9e62..22d58d9 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/Application.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/Application.java
@@ -21,33 +21,19 @@
package org.onap.dcaegen2.services.sonhms;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.onap.dcaegen2.services.sonhms.dmaap.DmaapClient;
-import org.onap.dcaegen2.services.sonhms.restclient.PolicyRestClient;
-import org.onap.dcaegen2.services.sonhms.utils.FileIo;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.annotation.PostConstruct;
+import javax.sql.DataSource;
+import org.onap.dcaegen2.services.sonhms.controller.ConfigFetchFromCbs;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.jdbc.DataSourceBuilder;
+import org.springframework.context.annotation.Bean;
-@SpringBootApplication
+@SpringBootApplication
public class Application {
- @Autowired
- DmaapClient dmaapClient;
-
- @Autowired
- MainThreadComponent mainThreadComponent;
private static Logger log = LoggerFactory.getLogger(Application.class);
@@ -55,75 +41,35 @@ public class Application {
* Main method where the pci context is initially set.
*/
public static void main(String[] args) {
+
+ ConfigFetchFromCbs configFetchFromCbs = new ConfigFetchFromCbs();
+ configFetchFromCbs.getAppConfig();
+ try {
+ Thread.sleep(10000);
+ } catch (InterruptedException e) {
+ log.debug("InterruptedException : {}",e);
+ }
+ log.info("after 10s sleep");
+ log.info("Starting spring boot application");
SpringApplication.run(Application.class);
}
/**
- * initialization.
- */
- @PostConstruct
- void init() {
- getConfig();
- fetchIntialConfigFromPolicy();
- NewNotification newNotification = new NewNotification(false);
- dmaapClient.initClient(newNotification);
- mainThreadComponent.init(newNotification);
- }
-
- /**
- * Gets configuration from policy.
- */
- @SuppressWarnings("unchecked")
- private void fetchIntialConfigFromPolicy() {
- log.debug("fetch initial config from policy");
- String configPolicyResponseJson = PolicyRestClient.fetchConfigFromPolicy();
- if (configPolicyResponseJson.equals("Post failed")) {
- log.debug("cannot fetch config from policy");
- return;
- }
- ObjectMapper mapper = new ObjectMapper();
- List<HashMap<String, Object>> configPolicyResponse = new ArrayList<>();
- try {
- configPolicyResponse = mapper.readValue(configPolicyResponseJson, List.class);
- } catch (IOException e) {
- log.debug("exception during parsing response from policy", e);
- }
- String configPolicyJson = null;
- if (configPolicyResponse != null) {
- configPolicyJson = (String) configPolicyResponse.get(0).get("config");
- } else {
- return;
- }
- Map<String, Object> configPolicyMap = new HashMap<>();
- try {
- configPolicyMap = mapper.readValue(configPolicyJson, HashMap.class);
- } catch (IOException e) {
- log.debug("exception during parsing config body from policy", e);
- }
- ConfigPolicy configPolicy = ConfigPolicy.getInstance();
- configPolicy.setConfig(configPolicyMap);
- if (log.isDebugEnabled()) {
- log.debug(configPolicy.toString());
- }
- }
-
- /**
- * Gets config from config.json.
- *
+ * DataSource bean.
*/
- private void getConfig() {
- log.debug("getting initial config");
- String configJson = FileIo.readFromFile("/etc/config.json");
- ObjectMapper mapper = new ObjectMapper();
+ @Bean
+ public DataSource dataSource() {
Configuration configuration = Configuration.getInstance();
- try {
- mapper.readerForUpdating(configuration).readValue(configJson);
- if (log.isDebugEnabled()) {
- log.debug(configuration.toString());
- }
- } catch (IOException e) {
- log.debug("exception during parsing configuration", e);
- }
+
+ String url = "jdbc:postgresql://" + configuration.getPgHost() + ":" + configuration.getPgPort() + "/sonhms";
+
+ return DataSourceBuilder
+ .create()
+ .url(url)
+ .username(configuration.getPgUsername())
+ .password(configuration.getPgPassword())
+ .build();
}
+
}
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/BufferNotificationComponent.java b/src/main/java/org/onap/dcaegen2/services/sonhms/BufferNotificationComponent.java
index 50dec11..d1297b4 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/BufferNotificationComponent.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/BufferNotificationComponent.java
@@ -21,10 +21,11 @@
package org.onap.dcaegen2.services.sonhms;
+import java.util.List;
+
import org.onap.dcaegen2.services.sonhms.dao.BufferedNotificationsRepository;
import org.onap.dcaegen2.services.sonhms.entity.BufferedNotifications;
import org.onap.dcaegen2.services.sonhms.utils.BeanUtil;
-import java.util.List;
public class BufferNotificationComponent {
@@ -45,7 +46,7 @@ public class BufferNotificationComponent {
* Retrieves buffered notification from the database.
*/
public List<String> getBufferedNotification(String clusterId) {
- BufferedNotificationsRepository bufferedNotificationsRepository = BeanUtil
+ BufferedNotificationsRepository bufferedNotificationsRepository = BeanUtil
.getBean(BufferedNotificationsRepository.class);
return bufferedNotificationsRepository.getNotificationsFromQueue(clusterId);
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/ClusterDetailsComponent.java b/src/main/java/org/onap/dcaegen2/services/sonhms/ClusterDetailsComponent.java
index 8e4b357..81d76ef 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/ClusterDetailsComponent.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/ClusterDetailsComponent.java
@@ -21,12 +21,12 @@
package org.onap.dcaegen2.services.sonhms;
+import java.util.List;
+
import org.onap.dcaegen2.services.sonhms.dao.ClusterDetailsRepository;
import org.onap.dcaegen2.services.sonhms.entity.ClusterDetails;
import org.onap.dcaegen2.services.sonhms.utils.BeanUtil;
-import java.util.List;
-
public class ClusterDetailsComponent {
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/Configuration.java b/src/main/java/org/onap/dcaegen2/services/sonhms/Configuration.java
index a90a0b9..1126102 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/Configuration.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/Configuration.java
@@ -22,64 +22,86 @@
package org.onap.dcaegen2.services.sonhms;
import java.util.List;
+import java.util.Map;
public class Configuration {
private static Configuration instance = null;
- private List<Topic> topics;
- private String sdnrTopic;
- private String policyTopic;
- private List<String> servers;
- private String managerApiKey;
- private String managerSecretKey;
- private String pcimsApiKey;
- private String pcimsSecretKey;
+ private String pgHost;
+ private int pgPort;
+ private String pgUsername;
+ private String pgPassword;
+ private List<String> dmaapServers;
+ private String configDbService;
+ private String oofService;
private String cg;
private String cid;
private int pollingInterval;
private int pollingTimeout;
private int minCollision;
private int minConfusion;
- private String sdnrService;
- private String policyService;
- private String oofService;
private String sourceId;
- private String policyName;
- private String configName;
private String callbackUrl;
private List<String> optimizers;
private int numSolutions;
private int bufferTime;
- private int maximumClusters;
- private String consulHost;
- private String hostName;
- private String configBindingService;
+ private int maximumClusters;
+ private String aafUsername;
+ private String aafPassword;
+ private Map<String,Object> streamsSubscribes;
+ private Map<String,Object> streamsPublishes;
- public String getConsulHost() {
- return consulHost;
- }
+ public boolean isSecured() {
+ if(aafUsername.equals("")||aafUsername==null){
+ return false;
+ }
+ else
+ return true;
+ }
- public void setConsulHost(String consulHost) {
- this.consulHost = consulHost;
- }
- public String getHostName() {
- return hostName;
- }
+
+ public String getAafUsername() {
+ return aafUsername;
+ }
- public void setHostName(String hostName) {
- this.hostName = hostName;
- }
- public String getConfigBindingService() {
- return configBindingService;
- }
- public void setConfigBindingService(String configBindingService) {
- this.configBindingService = configBindingService;
- }
+ public void setAafUsername(String aafUsername) {
+ this.aafUsername = aafUsername;
+ }
+
+
+
+ public String getAafPassword() {
+ return aafPassword;
+ }
+
+
+
+ public void setAafPassword(String aafPassword) {
+ this.aafPassword = aafPassword;
+ }
+
+
- public int getMaximumClusters() {
+ public Map<String, Object> getStreamsSubscribes() {
+ return streamsSubscribes;
+ }
+
+ public void setStreamsSubscribes(Map<String, Object> streamsSubscribes) {
+ this.streamsSubscribes = streamsSubscribes;
+ }
+
+ public Map<String, Object> getStreamsPublishes() {
+ return streamsPublishes;
+ }
+
+ public void setStreamsPublishes(Map<String, Object> streamsPublishes) {
+ this.streamsPublishes = streamsPublishes;
+ }
+
+ public int getMaximumClusters() {
return maximumClusters;
}
@@ -101,46 +123,6 @@ public class Configuration {
return instance;
}
- public List<String> getServers() {
- return servers;
- }
-
- public void setServers(List<String> servers) {
- this.servers = servers;
- }
-
- public String getManagerApiKey() {
- return managerApiKey;
- }
-
- public void setManagerApiKey(String managerApiKey) {
- this.managerApiKey = managerApiKey;
- }
-
- public String getManagerSecretKey() {
- return managerSecretKey;
- }
-
- public void setManagerSecretKey(String managerSecretKey) {
- this.managerSecretKey = managerSecretKey;
- }
-
- public String getPcimsApiKey() {
- return pcimsApiKey;
- }
-
- public void setPcimsApiKey(String pcimsApiKey) {
- this.pcimsApiKey = pcimsApiKey;
- }
-
- public String getPcimsSecretKey() {
- return pcimsSecretKey;
- }
-
- public void setPcimsSecretKey(String pcimsSecretKey) {
- this.pcimsSecretKey = pcimsSecretKey;
- }
-
public String getCg() {
return cg;
}
@@ -189,22 +171,6 @@ public class Configuration {
this.minConfusion = minConfusion;
}
- public String getSdnrService() {
- return sdnrService;
- }
-
- public void setSdnrService(String sdnrService) {
- this.sdnrService = sdnrService;
- }
-
- public String getPolicyService() {
- return policyService;
- }
-
- public void setPolicyService(String policyService) {
- this.policyService = policyService;
- }
-
public String getOofService() {
return oofService;
}
@@ -221,23 +187,7 @@ public class Configuration {
this.sourceId = sourceId;
}
- public String getPolicyName() {
- return policyName;
- }
-
- public void setPolicyName(String policyName) {
- this.policyName = policyName;
- }
-
- public String getConfigName() {
- return configName;
- }
-
- public void setConfigName(String configName) {
- this.configName = configName;
- }
-
- public String getCallbackUrl() {
+ public String getCallbackUrl() {
return callbackUrl;
}
@@ -269,41 +219,70 @@ public class Configuration {
this.bufferTime = bufferTime;
}
- public List<Topic> getTopics() {
- return topics;
+ public String getPgHost() {
+ return pgHost;
+ }
+
+ public void setPgHost(String pgHost) {
+ this.pgHost = pgHost;
}
- public void setTopics(List<Topic> topics) {
- this.topics = topics;
+ public int getPgPort() {
+ return pgPort;
}
- public String getSdnrTopic() {
- return sdnrTopic;
+ public void setPgPort(int pgPort) {
+ this.pgPort = pgPort;
}
- public void setSdnrTopic(String sdnrTopic) {
- this.sdnrTopic = sdnrTopic;
+ public String getPgUsername() {
+ return pgUsername;
}
- public String getPolicyTopic() {
- return policyTopic;
+ public void setPgUsername(String pgUsername) {
+ this.pgUsername = pgUsername;
}
- public void setPolicyTopic(String policyTopic) {
- this.policyTopic = policyTopic;
+ public String getPgPassword() {
+ return pgPassword;
}
- @Override
- public String toString() {
- return "Configuration [topics=" + topics + ", sdnrTopic=" + sdnrTopic + ", policyTopic=" + policyTopic
- + ", servers=" + servers + ", managerApiKey=" + managerApiKey + ", managerSecretKey=" + managerSecretKey
- + ", pcimsApiKey=" + pcimsApiKey + ", pcimsSecretKey=" + pcimsSecretKey + ", cg=" + cg + ", cid=" + cid
- + ", pollingInterval=" + pollingInterval + ", pollingTimeout=" + pollingTimeout + ", minCollision="
- + minCollision + ", minConfusion=" + minConfusion + ", sdnrService=" + sdnrService + ", policyService="
- + policyService + ", oofService=" + oofService + ", sourceId=" + sourceId + ", policyName=" + policyName
- + ", configName=" + configName + ", callbackUrl=" + callbackUrl + ", optimizers=" + optimizers
- + ", numSolutions=" + numSolutions + ", bufferTime=" + bufferTime + ", maximumClusters="
- + maximumClusters + "]";
+ public void setPgPassword(String pgPassword) {
+ this.pgPassword = pgPassword;
}
+
+ public List<String> getDmaapServers() {
+ return dmaapServers;
+ }
+
+ public void setDmaapServers(List<String> dmaapServers) {
+ this.dmaapServers = dmaapServers;
+ }
+
+ public String getConfigDbService() {
+ return configDbService;
+ }
+
+ public void setConfigDbService(String configDbService) {
+ this.configDbService = configDbService;
+ }
+
+
+
+ @Override
+ public String toString() {
+ return "Configuration [pgHost=" + pgHost + ", pgPort=" + pgPort + ", pgUsername=" + pgUsername + ", pgPassword="
+ + pgPassword + ", dmaapServers=" + dmaapServers + ", configDbService=" + configDbService + ", oofService="
+ + oofService + ", cg=" + cg + ", cid=" + cid + ", pollingInterval=" + pollingInterval
+ + ", pollingTimeout=" + pollingTimeout + ", minCollision=" + minCollision + ", minConfusion="
+ + minConfusion + ", sourceId=" + sourceId + ", callbackUrl=" + callbackUrl + ", optimizers="
+ + optimizers + ", numSolutions=" + numSolutions + ", bufferTime=" + bufferTime + ", maximumClusters="
+ + maximumClusters + ", aafUsername=" + aafUsername + ", aafPassword=" + aafPassword
+ + ", streamsSubscribes=" + streamsSubscribes + ", streamsPublishes=" + streamsPublishes + "]";
+ }
+
+
+
+
}
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/ConfigurationFetcher.java b/src/main/java/org/onap/dcaegen2/services/sonhms/ConfigurationFetcher.java
deleted file mode 100644
index 4a55393..0000000
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/ConfigurationFetcher.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * ============LICENSE_START=======================================================
- * son-handler
- * ================================================================================
- * Copyright (C) 2019 Wipro Limited.
- * ==============================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- *******************************************************************************/
-
-package org.onap.dcaegen2.services.sonhms;
-
-import org.onap.dcaegen2.services.sonhms.utils.SonHandlerRestTemplate;
-
-import org.json.JSONArray;
-import org.json.JSONObject;
-import org.json.JSONTokener;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.core.ParameterizedTypeReference;
-import org.springframework.http.ResponseEntity;
-
-
-public class ConfigurationFetcher {
- private static Logger log = LoggerFactory.getLogger(ConfigurationFetcher.class);
-
- /**
- * method that fetches config from config binding service.
- */
- public void fetchFromCbs() {
-
- Configuration configuration = Configuration.getInstance();
- String consulHost = configuration.getConsulHost();
- String configBindingService = configuration.getConfigBindingService();
- ResponseEntity<String> response = null;
- String requestUrl = "";
- if ((consulHost != null) && (configBindingService != null)) {
- requestUrl = consulHost + ":8500/v1/catalog/service/" + configBindingService;
- response = SonHandlerRestTemplate.sendPostRequest(requestUrl, "",
- new ParameterizedTypeReference<String>() {});
- }
- JSONTokener jsonTokener = new JSONTokener(response.getBody());
- JSONObject cbsjobj = (JSONObject) new JSONArray(jsonTokener).get(0);
- String cbsUrl = "";
- String configurationRequestUrl = "";
- ResponseEntity<String> configurationResponse = null;
- if (cbsjobj.has("ServiceAddress") && cbsjobj.has("ServicePort")) {
- cbsUrl = cbsjobj.getString("ServiceAddress") + ":" + cbsjobj.getInt("ServicePort");
-
- }
-
- configurationRequestUrl = cbsUrl + "/service_component/" + configuration.getHostName();
- configurationResponse = SonHandlerRestTemplate.sendPostRequest1(configurationRequestUrl, "",
- new ParameterizedTypeReference<String>() {});
- JSONObject config = new JSONObject(new JSONTokener(configurationResponse.getBody()));
- String configString = config.toString();
- log.debug("config:{}",configString);
- }
-
-
-} \ No newline at end of file
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/DmaapNotificationsComponent.java b/src/main/java/org/onap/dcaegen2/services/sonhms/DmaapNotificationsComponent.java
index f28de63..f2c444c 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/DmaapNotificationsComponent.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/DmaapNotificationsComponent.java
@@ -22,13 +22,14 @@
package org.onap.dcaegen2.services.sonhms;
import com.fasterxml.jackson.databind.ObjectMapper;
-import org.onap.dcaegen2.services.sonhms.dao.DmaapNotificationsRepository;
-import org.onap.dcaegen2.services.sonhms.model.Notification;
-import org.onap.dcaegen2.services.sonhms.utils.BeanUtil;
+
import fj.data.Either;
import java.io.IOException;
+import org.onap.dcaegen2.services.sonhms.dao.DmaapNotificationsRepository;
+import org.onap.dcaegen2.services.sonhms.model.Notification;
+import org.onap.dcaegen2.services.sonhms.utils.BeanUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/EventHandler.java b/src/main/java/org/onap/dcaegen2/services/sonhms/EventHandler.java
index 312ca60..df24aa8 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/EventHandler.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/EventHandler.java
@@ -22,16 +22,9 @@ package org.onap.dcaegen2.services.sonhms;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
-import org.onap.dcaegen2.services.sonhms.child.ChildThread;
-import org.onap.dcaegen2.services.sonhms.child.Graph;
-import org.onap.dcaegen2.services.sonhms.entity.ClusterDetails;
-import org.onap.dcaegen2.services.sonhms.exceptions.ConfigDbNotFoundException;
-import org.onap.dcaegen2.services.sonhms.model.FapServiceList;
-import org.onap.dcaegen2.services.sonhms.model.Notification;
-import org.onap.dcaegen2.services.sonhms.utils.ClusterUtils;
-import org.onap.dcaegen2.services.sonhms.utils.ThreadUtils;
import fj.data.Either;
+
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
@@ -41,6 +34,15 @@ import java.util.Map.Entry;
import java.util.Set;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ExecutorService;
+
+import org.onap.dcaegen2.services.sonhms.child.ChildThread;
+import org.onap.dcaegen2.services.sonhms.child.Graph;
+import org.onap.dcaegen2.services.sonhms.entity.ClusterDetails;
+import org.onap.dcaegen2.services.sonhms.exceptions.ConfigDbNotFoundException;
+import org.onap.dcaegen2.services.sonhms.model.FapServiceList;
+import org.onap.dcaegen2.services.sonhms.model.Notification;
+import org.onap.dcaegen2.services.sonhms.utils.ClusterUtils;
+import org.onap.dcaegen2.services.sonhms.utils.ThreadUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -82,11 +84,10 @@ public class EventHandler {
try {
List<ClusterDetails> clusterDetails = clusterUtils.getAllClusters();
- NotificationToClusterMapping mapping = new NotificationToClusterMapping();
- mapping = clusterUtils.getClustersForNotification(notification, clusterDetails);
+ NotificationToClusterMapping mapping = clusterUtils.getClustersForNotification(notification,
+ clusterDetails);
// Matching cells
- System.out.println(mapping);
if (mapping.getCellsinCluster() != null) {
handleMatchingCells(mapping.getCellsinCluster(), clusterDetails);
}
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/MainThread.java b/src/main/java/org/onap/dcaegen2/services/sonhms/MainThread.java
index 2026500..84775ad 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/MainThread.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/MainThread.java
@@ -21,10 +21,6 @@
package org.onap.dcaegen2.services.sonhms;
-import org.onap.dcaegen2.services.sonhms.model.Notification;
-import org.onap.dcaegen2.services.sonhms.utils.ClusterUtils;
-import org.onap.dcaegen2.services.sonhms.utils.ThreadUtils;
-
import fj.data.Either;
import java.util.HashMap;
@@ -33,6 +29,9 @@ import java.util.concurrent.BlockingQueue;
import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue;
+import org.onap.dcaegen2.services.sonhms.model.Notification;
+import org.onap.dcaegen2.services.sonhms.utils.ClusterUtils;
+import org.onap.dcaegen2.services.sonhms.utils.ThreadUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/MainThreadComponent.java b/src/main/java/org/onap/dcaegen2/services/sonhms/MainThreadComponent.java
index f83541a..1b4ff26 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/MainThreadComponent.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/MainThreadComponent.java
@@ -21,8 +21,11 @@
package org.onap.dcaegen2.services.sonhms;
+import javax.annotation.PostConstruct;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
@@ -30,12 +33,14 @@ public class MainThreadComponent {
private static Logger log = LoggerFactory.getLogger(MainThreadComponent.class);
-
+ @Autowired
+ private NewNotification newNotification;
/**
* main thread initialization.
*/
- public void init(NewNotification newNotification) {
+ @PostConstruct
+ public void init() {
log.debug("initializing main thread");
Thread thread = new Thread(new MainThread(newNotification));
thread.start();
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/NewNotification.java b/src/main/java/org/onap/dcaegen2/services/sonhms/NewNotification.java
index 9f6e57f..703204b 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/NewNotification.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/NewNotification.java
@@ -21,6 +21,9 @@
package org.onap.dcaegen2.services.sonhms;
+import org.springframework.stereotype.Component;
+
+@Component
public class NewNotification {
private Boolean newNotif;
@@ -37,5 +40,9 @@ public class NewNotification {
super();
this.newNotif = newNotif;
}
+
+ public NewNotification() {
+
+ }
}
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/NotificationToClusterMapping.java b/src/main/java/org/onap/dcaegen2/services/sonhms/NotificationToClusterMapping.java
index 14961e5..d507f0c 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/NotificationToClusterMapping.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/NotificationToClusterMapping.java
@@ -21,11 +21,11 @@
package org.onap.dcaegen2.services.sonhms;
-import org.onap.dcaegen2.services.sonhms.model.FapServiceList;
-
import java.util.List;
import java.util.Map;
+import org.onap.dcaegen2.services.sonhms.model.FapServiceList;
+
public class NotificationToClusterMapping {
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/SonController.java b/src/main/java/org/onap/dcaegen2/services/sonhms/SonController.java
index 15aa907..3c7d6ac 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/SonController.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/SonController.java
@@ -23,7 +23,6 @@ package org.onap.dcaegen2.services.sonhms;
import org.onap.dcaegen2.services.sonhms.child.ChildThread;
import org.onap.dcaegen2.services.sonhms.restclient.AsyncResponseBody;
-
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/SonRequestsComponent.java b/src/main/java/org/onap/dcaegen2/services/sonhms/SonRequestsComponent.java
index 51607fa..a0851ce 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/SonRequestsComponent.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/SonRequestsComponent.java
@@ -22,7 +22,6 @@
package org.onap.dcaegen2.services.sonhms;
import org.onap.dcaegen2.services.sonhms.dao.SonRequestsRepository;
-
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/child/ChildThread.java b/src/main/java/org/onap/dcaegen2/services/sonhms/child/ChildThread.java
index eff7a84..d12092b 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/child/ChildThread.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/child/ChildThread.java
@@ -21,14 +21,6 @@
package org.onap.dcaegen2.services.sonhms.child;
-import org.onap.dcaegen2.services.sonhms.Configuration;
-import org.onap.dcaegen2.services.sonhms.dao.ClusterDetailsRepository;
-import org.onap.dcaegen2.services.sonhms.model.FapServiceList;
-import org.onap.dcaegen2.services.sonhms.model.ThreadId;
-import org.onap.dcaegen2.services.sonhms.restclient.AsyncResponseBody;
-import org.onap.dcaegen2.services.sonhms.utils.BeanUtil;
-import org.onap.dcaegen2.services.sonhms.utils.ClusterUtils;
-
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.HashMap;
@@ -37,6 +29,14 @@ import java.util.Map;
import java.util.UUID;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
+
+import org.onap.dcaegen2.services.sonhms.Configuration;
+import org.onap.dcaegen2.services.sonhms.dao.ClusterDetailsRepository;
+import org.onap.dcaegen2.services.sonhms.model.FapServiceList;
+import org.onap.dcaegen2.services.sonhms.model.ThreadId;
+import org.onap.dcaegen2.services.sonhms.restclient.AsyncResponseBody;
+import org.onap.dcaegen2.services.sonhms.utils.BeanUtil;
+import org.onap.dcaegen2.services.sonhms.utils.ClusterUtils;
import org.slf4j.Logger;
import org.slf4j.MDC;
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/child/ChildThreadUtils.java b/src/main/java/org/onap/dcaegen2/services/sonhms/child/ChildThreadUtils.java
index d7ff57a..89cafd6 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/child/ChildThreadUtils.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/child/ChildThreadUtils.java
@@ -24,6 +24,10 @@ package org.onap.dcaegen2.services.sonhms.child;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
+
+import java.util.ArrayList;
+import java.util.List;
+
import org.onap.dcaegen2.services.sonhms.ConfigPolicy;
import org.onap.dcaegen2.services.sonhms.model.CellConfig;
import org.onap.dcaegen2.services.sonhms.model.CellPciPair;
@@ -36,8 +40,6 @@ import org.onap.dcaegen2.services.sonhms.model.Payload;
import org.onap.dcaegen2.services.sonhms.model.PolicyNotification;
import org.onap.dcaegen2.services.sonhms.model.Ran;
import org.onap.dcaegen2.services.sonhms.model.X0005b9Lte;
-import java.util.ArrayList;
-import java.util.List;
import org.slf4j.Logger;
public class ChildThreadUtils {
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/child/ClusterFormation.java b/src/main/java/org/onap/dcaegen2/services/sonhms/child/ClusterFormation.java
index 9a594a1..e248a59 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/child/ClusterFormation.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/child/ClusterFormation.java
@@ -21,14 +21,6 @@
package org.onap.dcaegen2.services.sonhms.child;
-import org.onap.dcaegen2.services.sonhms.ConfigPolicy;
-import org.onap.dcaegen2.services.sonhms.Configuration;
-import org.onap.dcaegen2.services.sonhms.dao.ClusterDetailsRepository;
-import org.onap.dcaegen2.services.sonhms.entity.ClusterDetails;
-import org.onap.dcaegen2.services.sonhms.model.FapServiceList;
-import org.onap.dcaegen2.services.sonhms.utils.BeanUtil;
-import org.onap.dcaegen2.services.sonhms.utils.ClusterUtils;
-
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Map;
@@ -36,6 +28,13 @@ import java.util.Properties;
import java.util.UUID;
import java.util.concurrent.BlockingQueue;
+import org.onap.dcaegen2.services.sonhms.ConfigPolicy;
+import org.onap.dcaegen2.services.sonhms.Configuration;
+import org.onap.dcaegen2.services.sonhms.dao.ClusterDetailsRepository;
+import org.onap.dcaegen2.services.sonhms.entity.ClusterDetails;
+import org.onap.dcaegen2.services.sonhms.model.FapServiceList;
+import org.onap.dcaegen2.services.sonhms.utils.BeanUtil;
+import org.onap.dcaegen2.services.sonhms.utils.ClusterUtils;
import org.slf4j.Logger;
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/child/Detection.java b/src/main/java/org/onap/dcaegen2/services/sonhms/child/Detection.java
index 847e2d5..2634d9a 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/child/Detection.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/child/Detection.java
@@ -21,12 +21,11 @@
package org.onap.dcaegen2.services.sonhms.child;
-import org.onap.dcaegen2.services.sonhms.model.CellPciPair;
-
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
+import org.onap.dcaegen2.services.sonhms.model.CellPciPair;
import org.slf4j.Logger;
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/child/Graph.java b/src/main/java/org/onap/dcaegen2/services/sonhms/child/Graph.java
index eedbd94..a76d0dd 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/child/Graph.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/child/Graph.java
@@ -24,8 +24,6 @@ package org.onap.dcaegen2.services.sonhms.child;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
-import org.onap.dcaegen2.services.sonhms.model.CellNeighbourList;
-import org.onap.dcaegen2.services.sonhms.model.CellPciPair;
import java.io.IOException;
import java.util.ArrayList;
@@ -34,12 +32,13 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.UUID;
-
import java.util.concurrent.ConcurrentHashMap;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
+import org.onap.dcaegen2.services.sonhms.model.CellNeighbourList;
+import org.onap.dcaegen2.services.sonhms.model.CellPciPair;
import org.slf4j.Logger;
public class Graph {
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/child/PnfUtils.java b/src/main/java/org/onap/dcaegen2/services/sonhms/child/PnfUtils.java
index 560fd52..30fd0b9 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/child/PnfUtils.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/child/PnfUtils.java
@@ -21,6 +21,12 @@
package org.onap.dcaegen2.services.sonhms.child;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
import org.onap.dcaegen2.services.sonhms.dao.CellInfoRepository;
import org.onap.dcaegen2.services.sonhms.entity.CellInfo;
import org.onap.dcaegen2.services.sonhms.exceptions.ConfigDbNotFoundException;
@@ -30,12 +36,6 @@ import org.onap.dcaegen2.services.sonhms.restclient.Solution;
import org.onap.dcaegen2.services.sonhms.restclient.SonSolution;
import org.onap.dcaegen2.services.sonhms.utils.BeanUtil;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-
public class PnfUtils {
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/child/StateOof.java b/src/main/java/org/onap/dcaegen2/services/sonhms/child/StateOof.java
index d731725..ae40dbf 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/child/StateOof.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/child/StateOof.java
@@ -21,6 +21,14 @@
package org.onap.dcaegen2.services.sonhms.child;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.BlockingQueue;
+
import org.onap.dcaegen2.services.sonhms.ConfigPolicy;
import org.onap.dcaegen2.services.sonhms.Configuration;
import org.onap.dcaegen2.services.sonhms.dao.SonRequestsRepository;
@@ -33,15 +41,6 @@ import org.onap.dcaegen2.services.sonhms.restclient.AsyncResponseBody;
import org.onap.dcaegen2.services.sonhms.restclient.OofRestClient;
import org.onap.dcaegen2.services.sonhms.restclient.Solution;
import org.onap.dcaegen2.services.sonhms.utils.BeanUtil;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-import java.util.concurrent.BlockingQueue;
-
import org.slf4j.Logger;
public class StateOof {
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/controller/ConfigFetchFromCbs.java b/src/main/java/org/onap/dcaegen2/services/sonhms/controller/ConfigFetchFromCbs.java
new file mode 100644
index 0000000..ab6d40d
--- /dev/null
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/controller/ConfigFetchFromCbs.java
@@ -0,0 +1,109 @@
+/*******************************************************************************
+ * ============LICENSE_START=======================================================
+ * son-handler
+ * ================================================================================
+ * Copyright (C) 2019 Wipro Limited.
+ * ==============================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ *******************************************************************************/
+
+package org.onap.dcaegen2.services.sonhms.controller;
+
+import java.util.List;
+import java.util.Map;
+
+import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.api.CbsClientFactory;
+import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.EnvProperties;
+import org.onap.dcaegen2.services.sdk.rest.services.model.logging.RequestDiagnosticContext;
+import org.onap.dcaegen2.services.sonhms.Configuration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ConfigFetchFromCbs {
+
+ private static Logger log = LoggerFactory.getLogger(ConfigFetchFromCbs.class);
+
+ /**
+ * Gets app config from CBS.
+ */
+ @SuppressWarnings("unchecked")
+ public void getAppConfig() {
+
+ // Generate RequestID and InvocationID which will be used when logging and in
+ // HTTP requests
+ log.debug("getAppconfig start ..");
+ RequestDiagnosticContext diagnosticContext = RequestDiagnosticContext.create();
+ log.debug("fiagnostic context : {}",diagnosticContext.toString());
+ // Read necessary properties from the environment
+ final EnvProperties env = EnvProperties.fromEnvironment();
+ log.debug("environments {}",env.toString());
+ Configuration configuration = Configuration.getInstance();
+
+ // Create the client and use it to get the configuration
+ CbsClientFactory.createCbsClient(env).flatMap(cbsClient -> cbsClient.get(diagnosticContext))
+ .subscribe(jsonObject -> {
+ log.debug("configuration from CBS {}", jsonObject.toString());
+ final Map<String,Object> streamsSubscribes=(Map<String, Object>) jsonObject.get("streams_subscribes");
+ final Map<String,Object> streamsPublishes=(Map<String, Object>) jsonObject.get("streams_publishes");
+ final int pgPort = jsonObject.get("postgres.port").getAsInt();
+ final int pollingInterval=jsonObject.get("sonhandler.pollingInterval").getAsInt();
+ final String pgPassword = jsonObject.get("postgres.password").getAsString();
+ final int numSolutions=jsonObject.get("sonhandler.numSolutions").getAsInt();
+ final int minConfusion = jsonObject.get("sonhandler.minConfusion").getAsInt();
+ final int maximumClusters =jsonObject.get("sonhandler.maximumClusters").getAsInt();
+ final int minCollision = jsonObject.get("sonhandler.minCollision").getAsInt();
+ final String sourceId = jsonObject.get("sonhandler.sourceId").getAsString();
+ final String pgUsername = jsonObject.get("postgres.username").getAsString();
+ final String pgHost = jsonObject.get("postgres.host").getAsString();
+ final List<String> dmaapServers = (List<String>) jsonObject.get("sonhandler.dmaap.server");
+ final String cg=jsonObject.get("sonhandler.cg").getAsString();
+ final int bufferTime=jsonObject.get("sonhandler.bufferTime").getAsInt();
+ final String cid =jsonObject.get("sonhandler.cid").getAsString();
+ final String configDbService=jsonObject.get("sonhandler.configDb.service").getAsString();
+ final String callbackUrl=jsonObject.get("sonhandler.callbackUrl").getAsString();
+ final List<String> optimizers = (List<String>) jsonObject.get("sonhandler.optimizers");
+ final String oofService=jsonObject.get("sonhandler.oof.service").getAsString();
+ final int pollingTimeout=jsonObject.get("sonhandler.pollingTimeout").getAsInt();
+
+ configuration.setStreamsSubscribes(streamsSubscribes);
+ configuration.setStreamsPublishes(streamsPublishes);
+ configuration.setPgPassword(pgPassword);
+ configuration.setPgPort(pgPort);
+ configuration.setPollingInterval(pollingInterval);
+ configuration.setNumSolutions(numSolutions);
+ configuration.setMinCollision(minCollision);
+ configuration.setMinConfusion(minConfusion);
+ configuration.setMaximumClusters(maximumClusters);
+ configuration.setPgHost(pgHost);
+ configuration.setPgUsername(pgUsername);
+ configuration.setSourceId(sourceId);
+ configuration.setDmaapServers(dmaapServers);
+ configuration.setCg(cg);
+ configuration.setCid(cid);
+ configuration.setBufferTime(bufferTime);
+ configuration.setConfigDbService(configDbService);
+ configuration.setCallbackUrl(callbackUrl);
+ configuration.setOptimizers(optimizers);
+ configuration.setOofService(oofService);
+ configuration.setPollingTimeout(pollingTimeout);
+
+ log.debug("configuration {}", configuration);
+ }, throwable -> {
+ log.warn("Ooops", throwable);
+ });
+
+ }
+
+}
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/controller/HealthCheck.java b/src/main/java/org/onap/dcaegen2/services/sonhms/controller/HealthCheck.java
index d0d9321..322c113 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/controller/HealthCheck.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/controller/HealthCheck.java
@@ -29,8 +29,8 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
public class HealthCheck {
- @RequestMapping(value = "/healthcheck", method = RequestMethod.GET)
- ResponseEntity<HttpStatus> healthCheck() {
- return new ResponseEntity(HttpStatus.OK);
- }
+ @RequestMapping(value = "/healthcheck", method = RequestMethod.GET)
+ ResponseEntity<HttpStatus> healthCheck() {
+ return new ResponseEntity<>(HttpStatus.OK);
+ }
}
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/dao/BufferedNotificationsRepository.java b/src/main/java/org/onap/dcaegen2/services/sonhms/dao/BufferedNotificationsRepository.java
index 43bb1f3..470f50d 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/dao/BufferedNotificationsRepository.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/dao/BufferedNotificationsRepository.java
@@ -21,10 +21,9 @@
package org.onap.dcaegen2.services.sonhms.dao;
-import org.onap.dcaegen2.services.sonhms.entity.BufferedNotifications;
-
import java.util.List;
+import org.onap.dcaegen2.services.sonhms.entity.BufferedNotifications;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/dao/CellInfoRepository.java b/src/main/java/org/onap/dcaegen2/services/sonhms/dao/CellInfoRepository.java
index 80066ad..fcafca9 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/dao/CellInfoRepository.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/dao/CellInfoRepository.java
@@ -22,7 +22,6 @@
package org.onap.dcaegen2.services.sonhms.dao;
import org.onap.dcaegen2.services.sonhms.entity.CellInfo;
-
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/dao/ClusterDetailsRepository.java b/src/main/java/org/onap/dcaegen2/services/sonhms/dao/ClusterDetailsRepository.java
index babef00..9bb54af 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/dao/ClusterDetailsRepository.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/dao/ClusterDetailsRepository.java
@@ -21,10 +21,9 @@
package org.onap.dcaegen2.services.sonhms.dao;
-import org.onap.dcaegen2.services.sonhms.entity.ClusterDetails;
-
import java.util.List;
+import org.onap.dcaegen2.services.sonhms.entity.ClusterDetails;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/dao/DmaapNotificationsRepository.java b/src/main/java/org/onap/dcaegen2/services/sonhms/dao/DmaapNotificationsRepository.java
index 356dca6..7d41728 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/dao/DmaapNotificationsRepository.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/dao/DmaapNotificationsRepository.java
@@ -22,7 +22,6 @@
package org.onap.dcaegen2.services.sonhms.dao;
import org.onap.dcaegen2.services.sonhms.entity.DmaapNotifications;
-
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/ApplicationTest.java b/src/main/java/org/onap/dcaegen2/services/sonhms/dao/FaultNotificationsRepository.java
index 1b3453a..31b9b98 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/ApplicationTest.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/dao/FaultNotificationsRepository.java
@@ -18,8 +18,26 @@
* ============LICENSE_END=========================================================
*
*******************************************************************************/
-package org.onap.dcaegen2.services.sonhms;
-public class ApplicationTest {
+package org.onap.dcaegen2.services.sonhms.dao;
+
+import org.onap.dcaegen2.services.sonhms.entity.FaultNotifications;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.CrudRepository;
+import org.springframework.stereotype.Repository;
+
+
+@Repository
+public interface FaultNotificationsRepository extends CrudRepository<FaultNotifications, String> {
+
+ @Query(nativeQuery = true,
+ value = "DELETE FROM fault_notifications "
+ + "WHERE notification = ( SELECT notification FROM fault_notifications ORDER BY "
+ + "created_at FOR UPDATE SKIP LOCKED LIMIT 1 ) RETURNING notification;")
+
+ public String getFaultNotificationFromQueue();
}
+
+
+
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/dao/SonRequestsRepository.java b/src/main/java/org/onap/dcaegen2/services/sonhms/dao/SonRequestsRepository.java
index b54661b..4bf9dd6 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/dao/SonRequestsRepository.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/dao/SonRequestsRepository.java
@@ -22,7 +22,6 @@
package org.onap.dcaegen2.services.sonhms.dao;
import org.onap.dcaegen2.services.sonhms.entity.PciRequests;
-
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/dmaap/DmaapClient.java b/src/main/java/org/onap/dcaegen2/services/sonhms/dmaap/DmaapClient.java
index 002f835..91e7117 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/dmaap/DmaapClient.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/dmaap/DmaapClient.java
@@ -21,25 +21,16 @@
package org.onap.dcaegen2.services.sonhms.dmaap;
-import com.att.nsa.apiClient.http.HttpException;
-import com.att.nsa.cambria.client.CambriaClient;
-import com.att.nsa.cambria.client.CambriaClientBuilders;
-import com.att.nsa.cambria.client.CambriaClientBuilders.ConsumerBuilder;
-import com.att.nsa.cambria.client.CambriaClientBuilders.TopicManagerBuilder;
import com.att.nsa.cambria.client.CambriaConsumer;
-import com.att.nsa.cambria.client.CambriaTopicManager;
+
import org.onap.dcaegen2.services.sonhms.Configuration;
import org.onap.dcaegen2.services.sonhms.NewNotification;
-import org.onap.dcaegen2.services.sonhms.Topic;
import org.onap.dcaegen2.services.sonhms.dao.DmaapNotificationsRepository;
import org.onap.dcaegen2.services.sonhms.entity.DmaapNotifications;
+import org.onap.dcaegen2.services.sonhms.utils.DmaapUtils;
+
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.security.GeneralSecurityException;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.Map;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
@@ -52,164 +43,82 @@ import org.springframework.stereotype.Component;
@Component
public class DmaapClient {
- @Autowired
- private DmaapNotificationsRepository dmaapNotificationsRepository;
- private Configuration configuration;
- private static Logger log = LoggerFactory.getLogger(DmaapClient.class);
- private static final String CONSUMER = "CONSUMER";
- private static final String PRODUCER = "PRODUCER";
- private static final String DESCRIPTION = "api keys for OOF PCI use case";
- private static final int PARTITION_COUNT = 1;
- private static final int REPLICATION_COUNT = 1;
- private NewNotification newNotification;
- private CambriaTopicManager topicManager;
-
- public class NotificationCallback {
- DmaapClient dmaapClient;
-
- public NotificationCallback(DmaapClient dmaapClient) {
- this.dmaapClient = dmaapClient;
- }
-
- public void activateCallBack(String msg) {
- handleNotification(msg);
- }
-
- private void handleNotification(String msg) {
- DmaapNotifications dmaapNotification = new DmaapNotifications();
- dmaapNotification.setNotification(msg);
- if (log.isDebugEnabled()) {
- log.debug(dmaapNotification.toString());
- }
- dmaapNotificationsRepository.save(dmaapNotification);
- newNotification.setNewNotif(true);
- }
- }
-
- /**
- * init dmaap client.
- */
- public void initClient(NewNotification newNotification) {
- log.debug("initializing client");
- configuration = Configuration.getInstance();
- if (log.isDebugEnabled()) {
- log.debug(configuration.toString());
- }
- this.newNotification = newNotification;
-
- createAndConfigureTopics();
- startClient();
- }
-
- /**
- * create and configures topics.
- */
- private void createAndConfigureTopics() {
-
- try {
- topicManager = buildCambriaClient(new TopicManagerBuilder().usingHosts(configuration.getServers())
- .authenticatedBy(configuration.getManagerApiKey(), configuration.getManagerSecretKey()));
- } catch (GeneralSecurityException | IOException e) {
- log.debug("exception during creating topic", e);
- }
- List<Topic> topics = configuration.getTopics();
-
- for (Topic topic : topics) {
- Set<String> topicsInDmaap = getAllTopicsFromDmaap();
-
- createTopic(topic, topicsInDmaap);
- subscribeToTopic(topic.getName(), topic.getProducer(), PRODUCER);
- subscribeToTopic(topic.getName(), topic.getConsumer(), CONSUMER);
-
- }
-
- topicManager.close();
-
- }
-
- /**
- * create topic.
- */
- private void createTopic(Topic topic, Set<String> topicsInDmaap) {
- if (topicsInDmaap.contains(topic.getName())) {
- log.debug("topic exists in dmaap");
- } else {
- try {
- topicManager.createTopic(topic.getName(), DESCRIPTION, PARTITION_COUNT, REPLICATION_COUNT);
- } catch (HttpException | IOException e) {
- log.debug("error while creating topic: {}", e);
- }
- }
- }
-
- /**
- * get all topics from dmaap.
- */
- private Set<String> getAllTopicsFromDmaap() {
- Set<String> topics = new HashSet<>();
- try {
- topics = topicManager.getTopics();
- } catch (IOException e) {
- log.debug("IOException while fetching topics");
- }
- return topics;
-
- }
-
- /**
- * start dmaap client.
- */
- private synchronized void startClient() {
-
- ScheduledExecutorService executorPool;
- CambriaConsumer cambriaConsumer = null;
-
- try {
- cambriaConsumer = new ConsumerBuilder()
- .authenticatedBy(configuration.getPcimsApiKey(), configuration.getPcimsSecretKey())
- .knownAs(configuration.getCg(), configuration.getCid()).onTopic(configuration.getSdnrTopic())
- .usingHosts(configuration.getServers()).withSocketTimeout(configuration.getPollingTimeout() * 1000)
- .build();
-
- // create notification consumers for SNDR and policy
- NotificationConsumer notificationConsumer = new NotificationConsumer(cambriaConsumer,
- new NotificationCallback(this));
-
- // start notification consumer threads
- executorPool = Executors.newScheduledThreadPool(10);
- executorPool.scheduleAtFixedRate(notificationConsumer, 0, configuration.getPollingInterval(),
- TimeUnit.SECONDS);
- } catch (MalformedURLException | GeneralSecurityException e) {
- log.debug("exception during starting client", e);
- }
-
- }
-
- /**
- * subscribe to topic.
- */
- private void subscribeToTopic(String topicName, String subscriberApiKey, String subscriberType) {
- if (subscriberType.equals(PRODUCER)) {
- try {
- topicManager.allowProducer(topicName, subscriberApiKey);
- } catch (HttpException | IOException e) {
- log.debug("error while subscribing to a topic: {}", e);
- }
- } else if (subscriberType.equals(CONSUMER)) {
- try {
- topicManager.allowConsumer(topicName, subscriberApiKey);
- } catch (HttpException | IOException e) {
- log.debug("error while subscribing to a topic: {}", e);
- }
- }
-
- }
-
- @SuppressWarnings("unchecked")
- private static <T extends CambriaClient> T buildCambriaClient(
- CambriaClientBuilders.AbstractAuthenticatedManagerBuilder<? extends CambriaClient> client)
- throws MalformedURLException, GeneralSecurityException {
- return (T) client.build();
- }
-
+ @Autowired
+ private DmaapNotificationsRepository dmaapNotificationsRepository;
+ private Configuration configuration;
+ private static Logger log = LoggerFactory.getLogger(DmaapClient.class);
+
+ @Autowired
+ private NewNotification newNotification;
+ private DmaapUtils dmaapUtils;
+
+ public class NotificationCallback {
+ DmaapClient dmaapClient;
+
+ public NotificationCallback(DmaapClient dmaapClient) {
+ this.dmaapClient = dmaapClient;
+ }
+
+ public void activateCallBack(String msg) {
+ handleNotification(msg);
+ }
+
+ private void handleNotification(String msg) {
+ DmaapNotifications dmaapNotification = new DmaapNotifications();
+ dmaapNotification.setNotification(msg);
+ if (log.isDebugEnabled()) {
+ log.debug(dmaapNotification.toString());
+ }
+ dmaapNotificationsRepository.save(dmaapNotification);
+ newNotification.setNewNotif(true);
+ }
+ }
+
+ /**
+ * init dmaap client.
+ */
+ public void initClient() {
+ log.debug("initializing client");
+ configuration = Configuration.getInstance();
+ if (log.isDebugEnabled()) {
+ log.debug(configuration.toString());
+ }
+
+ startClient();
+ }
+
+
+ /**
+ * start dmaap client.
+ */
+ @SuppressWarnings("unchecked")
+ private synchronized void startClient() {
+
+ Map<String,Object> streamSubscribes= Configuration.getInstance().getStreamsSubscribes();
+ String sdnrTopicUrl =((Map<String,String>)((Map<String,Object>)streamSubscribes.get("nbr_list_change_topic")).get("dmaap_info")).get("topic_url");
+ String[] sdnrTopicSplit=sdnrTopicUrl.split("\\/");
+ String sdnrTopic=sdnrTopicSplit[sdnrTopicSplit.length-1];
+ ScheduledExecutorService executorPool;
+ CambriaConsumer cambriaConsumer = null;
+
+ cambriaConsumer = dmaapUtils.buildConsumer(configuration, sdnrTopic );
+ /*
+ * cambriaConsumer = new ConsumerBuilder()
+ * .authenticatedBy(configuration.getPcimsApiKey(),
+ * configuration.getPcimsSecretKey()) .knownAs(configuration.getCg(),
+ * configuration.getCid()).onTopic(configuration.getSdnrTopic())
+ * .usingHosts(configuration.getServers()).withSocketTimeout(configuration.
+ * getPollingTimeout() * 1000) .build();
+ */
+
+ // create notification consumers for SNDR and policy
+ NotificationConsumer notificationConsumer = new NotificationConsumer(cambriaConsumer,
+ new NotificationCallback(this));
+
+ // start notification consumer threads
+ executorPool = Executors.newScheduledThreadPool(10);
+ executorPool.scheduleAtFixedRate(notificationConsumer, 0, configuration.getPollingInterval(), TimeUnit.SECONDS);
+
+ }
+
}
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/dmaap/NotificationConsumer.java b/src/main/java/org/onap/dcaegen2/services/sonhms/dmaap/NotificationConsumer.java
index ba6b83d..78294a3 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/dmaap/NotificationConsumer.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/dmaap/NotificationConsumer.java
@@ -22,10 +22,10 @@
package org.onap.dcaegen2.services.sonhms.dmaap;
import com.att.nsa.cambria.client.CambriaConsumer;
-import org.onap.dcaegen2.services.sonhms.dmaap.DmaapClient.NotificationCallback;
import java.io.IOException;
+import org.onap.dcaegen2.services.sonhms.dmaap.DmaapClient.NotificationCallback;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/dmaap/NotificationProducer.java b/src/main/java/org/onap/dcaegen2/services/sonhms/dmaap/NotificationProducer.java
index e1db372..7ecb1d9 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/dmaap/NotificationProducer.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/dmaap/NotificationProducer.java
@@ -22,8 +22,8 @@
package org.onap.dcaegen2.services.sonhms.dmaap;
import com.att.nsa.cambria.client.CambriaBatchingPublisher;
+
import java.io.IOException;
-import java.security.GeneralSecurityException;
public class NotificationProducer {
@@ -31,7 +31,7 @@ public class NotificationProducer {
/**
- * Parameterised constructor.
+ * Parameterized constructor.
*/
public NotificationProducer(CambriaBatchingPublisher cambriaBatchingPublisher) {
super();
@@ -41,11 +41,9 @@ public class NotificationProducer {
/**
* sends notification to dmaap.
*/
- public int sendNotification(String msg) throws GeneralSecurityException, IOException {
+ public int sendNotification(String msg) throws IOException {
- int result = cambriaBatchingPublisher.send("", msg);
- System.out.println(result);
- return result;
+ return cambriaBatchingPublisher.send("", msg);
}
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/dmaap/PolicyDmaapClient.java b/src/main/java/org/onap/dcaegen2/services/sonhms/dmaap/PolicyDmaapClient.java
index 4d5d23b..68cb788 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/dmaap/PolicyDmaapClient.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/dmaap/PolicyDmaapClient.java
@@ -22,31 +22,37 @@
package org.onap.dcaegen2.services.sonhms.dmaap;
import com.att.nsa.cambria.client.CambriaBatchingPublisher;
-import com.att.nsa.cambria.client.CambriaClientBuilders.PublisherBuilder;
import org.onap.dcaegen2.services.sonhms.Configuration;
+import org.onap.dcaegen2.services.sonhms.utils.DmaapUtils;
import java.io.IOException;
-import java.security.GeneralSecurityException;
+import java.util.Map;
public class PolicyDmaapClient {
+ DmaapUtils dmaapUtils = new DmaapUtils();
- /**
- * Method stub for sending notification to policy.
- */
- public boolean sendNotificationToPolicy(String msg) {
-
- Configuration configuration = Configuration.getInstance();
- CambriaBatchingPublisher cambriaBatchingPublisher;
- try {
- cambriaBatchingPublisher = new PublisherBuilder().usingHosts(configuration.getServers())
- .onTopic(configuration.getPolicyTopic())
- .authenticatedBy(configuration.getPcimsApiKey(), configuration.getPcimsSecretKey()).build();
- NotificationProducer notificationProducer = new NotificationProducer(cambriaBatchingPublisher);
- notificationProducer.sendNotification(msg);
- } catch (GeneralSecurityException | IOException e) {
- return false;
- }
- return true;
- }
+ /**
+ * Method stub for sending notification to policy.
+ */
+ @SuppressWarnings("unchecked")
+ public boolean sendNotificationToPolicy(String msg) {
+
+ Map<String,Object> streamSubscribes= Configuration.getInstance().getStreamsPublishes();
+ String policyTopicUrl =((Map<String,String>)((Map<String,Object>)streamSubscribes.get("CL_topic")).get("dmaap_info")).get("topic_url");
+ String[] policyTopicSplit=policyTopicUrl.split("\\/");
+ String policyTopic=policyTopicSplit[policyTopicSplit.length-1];
+ Configuration configuration = Configuration.getInstance();
+ CambriaBatchingPublisher cambriaBatchingPublisher;
+ try {
+
+ cambriaBatchingPublisher = dmaapUtils.buildPublisher(configuration, policyTopic);
+
+ NotificationProducer notificationProducer = new NotificationProducer(cambriaBatchingPublisher);
+ notificationProducer.sendNotification(msg);
+ } catch (IOException e) {
+ return false;
+ }
+ return true;
+ }
}
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/entity/FaultNotifications.java b/src/main/java/org/onap/dcaegen2/services/sonhms/entity/FaultNotifications.java
new file mode 100644
index 0000000..f1d4c5d
--- /dev/null
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/entity/FaultNotifications.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * ============LICENSE_START=======================================================
+ * son-handler
+ * ================================================================================
+ * Copyright (C) 2019 Wipro Limited.
+ * ==============================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ *******************************************************************************/
+
+package org.onap.dcaegen2.services.sonhms.entity;
+
+import java.sql.Timestamp;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+import org.hibernate.annotations.CreationTimestamp;
+
+@Entity
+@Table(name = "FAULT_NOTIFICATIONS")
+public class FaultNotifications {
+
+ @Id
+ @Column(name = "notification", columnDefinition = "text")
+ private String notification;
+
+ @CreationTimestamp
+ @Column(name = "created_at", columnDefinition = "timestamp")
+ private Timestamp createdAt;
+
+ public FaultNotifications() {
+ }
+
+ public FaultNotifications(String notification, Timestamp createdAt) {
+ this.notification = notification;
+ this.createdAt = createdAt;
+ }
+
+ public String getNotification() {
+ return notification;
+ }
+
+ public void setNotification(String notification) {
+ this.notification = notification;
+ }
+
+ public Timestamp getCreatedAt() {
+ return createdAt;
+ }
+
+ public void setCreatedAt(Timestamp createdAt) {
+ this.createdAt = createdAt;
+ }
+
+}
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/model/NeighborListInUse.java b/src/main/java/org/onap/dcaegen2/services/sonhms/model/NeighborListInUse.java
index 50df1d8..b88cb5a 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/model/NeighborListInUse.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/model/NeighborListInUse.java
@@ -22,6 +22,7 @@
package org.onap.dcaegen2.services.sonhms.model;
import com.fasterxml.jackson.annotation.JsonProperty;
+
import java.util.List;
public class NeighborListInUse {
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/model/Payload.java b/src/main/java/org/onap/dcaegen2/services/sonhms/model/Payload.java
index dd10a1f..8883992 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/model/Payload.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/model/Payload.java
@@ -22,6 +22,7 @@
package org.onap.dcaegen2.services.sonhms.model;
import com.fasterxml.jackson.annotation.JsonProperty;
+
import java.util.List;
public class Payload {
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/model/PolicyNotification.java b/src/main/java/org/onap/dcaegen2/services/sonhms/model/PolicyNotification.java
index 076c7b5..35480cf 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/model/PolicyNotification.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/model/PolicyNotification.java
@@ -203,4 +203,14 @@ public class PolicyNotification {
return result;
}
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null) {
+ return false;
+ }
+ return (this.hashCode() == obj.hashCode());
+ }
+
+
+
}
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/model/RadioAccess.java b/src/main/java/org/onap/dcaegen2/services/sonhms/model/RadioAccess.java
index 775c14d..21e5c43 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/model/RadioAccess.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/model/RadioAccess.java
@@ -22,6 +22,7 @@
package org.onap.dcaegen2.services.sonhms.model;
import com.fasterxml.jackson.annotation.JsonProperty;
+
import java.util.List;
public class RadioAccess {
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/restclient/OofRestClient.java b/src/main/java/org/onap/dcaegen2/services/sonhms/restclient/OofRestClient.java
index a9ce305..083341b 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/restclient/OofRestClient.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/restclient/OofRestClient.java
@@ -23,13 +23,14 @@ package org.onap.dcaegen2.services.sonhms.restclient;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
+
+import java.util.List;
+import java.util.UUID;
+
import org.onap.dcaegen2.services.sonhms.ConfigPolicy;
import org.onap.dcaegen2.services.sonhms.Configuration;
import org.onap.dcaegen2.services.sonhms.exceptions.OofNotFoundException;
import org.onap.dcaegen2.services.sonhms.utils.SonHandlerRestTemplate;
-
-import java.util.List;
-import java.util.UUID;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.ParameterizedTypeReference;
@@ -44,61 +45,64 @@ public class OofRestClient {
/**
* rest client that pci uses to query the OOF for pci solutions.
- * @throws OofNotFoundException when request to oof fails
+ *
+ * @throws OofNotFoundException
+ * when request to oof fails
*/
- public static String queryOof(int numSolutions, String transactionId, String requestType,
- List<String> cellIdList, String networkId, List<String> optimizers) throws OofNotFoundException {
+ public static String queryOof(int numSolutions, String transactionId, String requestType, List<String> cellIdList,
+ String networkId, List<String> optimizers) throws OofNotFoundException {
log.debug("inside queryoof");
- ResponseEntity<String> response = null;
Configuration configuration = Configuration.getInstance();
+ UUID requestUuid = UUID.randomUUID();
+ String requestId = requestUuid.toString();
+ String callbackUrl = configuration.getCallbackUrl();
+ RequestInfo requestInfo = new RequestInfo();
+ requestInfo.setTransactionId(transactionId);
+ requestInfo.setRequestId(requestId);
+ requestInfo.setCallbackUrl(callbackUrl);
+ String sourceId = configuration.getSourceId();
+ requestInfo.setSourceId(sourceId);
+ requestInfo.setRequestType(requestType);
+ requestInfo.setNumSolutions(numSolutions);
+ requestInfo.setOptimizers(optimizers);
+ ConfigPolicy config = ConfigPolicy.getInstance();
+ int timeout = 60;
try {
- UUID requestUuid = UUID.randomUUID();
- String requestId = requestUuid.toString();
- String callbackUrl = configuration.getCallbackUrl();
- RequestInfo requestInfo = new RequestInfo();
- requestInfo.setTransactionId(transactionId);
- requestInfo.setRequestId(requestId);
- requestInfo.setCallbackUrl(callbackUrl);
- String sourceId = configuration.getSourceId();
- requestInfo.setSourceId(sourceId);
- requestInfo.setRequestType(requestType);
- requestInfo.setNumSolutions(numSolutions);
- requestInfo.setOptimizers(optimizers);
- ConfigPolicy config = ConfigPolicy.getInstance();
- int timeout = 60;
- try {
- timeout = (int) config.getConfig().get("PCI_NEIGHBOR_CHANGE_CLUSTER_TIMEOUT_IN_SECS");
- } catch (NullPointerException e) {
- log.debug("No config policy available. Using default timeout 60 sec");
- }
- requestInfo.setTimeout(timeout);
- CellInfo cellInfo = new CellInfo();
- cellInfo.setCellIdList(cellIdList);
- cellInfo.setNetworkId(networkId);
- OofRequestBody oofRequestBody = new OofRequestBody();
- oofRequestBody.setRequestInfo(requestInfo);
- oofRequestBody.setCellInfo(cellInfo);
-
- ObjectMapper mapper = new ObjectMapper();
- String requestBody = mapper.writeValueAsString(oofRequestBody);
- log.debug("requestBody{}", requestBody);
-
- String requestUrl = configuration.getOofService() + "/api/oof/v1/pci";
- log.debug("requestUrl {}", requestUrl);
-
- response = SonHandlerRestTemplate.sendPostRequestToOof(requestUrl, requestBody,new ParameterizedTypeReference<String>() {});
- if (response == null) {
- throw new OofNotFoundException("Request to oof failed");
- }
- log.debug("response {}", response);
+ timeout = (int) config.getConfig().get("PCI_NEIGHBOR_CHANGE_CLUSTER_TIMEOUT_IN_SECS");
+ } catch (NullPointerException e) {
+ log.debug("No config policy available. Using default timeout 60 sec");
+ }
+ requestInfo.setTimeout(timeout);
+ CellInfo cellInfo = new CellInfo();
+ cellInfo.setCellIdList(cellIdList);
+ cellInfo.setNetworkId(networkId);
+ OofRequestBody oofRequestBody = new OofRequestBody();
+ oofRequestBody.setRequestInfo(requestInfo);
+ oofRequestBody.setCellInfo(cellInfo);
- return response.getBody();
+ ObjectMapper mapper = new ObjectMapper();
+ String requestBody = "";
+ try {
+ requestBody = mapper.writeValueAsString(oofRequestBody);
} catch (JsonProcessingException e) {
- log.debug("exception{}", e);
+ log.error("Exception when forming JSON String {}", e);
+
+ }
+ log.debug("requestBody{}", requestBody);
+ String requestUrl = configuration.getOofService() + "/api/oof/v1/pci";
+ log.debug("requestUrl {}", requestUrl);
+ ResponseEntity<String> response = null;
+ response = SonHandlerRestTemplate.sendPostRequestToOof(requestUrl, requestBody,
+ new ParameterizedTypeReference<String>() {
+ });
+ if (response == null) {
+ throw new OofNotFoundException("Request to oof failed");
}
+ log.debug("response {}", response);
+
return response.getBody();
}
}
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/restclient/PolicyRestClient.java b/src/main/java/org/onap/dcaegen2/services/sonhms/restclient/PolicyRestClient.java
deleted file mode 100644
index 7334df2..0000000
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/restclient/PolicyRestClient.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * ============LICENSE_START=======================================================
- * son-handler
- * ================================================================================
- * Copyright (C) 2019 Wipro Limited.
- * ==============================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- *******************************************************************************/
-
-package org.onap.dcaegen2.services.sonhms.restclient;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.onap.dcaegen2.services.sonhms.Configuration;
-import org.onap.dcaegen2.services.sonhms.utils.SonHandlerRestTemplate;
-
-import java.util.UUID;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.core.ParameterizedTypeReference;
-import org.springframework.http.ResponseEntity;
-
-public class PolicyRestClient {
- private static Logger log = LoggerFactory.getLogger(PolicyRestClient.class);
-
- private PolicyRestClient() {
-
- }
-
- /**
- * Fetches configuration from policy.
- */
- public static String fetchConfigFromPolicy() {
- log.debug("inside fetconfig from policy");
-
- Configuration configuration = Configuration.getInstance();
- ResponseEntity<String> response = null;
- String configName = configuration.getConfigName();
- String policyName = configuration.getPolicyName();
-
- try {
- PolicyRequestBody policyRequestBody = new PolicyRequestBody();
- policyRequestBody.setConfigName(configName);
- policyRequestBody.setPolicyName(policyName);
- UUID requestUuid = UUID.randomUUID();
- String requestId = requestUuid.toString();
- policyRequestBody.setRequestId(requestId);
- ObjectMapper mapper = new ObjectMapper();
- String requestBody;
- requestBody = mapper.writeValueAsString(policyRequestBody);
-
- log.debug("policyRequestBody{}", requestBody);
- String requestUrl = configuration.getPolicyService() + "/pdp/api/getConfig";
- response = SonHandlerRestTemplate.sendPostToPolicy(requestUrl, requestBody,new ParameterizedTypeReference<String>() {});
- log.debug("policy response{}", response);
-
- return response.getBody();
- } catch (JsonProcessingException e) {
- log.debug("exception", e);
- }
- return response.getBody();
-
- }
-
-}
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/restclient/SdnrRestClient.java b/src/main/java/org/onap/dcaegen2/services/sonhms/restclient/SdnrRestClient.java
index 0894146..996e553 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/restclient/SdnrRestClient.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/restclient/SdnrRestClient.java
@@ -21,11 +21,6 @@
package org.onap.dcaegen2.services.sonhms.restclient;
-import org.onap.dcaegen2.services.sonhms.Configuration;
-import org.onap.dcaegen2.services.sonhms.exceptions.ConfigDbNotFoundException;
-import org.onap.dcaegen2.services.sonhms.model.CellPciPair;
-import org.onap.dcaegen2.services.sonhms.utils.SonHandlerRestTemplate;
-
import java.sql.Time;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@@ -33,6 +28,10 @@ import java.util.List;
import org.json.JSONArray;
import org.json.JSONObject;
+import org.onap.dcaegen2.services.sonhms.Configuration;
+import org.onap.dcaegen2.services.sonhms.exceptions.ConfigDbNotFoundException;
+import org.onap.dcaegen2.services.sonhms.model.CellPciPair;
+import org.onap.dcaegen2.services.sonhms.utils.SonHandlerRestTemplate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.ParameterizedTypeReference;
@@ -58,7 +57,7 @@ public class SdnrRestClient {
public static String getCellList(String networkId) throws ConfigDbNotFoundException {
Configuration configuration = Configuration.getInstance();
String ts = new SimpleDateFormat(DATETIMEFORMAT).format(new Time(System.currentTimeMillis()));
- String requestUrl = configuration.getSdnrService() + "/SDNCConfigDBAPI/getCellList" + "/" + networkId + "/"
+ String requestUrl = configuration.getConfigDbService() + "/SDNCConfigDBAPI/getCellList" + "/" + networkId + "/"
+ encode(ts);
return sendRequest(requestUrl);
}
@@ -72,7 +71,7 @@ public class SdnrRestClient {
public static List<CellPciPair> getNbrList(String cellId) throws ConfigDbNotFoundException {
Configuration configuration = Configuration.getInstance();
String ts = new SimpleDateFormat(DATETIMEFORMAT).format(new Time(System.currentTimeMillis()));
- String requestUrl = configuration.getSdnrService() + "/SDNCConfigDBAPI/getNbrList" + "/" + cellId + "/"
+ String requestUrl = configuration.getConfigDbService() + "/SDNCConfigDBAPI/getNbrList" + "/" + cellId + "/"
+ encode(ts);
log.debug("request url: {}", requestUrl);
String response = sendRequest(requestUrl);
@@ -96,7 +95,7 @@ public class SdnrRestClient {
public static int getPci(String cellId) throws ConfigDbNotFoundException {
Configuration configuration = Configuration.getInstance();
String ts = new SimpleDateFormat(DATETIMEFORMAT).format(new Time(System.currentTimeMillis()));
- String requestUrl = configuration.getSdnrService() + "/SDNCConfigDBAPI/getPCI" + "/" + cellId + "/"
+ String requestUrl = configuration.getConfigDbService() + "/SDNCConfigDBAPI/getPCI" + "/" + cellId + "/"
+ encode(ts);
String response = sendRequest(requestUrl);
JSONObject respObj = new JSONObject(response);
@@ -112,7 +111,7 @@ public class SdnrRestClient {
public static String getPnfName(String cellId) throws ConfigDbNotFoundException {
Configuration configuration = Configuration.getInstance();
String ts = new SimpleDateFormat(DATETIMEFORMAT).format(new Time(System.currentTimeMillis()));
- String requestUrl = configuration.getSdnrService() + "/SDNCConfigDBAPI/getPnfName" + "/" + cellId + "/"
+ String requestUrl = configuration.getConfigDbService() + "/SDNCConfigDBAPI/getPnfName" + "/" + cellId + "/"
+ encode(ts);
String response = sendRequest(requestUrl);
JSONObject responseObject = new JSONObject(response);
@@ -132,7 +131,7 @@ public class SdnrRestClient {
private static String sendRequest(String url) throws ConfigDbNotFoundException {
ResponseEntity<String> response = SonHandlerRestTemplate.sendGetRequest(url,
new ParameterizedTypeReference<String>() {});
- if (response.equals(null)) {
+ if (response == null) {
throw new ConfigDbNotFoundException("Cannot reach Config DB");
}
return response.getBody();
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/utils/AppConfig.java b/src/main/java/org/onap/dcaegen2/services/sonhms/utils/AppConfig.java
index a30288a..b5c63e8 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/utils/AppConfig.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/utils/AppConfig.java
@@ -39,6 +39,7 @@ import org.springframework.web.client.RestTemplate;
public class AppConfig {
+
/**
* Rest Template bean.
*/
@@ -60,7 +61,7 @@ public class AppConfig {
private static ByteArrayHttpMessageConverter generateByteArrayHttpMessageConverter() {
ByteArrayHttpMessageConverter byteArrayHttpMessageConverter = new ByteArrayHttpMessageConverter();
- List<MediaType> supportedApplicationTypes = new ArrayList<MediaType>();
+ List<MediaType> supportedApplicationTypes = new ArrayList<>();
supportedApplicationTypes.add(new MediaType("application", "pdf"));
byteArrayHttpMessageConverter.setSupportedMediaTypes(supportedApplicationTypes);
return byteArrayHttpMessageConverter;
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/utils/BeanUtil.java b/src/main/java/org/onap/dcaegen2/services/sonhms/utils/BeanUtil.java
index 63a738c..b7e3123 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/utils/BeanUtil.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/utils/BeanUtil.java
@@ -21,7 +21,6 @@
package org.onap.dcaegen2.services.sonhms.utils;
-import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Service;
@@ -31,7 +30,7 @@ public class BeanUtil implements ApplicationContextAware {
private static ApplicationContext context;
@Override
- public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+ public void setApplicationContext(ApplicationContext applicationContext) {
context = applicationContext;
}
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/utils/ClusterUtils.java b/src/main/java/org/onap/dcaegen2/services/sonhms/utils/ClusterUtils.java
index 79d0c61..5b4ca55 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/utils/ClusterUtils.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/utils/ClusterUtils.java
@@ -21,6 +21,16 @@
package org.onap.dcaegen2.services.sonhms.utils;
+import fj.data.Either;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+
import org.onap.dcaegen2.services.sonhms.ClusterDetailsComponent;
import org.onap.dcaegen2.services.sonhms.NotificationToClusterMapping;
import org.onap.dcaegen2.services.sonhms.child.Graph;
@@ -32,17 +42,6 @@ import org.onap.dcaegen2.services.sonhms.model.FapServiceList;
import org.onap.dcaegen2.services.sonhms.model.LteNeighborListInUseLteCell;
import org.onap.dcaegen2.services.sonhms.model.Notification;
import org.onap.dcaegen2.services.sonhms.restclient.SdnrRestClient;
-
-import fj.data.Either;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/utils/DmaapUtils.java b/src/main/java/org/onap/dcaegen2/services/sonhms/utils/DmaapUtils.java
new file mode 100644
index 0000000..ad6c385
--- /dev/null
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/utils/DmaapUtils.java
@@ -0,0 +1,133 @@
+/*******************************************************************************
+ * ============LICENSE_START=======================================================
+ * son-handler
+ * ================================================================================
+ * Copyright (C) 2019 Wipro Limited.
+ * ==============================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ *******************************************************************************/
+
+package org.onap.dcaegen2.services.sonhms.utils;
+
+import java.net.MalformedURLException;
+import java.security.GeneralSecurityException;
+
+import org.onap.dcaegen2.services.sonhms.Configuration;
+
+import com.att.nsa.cambria.client.CambriaBatchingPublisher;
+import com.att.nsa.cambria.client.CambriaClient;
+import com.att.nsa.cambria.client.CambriaClientBuilders;
+import com.att.nsa.cambria.client.CambriaClientBuilders.ConsumerBuilder;
+import com.att.nsa.cambria.client.CambriaClientBuilders.PublisherBuilder;
+import com.att.nsa.cambria.client.CambriaClientBuilders.TopicManagerBuilder;
+import com.att.nsa.cambria.client.CambriaConsumer;
+import com.att.nsa.cambria.client.CambriaTopicManager;
+
+public class DmaapUtils {
+
+ public CambriaBatchingPublisher buildPublisher(Configuration config, String topic) {
+ try {
+ return builder(config, topic).build();
+ } catch (MalformedURLException | GeneralSecurityException e) {
+ // TODO Auto-generated catch block
+ return null;
+
+ }
+ }
+
+ public CambriaConsumer buildConsumer(Configuration config, String topic) {
+
+ try {
+ return builderConsumer(config, topic).build();
+ } catch (MalformedURLException | GeneralSecurityException e) {
+ // TODO Auto-generated catch block
+ return null;
+ }
+
+ }
+
+ private static PublisherBuilder builder(Configuration config, String topic) {
+ if (config.isSecured()) {
+ return authenticatedBuilder(config, topic);
+ } else {
+ return unAuthenticatedBuilder(config, topic);
+ }
+ }
+
+ private static PublisherBuilder authenticatedBuilder(Configuration config, String topic) {
+ return unAuthenticatedBuilder(config, topic).usingHttps().authenticatedByHttp(config.getAafUsername(),
+ config.getAafPassword());
+ }
+
+ private static PublisherBuilder unAuthenticatedBuilder(Configuration config, String topic) {
+ return new CambriaClientBuilders.PublisherBuilder().usingHosts(config.getDmaapServers()).onTopic(topic)
+ .logSendFailuresAfter(5);
+ }
+
+ private static ConsumerBuilder builderConsumer(Configuration config, String topic) {
+ if (config.isSecured()) {
+ return authenticatedConsumerBuilder(config, topic);
+ } else {
+ return unAuthenticatedConsumerBuilder(config, topic);
+ }
+ }
+
+ private static ConsumerBuilder unAuthenticatedConsumerBuilder(Configuration config, String topic) {
+ // TODO Auto-generated method stub
+ return new CambriaClientBuilders.ConsumerBuilder().usingHosts(config.getDmaapServers()).onTopic(topic)
+ .knownAs(config.getCg(), config.getCid()).withSocketTimeout(config.getPollingTimeout() * 1000);
+ }
+
+ private static ConsumerBuilder authenticatedConsumerBuilder(Configuration config, String topic) {
+ return unAuthenticatedConsumerBuilder(config, topic).usingHttps().authenticatedByHttp(config.getAafUsername(),
+ config.getAafPassword());
+ }
+
+ public CambriaTopicManager cambriaCLientBuilder(Configuration configuration) {
+ if(configuration.isSecured()) {
+ return authenticatedCambriaCLientBuilder(configuration);
+ }
+ else
+ {
+ return unAuthenticatedCambriaCLientBuilder(configuration);
+
+ }
+ }
+
+ private static CambriaTopicManager authenticatedCambriaCLientBuilder(Configuration config) {
+ try {
+ return buildCambriaClient(new TopicManagerBuilder().usingHosts(config.getDmaapServers())
+ .authenticatedByHttp(config.getAafUsername(), config.getAafPassword()));
+ } catch (MalformedURLException | GeneralSecurityException e) {
+ return null;
+ }
+ }
+
+ private static CambriaTopicManager unAuthenticatedCambriaCLientBuilder(Configuration config) {
+ try {
+ return buildCambriaClient(new TopicManagerBuilder().usingHosts(config.getDmaapServers()));
+ } catch (MalformedURLException | GeneralSecurityException e) {
+ return null;
+
+ }
+ }
+ @SuppressWarnings("unchecked")
+ private static <T extends CambriaClient> T buildCambriaClient(
+ CambriaClientBuilders.AbstractAuthenticatedManagerBuilder<? extends CambriaClient> client)
+ throws MalformedURLException, GeneralSecurityException {
+ return (T) client.build();
+ }
+
+}
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/utils/SonHandlerRestTemplate.java b/src/main/java/org/onap/dcaegen2/services/sonhms/utils/SonHandlerRestTemplate.java
index 7745117..2fe478e 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/utils/SonHandlerRestTemplate.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/utils/SonHandlerRestTemplate.java
@@ -122,25 +122,6 @@ public class SonHandlerRestTemplate {
}
/**
- * Send Post Request1.
- */
-
- public static <T> ResponseEntity<T> sendPostRequest1(String requestUrl, String requestBody,
- ParameterizedTypeReference<T> responseType) {
- HttpHeaders headers = new HttpHeaders();
- headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
- headers.setContentType(MediaType.APPLICATION_JSON);
- headers.add(AUTH, "Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==");
- HttpEntity<Object> requestEntity = new HttpEntity<>(requestBody, headers);
- try {
- return restTemplate.exchange(requestUrl, HttpMethod.POST, requestEntity, responseType);
- } catch (Exception e) {
- log.debug(EXCEPTION_MSG, e.getMessage());
- return new ResponseEntity<>(HttpStatus.NOT_FOUND);
- }
- }
-
- /**
* Send Post Request to oof.
*/
diff --git a/src/main/java/org/onap/dcaegen2/services/sonhms/utils/ThreadUtils.java b/src/main/java/org/onap/dcaegen2/services/sonhms/utils/ThreadUtils.java
index 07e7219..78722ba 100644
--- a/src/main/java/org/onap/dcaegen2/services/sonhms/utils/ThreadUtils.java
+++ b/src/main/java/org/onap/dcaegen2/services/sonhms/utils/ThreadUtils.java
@@ -20,18 +20,17 @@
package org.onap.dcaegen2.services.sonhms.utils;
-import org.onap.dcaegen2.services.sonhms.EventHandler;
-import org.onap.dcaegen2.services.sonhms.child.ChildThread;
-import org.onap.dcaegen2.services.sonhms.child.Graph;
-import org.onap.dcaegen2.services.sonhms.model.FapServiceList;
-import org.onap.dcaegen2.services.sonhms.model.ThreadId;
-
import java.util.List;
import java.util.UUID;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
+import org.onap.dcaegen2.services.sonhms.EventHandler;
+import org.onap.dcaegen2.services.sonhms.child.ChildThread;
+import org.onap.dcaegen2.services.sonhms.child.Graph;
+import org.onap.dcaegen2.services.sonhms.model.FapServiceList;
+import org.onap.dcaegen2.services.sonhms.model.ThreadId;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 5905adf..c8bf90c 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -19,11 +19,14 @@
#
###############################################################################
-spring.datasource.url= jdbc:postgresql://pcims-db:5432/sonh_ms
-spring.datasource.username=postgres
+spring.datasource.initialization-mode=always
-spring.datasource.password=password
+spring.datasource.initialize=true
+
+spring.datasource.schema=classpath:/schema.sql
+
+spring.datasource.continue-on-error=true
spring.jpa.hibernate.ddl-auto=validate
diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml
index 160ff9c..b7baa6f 100644
--- a/src/main/resources/logback.xml
+++ b/src/main/resources/logback.xml
@@ -28,7 +28,7 @@
<sift>
<appender name="file-${logFileName}" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>/var/log/onap/pci-handler/${logFileName}.log</file>
+ <file>/var/log/onap/son-handler/${logFileName}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${logFileName}.%i.log.zip</fileNamePattern>
<minIndex>1</minIndex>
diff --git a/src/main/docker/postgres_scripts/createdb.sql b/src/main/resources/schema.sql
index dc843e7..88b64d5 100644
--- a/src/main/docker/postgres_scripts/createdb.sql
+++ b/src/main/resources/schema.sql
@@ -1,5 +1,3 @@
-CREATE DATABASE sonh_ms;
-\c sonh_ms
CREATE TABLE DMAAP_NOTIFICATIONS(
notification TEXT PRIMARY KEY NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
@@ -22,4 +20,8 @@ CREATE TABLE PCI_REQUESTS(
transaction_id TEXT PRIMARY KEY,
child_thread_id BIGINT UNIQUE NOT NULL
);
-
+CREATE TABLE FAULT_NOTIFICATIONS(
+ notification TEXT PRIMARY KEY NOT NULL,
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
+);
+
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/BufferNotificationComponentTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/BufferNotificationComponentTest.java
index 19fe536..d2480d2 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/BufferNotificationComponentTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/BufferNotificationComponentTest.java
@@ -26,6 +26,7 @@ import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.List;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/ClusterDetailsComponentTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/ClusterDetailsComponentTest.java
index 22d0ccf..18bde74 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/ClusterDetailsComponentTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/ClusterDetailsComponentTest.java
@@ -26,6 +26,7 @@ import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.List;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/ConfigPolicyTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/ConfigPolicyTest.java
index ca12095..6fe1ffc 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/ConfigPolicyTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/ConfigPolicyTest.java
@@ -27,7 +27,6 @@ import java.util.HashMap;
import java.util.Map;
import org.junit.Test;
-import org.onap.dcaegen2.services.sonhms.ConfigPolicy;
public class ConfigPolicyTest {
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/ConfigurationTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/ConfigurationTest.java
index 02a4f07..851920d 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/ConfigurationTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/ConfigurationTest.java
@@ -27,7 +27,6 @@ import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
-import org.onap.dcaegen2.services.sonhms.Configuration;
public class ConfigurationTest {
@@ -37,53 +36,39 @@ public class ConfigurationTest {
public void configurationTest() {
configuration.setBufferTime(60);
configuration.setCallbackUrl("/callbackUrl");
- configuration.setConfigName("configName");
List<String> list = new ArrayList<String>();
list.add("server");
- configuration.setServers(list);
+ configuration.setDmaapServers(list);
configuration.setCg("cg");
configuration.setCid("cid");
- configuration.setManagerApiKey("managerApiKey");
- configuration.setManagerSecretKey("managerSecretKey");
+
configuration.setMaximumClusters(5);
configuration.setMinCollision(5);
configuration.setMinConfusion(5);
configuration.setNumSolutions(1);
configuration.setOofService("oofService");
configuration.setOptimizers(list);
- configuration.setPcimsApiKey("pcimsApiKey");
- configuration.setPcimsSecretKey("pcimsSecretKey");
- configuration.setPolicyName("policyName");
- configuration.setPolicyService("policyService");
- configuration.setPolicyTopic("policyTopic");
configuration.setPollingInterval(30);
configuration.setPollingTimeout(100);
- configuration.setSdnrService("sdnrService");
- configuration.setSdnrTopic("sdnrTopic");
+ configuration.setConfigDbService("sdnrService");
configuration.setSourceId("sourceId");
assertEquals(60, configuration.getBufferTime());
assertEquals("/callbackUrl", configuration.getCallbackUrl());
assertEquals("cg", configuration.getCg());
assertEquals("cid", configuration.getCid());
- assertEquals("managerApiKey", configuration.getManagerApiKey());
- assertEquals("managerSecretKey", configuration.getManagerSecretKey());
+
assertEquals(5, configuration.getMaximumClusters());
assertEquals(5, configuration.getMinCollision());
assertEquals(5, configuration.getMinConfusion());
assertEquals(1, configuration.getNumSolutions());
assertEquals("oofService", configuration.getOofService());
assertEquals(list, configuration.getOptimizers());
- assertEquals("pcimsApiKey", configuration.getPcimsApiKey());
- assertEquals("pcimsSecretKey", configuration.getPcimsSecretKey());
- assertEquals("policyName", configuration.getPolicyName());
- assertEquals("policyService", configuration.getPolicyService());
- assertEquals("policyTopic", configuration.getPolicyTopic());
+
assertEquals(30, configuration.getPollingInterval());
assertEquals(100, configuration.getPollingTimeout());
- assertEquals("sdnrService", configuration.getSdnrService());
- assertEquals("sdnrTopic", configuration.getSdnrTopic());
- assertEquals(list, configuration.getServers());
+ assertEquals("sdnrService", configuration.getConfigDbService());
+ assertEquals(list, configuration.getDmaapServers());
assertEquals("sourceId", configuration.getSourceId());
}
}
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/DmaapNotificationsComponentTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/DmaapNotificationsComponentTest.java
index cc4d3ad..bf5ef97 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/DmaapNotificationsComponentTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/DmaapNotificationsComponentTest.java
@@ -30,6 +30,7 @@ import fj.data.Either;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
+
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/EventHandlerTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/EventHandlerTest.java
index a79e368..5032799 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/EventHandlerTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/EventHandlerTest.java
@@ -20,6 +20,10 @@
package org.onap.dcaegen2.services.sonhms;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import fj.data.Either;
+
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
@@ -29,6 +33,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutorService;
+
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
@@ -37,8 +42,6 @@ import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.runners.MockitoJUnitRunner;
-import org.springframework.boot.test.context.SpringBootTest;
-import com.fasterxml.jackson.databind.ObjectMapper;
import org.onap.dcaegen2.services.sonhms.child.Graph;
import org.onap.dcaegen2.services.sonhms.entity.ClusterDetails;
import org.onap.dcaegen2.services.sonhms.exceptions.ConfigDbNotFoundException;
@@ -47,8 +50,7 @@ import org.onap.dcaegen2.services.sonhms.model.Notification;
import org.onap.dcaegen2.services.sonhms.utils.ClusterUtils;
import org.onap.dcaegen2.services.sonhms.utils.ClusterUtilsTest;
import org.onap.dcaegen2.services.sonhms.utils.ThreadUtils;
-
-import fj.data.Either;
+import org.springframework.boot.test.context.SpringBootTest;
@RunWith(MockitoJUnitRunner.class)
@SpringBootTest(classes = EventHandler.class)
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/child/GraphTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/child/GraphTest.java
index 3df7f93..16c3ad9 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/child/GraphTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/child/GraphTest.java
@@ -28,7 +28,6 @@ import java.util.HashMap;
import java.util.Map;
import org.junit.Test;
-import org.onap.dcaegen2.services.sonhms.child.Graph;
import org.onap.dcaegen2.services.sonhms.model.CellPciPair;
import org.slf4j.Logger;
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/child/TestChildThreadUtils.java b/src/test/java/org/onap/dcaegen2/services/sonhms/child/TestChildThreadUtils.java
index 03e735f..ca5f5fd 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/child/TestChildThreadUtils.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/child/TestChildThreadUtils.java
@@ -21,6 +21,8 @@
package org.onap.dcaegen2.services.sonhms.child;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
@@ -33,8 +35,6 @@ import java.util.Map;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
import org.onap.dcaegen2.services.sonhms.ConfigPolicy;
import org.onap.dcaegen2.services.sonhms.model.CellPciPair;
import org.onap.dcaegen2.services.sonhms.model.PolicyNotification;
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/child/TestDetection.java b/src/test/java/org/onap/dcaegen2/services/sonhms/child/TestDetection.java
index 6e42cce..05d3e79 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/child/TestDetection.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/child/TestDetection.java
@@ -27,8 +27,6 @@ import java.util.HashMap;
import java.util.Map;
import org.junit.Test;
-import org.onap.dcaegen2.services.sonhms.child.Detection;
-import org.onap.dcaegen2.services.sonhms.child.Graph;
import org.onap.dcaegen2.services.sonhms.model.CellPciPair;
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/child/TestPnfUtils.java b/src/test/java/org/onap/dcaegen2/services/sonhms/child/TestPnfUtils.java
index e7f822f..0349521 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/child/TestPnfUtils.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/child/TestPnfUtils.java
@@ -22,6 +22,9 @@ package org.onap.dcaegen2.services.sonhms.child;
import static org.junit.Assert.assertEquals;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
@@ -40,16 +43,6 @@ import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-import org.powermock.modules.junit4.PowerMockRunnerDelegate;
-import org.slf4j.Logger;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.ObjectMapper;
import org.onap.dcaegen2.services.sonhms.dao.CellInfoRepository;
import org.onap.dcaegen2.services.sonhms.entity.CellInfo;
import org.onap.dcaegen2.services.sonhms.exceptions.ConfigDbNotFoundException;
@@ -58,6 +51,13 @@ import org.onap.dcaegen2.services.sonhms.restclient.SdnrRestClient;
import org.onap.dcaegen2.services.sonhms.restclient.Solution;
import org.onap.dcaegen2.services.sonhms.utils.BeanUtil;
import org.onap.dcaegen2.services.sonhms.utils.ClusterUtilsTest;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+import org.powermock.modules.junit4.PowerMockRunnerDelegate;
+import org.slf4j.Logger;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(SpringRunner.class)
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/dmaap/DmaapClientTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/dmaap/DmaapClientTest.java
index 63ba5bd..4f28e35 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/dmaap/DmaapClientTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/dmaap/DmaapClientTest.java
@@ -21,10 +21,9 @@
package org.onap.dcaegen2.services.sonhms.dmaap;
-import com.att.nsa.cambria.client.CambriaTopicManager;
-
import static org.mockito.Mockito.when;
+import com.att.nsa.cambria.client.CambriaTopicManager;
import java.io.IOException;
import java.util.ArrayList;
@@ -38,10 +37,8 @@ import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
-
-import org.onap.dcaegen2.services.sonhms.Configuration;
-import org.onap.dcaegen2.services.sonhms.NewNotification;
import org.mockito.MockitoAnnotations;
+import org.onap.dcaegen2.services.sonhms.Configuration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@@ -61,8 +58,6 @@ public class DmaapClientTest {
MockitoAnnotations.initMocks(this);
}
- private Boolean newNotif;
-
@Test
public void getAllTopicsTest() {
Set<String> topics = new HashSet<String>();
@@ -71,37 +66,27 @@ public class DmaapClientTest {
Configuration configuration = Configuration.getInstance();
configuration.setBufferTime(60);
configuration.setCallbackUrl("/callbackUrl");
- configuration.setConfigName("configName");
List<String> list = new ArrayList<String>();
list.add("server");
- configuration.setServers(list);
+ configuration.setDmaapServers(list);
configuration.setCg("cg");
configuration.setCid("cid");
- configuration.setManagerApiKey("managerApiKey");
- configuration.setManagerSecretKey("managerSecretKey");
configuration.setMaximumClusters(5);
configuration.setMinCollision(5);
configuration.setMinConfusion(5);
configuration.setNumSolutions(1);
configuration.setOofService("oofService");
configuration.setOptimizers(list);
- configuration.setPcimsApiKey("pcimsApiKey");
- configuration.setPcimsSecretKey("pcimsSecretKey");
- configuration.setPolicyName("policyName");
- configuration.setPolicyService("policyService");
- configuration.setPolicyTopic("policyTopic");
configuration.setPollingInterval(30);
configuration.setPollingTimeout(100);
- configuration.setSdnrService("sdnrService");
- configuration.setSdnrTopic("sdnrTopic");
+ configuration.setConfigDbService("sdnrService");
configuration.setSourceId("sourceId");
- NewNotification newNotification = new NewNotification(newNotif);
try {
when(topicManager.getTopics()).thenReturn(topics);
client=Mockito.mock(DmaapClient.class);
- client.initClient(newNotification);
- Mockito.verify(client).initClient(newNotification);
+ client.initClient();
+ Mockito.verify(client).initClient();
// Mockito.verifycreateAndConfigureTopics();
} catch (IOException e) {
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/dmaap/NotificationProducerTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/dmaap/NotificationProducerTest.java
index c76b953..4fa8227 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/dmaap/NotificationProducerTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/dmaap/NotificationProducerTest.java
@@ -25,8 +25,8 @@ import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.when;
import com.att.nsa.cambria.client.CambriaBatchingPublisher;
+
import java.io.IOException;
-import java.security.GeneralSecurityException;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
@@ -39,33 +39,24 @@ import org.springframework.test.context.junit4.SpringRunner;
@SpringBootTest(classes = NotificationProducerTest.class)
public class NotificationProducerTest {
-
@Mock
CambriaBatchingPublisher cambriaBatchingPublisher;
-
+
@InjectMocks
NotificationProducer notificationProducer;
-
+
@Test
public void notificationProducerTest() {
-
-
-
- try {
-
- when(cambriaBatchingPublisher.send(Mockito.anyString(), Mockito.anyString())).thenReturn(0);
- int result=notificationProducer.sendNotification("msg");
- assertEquals(0, result);
- } catch (GeneralSecurityException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
-
- }
-}
+ try {
+
+ when(cambriaBatchingPublisher.send(Mockito.anyString(), Mockito.anyString())).thenReturn(0);
+ int result = notificationProducer.sendNotification("msg");
+ assertEquals(0, result);
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/MainThreadTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/entity/FaultNotificationsTest.java
index d06abbf..e83e9b9 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/MainThreadTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/entity/FaultNotificationsTest.java
@@ -19,8 +19,27 @@
*
*******************************************************************************/
-package org.onap.dcaegen2.services.sonhms;
+package org.onap.dcaegen2.services.sonhms.entity;
-public class MainThreadTest {
+import static org.junit.Assert.assertEquals;
+
+import java.sql.Timestamp;
+
+import org.junit.Test;
+
+public class FaultNotificationsTest {
+ private Timestamp createdAt;
+
+ @Test
+ public void faultNotififcationsTest() {
+ FaultNotifications faultNotifications = new FaultNotifications();
+ faultNotifications.setNotification("notification");
+ faultNotifications.setCreatedAt(createdAt);
+ assertEquals("notification", faultNotifications.getNotification());
+ assertEquals(createdAt, faultNotifications.getCreatedAt());
+ }
+
}
+
+
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/model/NotificationTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/model/NotificationTest.java
index 8ef4778..29590f9 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/model/NotificationTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/model/NotificationTest.java
@@ -32,16 +32,6 @@ import java.io.IOException;
import java.util.ArrayList;
import org.junit.Test;
-import org.onap.dcaegen2.services.sonhms.model.FapServiceList;
-import org.onap.dcaegen2.services.sonhms.model.LteNeighborListInUseLteCell;
-import org.onap.dcaegen2.services.sonhms.model.NeighborListInUse;
-import org.onap.dcaegen2.services.sonhms.model.Notification;
-import org.onap.dcaegen2.services.sonhms.model.NotificationCellConfig;
-import org.onap.dcaegen2.services.sonhms.model.NotificationLte;
-import org.onap.dcaegen2.services.sonhms.model.NotificationPayload;
-import org.onap.dcaegen2.services.sonhms.model.NotificationRan;
-import org.onap.dcaegen2.services.sonhms.model.RadioAccess;
-import org.onap.dcaegen2.services.sonhms.model.X0005b9Lte;
public class NotificationTest {
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/model/PayloadTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/model/PayloadTest.java
index a7f0a79..1aae8c2 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/model/PayloadTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/model/PayloadTest.java
@@ -26,15 +26,6 @@ import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import org.junit.Test;
-import org.onap.dcaegen2.services.sonhms.model.CellConfig;
-import org.onap.dcaegen2.services.sonhms.model.Common;
-import org.onap.dcaegen2.services.sonhms.model.Configurations;
-import org.onap.dcaegen2.services.sonhms.model.Data;
-import org.onap.dcaegen2.services.sonhms.model.FapService;
-import org.onap.dcaegen2.services.sonhms.model.Lte;
-import org.onap.dcaegen2.services.sonhms.model.Payload;
-import org.onap.dcaegen2.services.sonhms.model.Ran;
-import org.onap.dcaegen2.services.sonhms.model.X0005b9Lte;
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/model/PolicyNotificationTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/model/PolicyNotificationTest.java
index b99a9d7..12b0771 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/model/PolicyNotificationTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/model/PolicyNotificationTest.java
@@ -23,6 +23,8 @@ package org.onap.dcaegen2.services.sonhms.model;
import static org.junit.Assert.assertEquals;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
@@ -32,8 +34,6 @@ import java.util.Map;
import org.junit.Assert;
import org.junit.Test;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
import org.onap.dcaegen2.services.sonhms.utils.ClusterUtilsTest;
public class PolicyNotificationTest {
@@ -94,6 +94,9 @@ public class PolicyNotificationTest {
}
Assert.assertEquals(policyNotification1.hashCode(), policyNotification2.hashCode());
+ Assert.assertEquals(policyNotification1, policyNotification2);
+ Assert.assertTrue(policyNotification1.equals(policyNotification2));
+ Assert.assertFalse(policyNotification1.equals(null));
Assert.assertNotEquals(policyNotification1.hashCode(), policyNotification3.hashCode());
}
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/AsyncResponseBodyTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/AsyncResponseBodyTest.java
index 085abbb..fcc2c31 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/AsyncResponseBodyTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/AsyncResponseBodyTest.java
@@ -25,9 +25,6 @@ import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
-import org.onap.dcaegen2.services.sonhms.restclient.AsyncResponseBody;
-import org.onap.dcaegen2.services.sonhms.restclient.Solution;
-import org.onap.dcaegen2.services.sonhms.restclient.SonSolution;
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/CellInfoTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/CellInfoTest.java
index 24ba1ae..9f21f8d 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/CellInfoTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/CellInfoTest.java
@@ -25,8 +25,8 @@ import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.List;
+
import org.junit.Test;
-import org.onap.dcaegen2.services.sonhms.restclient.CellInfo;
public class CellInfoTest {
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/OofRequestBodyTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/OofRequestBodyTest.java
index eb0d189..0e2b59c 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/OofRequestBodyTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/OofRequestBodyTest.java
@@ -25,10 +25,8 @@ import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.List;
+
import org.junit.Test;
-import org.onap.dcaegen2.services.sonhms.restclient.CellInfo;
-import org.onap.dcaegen2.services.sonhms.restclient.OofRequestBody;
-import org.onap.dcaegen2.services.sonhms.restclient.RequestInfo;
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/OofRestClientTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/OofRestClientTest.java
index 4a9fed5..75af4fe 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/OofRestClientTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/OofRestClientTest.java
@@ -25,6 +25,7 @@ import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.List;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -59,29 +60,20 @@ public class OofRestClientTest {
public void queryOofTest() {
configuration.setBufferTime(60);
configuration.setCallbackUrl("/callbackUrl");
- configuration.setConfigName("configName");
List<String> list = new ArrayList<String>();
list.add("server");
- configuration.setServers(list);
+ configuration.setDmaapServers(list);
configuration.setCg("cg");
configuration.setCid("cid");
- configuration.setManagerApiKey("managerApiKey");
- configuration.setManagerSecretKey("managerSecretKey");
configuration.setMaximumClusters(5);
configuration.setMinCollision(5);
configuration.setMinConfusion(5);
configuration.setNumSolutions(1);
configuration.setOofService("oofService");
configuration.setOptimizers(list);
- configuration.setPcimsApiKey("pcimsApiKey");
- configuration.setPcimsSecretKey("pcimsSecretKey");
- configuration.setPolicyName("policyName");
- configuration.setPolicyService("policyService");
- configuration.setPolicyTopic("policyTopic");
configuration.setPollingInterval(30);
configuration.setPollingTimeout(100);
- configuration.setSdnrService("sdnrService");
- configuration.setSdnrTopic("sdnrTopic");
+ configuration.setConfigDbService("sdnrService");
configuration.setSourceId("sourceId");
String responseBody="{\n" +
" \"transactionId\": \"xxx-xxx-xxxx\",\n" +
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/PciSolutionsTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/PciSolutionsTest.java
index 4f59435..79d27ad 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/PciSolutionsTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/PciSolutionsTest.java
@@ -24,7 +24,6 @@ package org.onap.dcaegen2.services.sonhms.restclient;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
-import org.onap.dcaegen2.services.sonhms.restclient.SonSolution;
public class PciSolutionsTest {
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/PolicyRequestBodyTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/PolicyRequestBodyTest.java
index 5de8951..4578fd1 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/PolicyRequestBodyTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/PolicyRequestBodyTest.java
@@ -24,7 +24,6 @@ package org.onap.dcaegen2.services.sonhms.restclient;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
-import org.onap.dcaegen2.services.sonhms.restclient.PolicyRequestBody;
public class PolicyRequestBodyTest {
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/PolicyRestClientTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/PolicyRestClientTest.java
deleted file mode 100644
index 387b958..0000000
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/PolicyRestClientTest.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * ============LICENSE_START=======================================================
- * son-handler
- * ================================================================================
- * Copyright (C) 2019 Wipro Limited.
- * ==============================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- *******************************************************************************/
-
-package org.onap.dcaegen2.services.sonhms.restclient;
-
-import static org.junit.Assert.assertEquals;
-import java.util.ArrayList;
-import java.util.List;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Matchers;
-import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
-import org.onap.dcaegen2.services.sonhms.Configuration;
-import org.onap.dcaegen2.services.sonhms.restclient.PolicyRestClient;
-import org.onap.dcaegen2.services.sonhms.utils.SonHandlerRestTemplate;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-import org.powermock.modules.junit4.PowerMockRunnerDelegate;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.core.ParameterizedTypeReference;
-import org.springframework.http.ResponseEntity;
-import org.springframework.test.context.junit4.SpringRunner;
-
-@RunWith(PowerMockRunner.class)
-@PowerMockRunnerDelegate(SpringRunner.class)
-@PrepareForTest({ SonHandlerRestTemplate.class, Configuration.class })
-@SpringBootTest(classes = PolicyRestClientTest.class)
-public class PolicyRestClientTest {
-
- Configuration configuration = Configuration.getInstance();
-
- @Before
- public void setup() {
- MockitoAnnotations.initMocks(this);
- }
-
- @Test
- public void fetchConfigFromPolicyTest() {
-
- configuration.setBufferTime(60);
- configuration.setCallbackUrl("/callbackUrl");
- configuration.setConfigName("configName");
- List<String> list = new ArrayList<String>();
- list.add("server");
- configuration.setServers(list);
- configuration.setCg("cg");
- configuration.setCid("cid");
- configuration.setManagerApiKey("managerApiKey");
- configuration.setManagerSecretKey("managerSecretKey");
- configuration.setMaximumClusters(5);
- configuration.setMinCollision(5);
- configuration.setMinConfusion(5);
- configuration.setNumSolutions(1);
- configuration.setOofService("oofService");
- configuration.setOptimizers(list);
- configuration.setPcimsApiKey("pcimsApiKey");
- configuration.setPcimsSecretKey("pcimsSecretKey");
- configuration.setPolicyName("policyName");
- configuration.setPolicyService("policyService");
- configuration.setPolicyTopic("policyTopic");
- configuration.setPollingInterval(30);
- configuration.setPollingTimeout(100);
- configuration.setSdnrService("sdnrService");
- configuration.setSdnrTopic("sdnrTopic");
- configuration.setSourceId("sourceId");
- String responseBody="{\n" +
- "\"policyName\": \"com.Config_PCIMS_CONFIG_POLICY\",\n" +
- "\"policyVersion\": \"1\",\n" +
- "\"configBody\": \"{ \\\"PCI_NEIGHBOR_CHANGE_CLUSTER_TIMEOUT_IN_SECS\\\":60,\n" +
- "\\\"PCI_MODCONFIG_POLICY_NAME\\\":\\\"ControlLoop-vPCI-fb41f388-a5f2-11e8-98d0-\n" +
- "529269fb1459\\\", \\\"PCI_OPTMIZATION_ALGO_CATEGORY_IN_OOF\\\":\\\"OOF-PCI-\n" +
- "OPTIMIZATION\\\", \\\"PCI_SDNR_TARGET_NAME\\\":\\\"SDNR\\\" }\",\n" +
- "\"policyClass\": \"Config\",\n" +
- "\"policyConfigType\": \"Base\",\n" +
- "\"ttlDate\": \"2018-08-29T06:28:16.830Z\",\n" +
- "\"onapName\": \"DCAE\",\n" +
- "\"configName\": \"PCIMS_CONFIG_POLICY\",\n" +
- "\"configBodyType\": \"JSON\"\n" +
- "}\n" +
- "";
- PowerMockito.mockStatic(SonHandlerRestTemplate.class);
- PowerMockito.mockStatic(Configuration.class);
- PowerMockito.when(Configuration.getInstance()).thenReturn(configuration);
-
- PowerMockito.when(SonHandlerRestTemplate.sendPostToPolicy(Mockito.anyString(),Mockito.anyString() ,Matchers.<ParameterizedTypeReference<String>>any()))
- .thenReturn(ResponseEntity.ok(responseBody));
- String result=PolicyRestClient.fetchConfigFromPolicy();
- assertEquals(ResponseEntity.ok(responseBody).getBody(), result);
-
-
-
-
-
- }
-
-}
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/RequestInfoTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/RequestInfoTest.java
index 4d360d8..cbb29a7 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/RequestInfoTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/RequestInfoTest.java
@@ -27,7 +27,6 @@ import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
-import org.onap.dcaegen2.services.sonhms.restclient.RequestInfo;
public class RequestInfoTest {
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/SdnrRestClientTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/SdnrRestClientTest.java
index c13b698..bffccfc 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/SdnrRestClientTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/SdnrRestClientTest.java
@@ -42,11 +42,11 @@ import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.modules.junit4.PowerMockRunnerDelegate;
+import org.slf4j.Logger;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.ResponseEntity;
import org.springframework.test.context.junit4.SpringRunner;
-import org.slf4j.Logger;
@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(SpringRunner.class)
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/SolutionsTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/SolutionsTest.java
index 9decce0..9286629 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/SolutionsTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/restclient/SolutionsTest.java
@@ -25,9 +25,8 @@ import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.List;
+
import org.junit.Test;
-import org.onap.dcaegen2.services.sonhms.restclient.Solution;
-import org.onap.dcaegen2.services.sonhms.restclient.SonSolution;
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/utils/ClusterUtilsTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/utils/ClusterUtilsTest.java
index dd3059a..48813e1 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/utils/ClusterUtilsTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/utils/ClusterUtilsTest.java
@@ -21,6 +21,14 @@
package org.onap.dcaegen2.services.sonhms.utils;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import fj.data.Either;
+
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
@@ -31,7 +39,6 @@ import java.util.List;
import java.util.Map;
import java.util.UUID;
-import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -56,11 +63,6 @@ import org.powermock.modules.junit4.PowerMockRunnerDelegate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-import fj.data.Either;
-
@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(SpringRunner.class)
@PrepareForTest({ SdnrRestClient.class, BeanUtil.class })