diff options
15 files changed, 113 insertions, 232 deletions
diff --git a/scripts/policy/policy-apex-pdp/config/apex-pdp/OnapPfConfig.json b/scripts/policy/policy-apex-pdp/config/apex-pdp/OnapPfConfig.json deleted file mode 100644 index 6944c9bd..00000000 --- a/scripts/policy/policy-apex-pdp/config/apex-pdp/OnapPfConfig.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name":"OnapPfParameterGroup", - "restServerParameters": { - "host": "0.0.0.0", - "port": 6969, - "userName": "healthcheck", - "password": "zb!XztG34", - "https": true, - "aaf": false - }, - "pdpStatusParameters":{ - "timeIntervalMs": 10000, - "pdpType":"apex", - "description":"Pdp Heartbeat", - "supportedPolicyTypes":[{"name":"onap.policies.controlloop.operational.Apex","version":"1.0.0"}] - } -} diff --git a/scripts/policy/policy-apex-pdp/config/apex-pdp/topic.properties b/scripts/policy/policy-apex-pdp/config/apex-pdp/topic.properties deleted file mode 100644 index b7df11a8..00000000 --- a/scripts/policy/policy-apex-pdp/config/apex-pdp/topic.properties +++ /dev/null @@ -1,23 +0,0 @@ -# ============LICENSE_START======================================================= -# Copyright (C) 2019 Nordix Foundation. -# ================================================================================ -# 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. -# -# SPDX-License-Identifier: Apache-2.0 -# ============LICENSE_END========================================================= - -dmaap.source.topics=POLICY-PDP-PAP -dmaap.sink.topics=POLICY-PDP-PAP - -dmaap.source.topics.POLICY-PDP-PAP.servers= dmaap:3904 -dmaap.sink.topics.POLICY-PDP-PAP.servers= dmaap:3904 diff --git a/scripts/policy/policy-apex-pdp/config/pap/defaultConfig.json b/scripts/policy/policy-apex-pdp/config/pap/defaultConfig.json deleted file mode 100644 index 519060dd..00000000 --- a/scripts/policy/policy-apex-pdp/config/pap/defaultConfig.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "PapGroup", - "restServerParameters": { - "host": "0.0.0.0", - "port": 6969, - "userName": "healthcheck", - "password": "zb!XztG34", - "https": true, - "aaf": false - }, - "pdpParameters": { - "heartBeatMs": 120000, - "updateParameters": { - "maxRetryCount": 1, - "maxWaitMs": 30000 - }, - "stateChangeParameters": { - "maxRetryCount": 1, - "maxWaitMs": 30000 - } - }, - "databaseProviderParameters": { - "name": "PolicyProviderParameterGroup", - "implementation": "org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl", - "databaseDriver": "org.mariadb.jdbc.Driver", - "databaseUrl": "jdbc:mariadb://mariadb:3306/policyadmin", - "databaseUser": "policy_user", - "databasePassword": "cG9saWN5X3VzZXI=", - "persistenceUnit": "PolicyMariaDb" - } -} diff --git a/scripts/policy/policy-apex-pdp/config/pap/logback.xml b/scripts/policy/policy-apex-pdp/config/pap/logback.xml deleted file mode 100644 index a34956c5..00000000 --- a/scripts/policy/policy-apex-pdp/config/pap/logback.xml +++ /dev/null @@ -1,102 +0,0 @@ -<!-- - ============LICENSE_START======================================================= - Copyright (C) 2019 Nordix Foundation. - Modifications Copyright (C) 2019 AT&T Intellectual Property. - ================================================================================ - 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. - SPDX-License-Identifier: Apache-2.0 - ============LICENSE_END========================================================= ---> - -<configuration scan="true" scanPeriod="30 seconds" debug="false"> - - <property name="logDir" value="${POLICY_LOGS}" /> - - <property name="errorLog" value="error" /> - <property name="debugLog" value="debug" /> - <property name="networkLog" value="network" /> - - <property name="debugPattern" - value="[%d{yyyy-MM-dd'T'HH:mm:ss.SSS+00:00, UTC}|%level|%logger{0}|%thread] %msg%n" /> - <property name="errorPattern" value="${debugPattern}" /> - <property name="networkPattern" value="[%d{yyyy-MM-dd'T'HH:mm:ss.SSS+00:00, UTC}|%t]%m%n" /> - - <appender name="ErrorOut" class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${logDir}/${errorLog}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> - <fileNamePattern>${logDir}/${errorLog}.%d{yyyy-MM-dd}.%i.log.zip - </fileNamePattern> - <maxFileSize>50MB</maxFileSize> - <maxHistory>30</maxHistory> - <totalSizeCap>10GB</totalSizeCap> - </rollingPolicy> - <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> - <level>WARN</level> - </filter> - <encoder> - <pattern>${errorPattern}</pattern> - </encoder> - </appender> - - <appender name="AsyncErrorOut" class="ch.qos.logback.classic.AsyncAppender"> - <appender-ref ref="ErrorOut" /> - </appender> - - <appender name="DebugOut" class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${logDir}/${debugLog}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> - <fileNamePattern>${logDir}/${debugLog}.%d{yyyy-MM-dd}.%i.log.zip - </fileNamePattern> - <maxFileSize>50MB</maxFileSize> - <maxHistory>30</maxHistory> - <totalSizeCap>10GB</totalSizeCap> - </rollingPolicy> - <encoder> - <pattern>${debugPattern}</pattern> - </encoder> - </appender> - - <appender name="AsyncDebugOut" class="ch.qos.logback.classic.AsyncAppender"> - <appender-ref ref="DebugOut" /> - </appender> - - <appender name="NetworkOut" class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${logDir}/${networkLog}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> - <fileNamePattern>${logDir}/${networkLog}.%d{yyyy-MM-dd}.%i.log.zip - </fileNamePattern> - <maxFileSize>50MB</maxFileSize> - <maxHistory>30</maxHistory> - <totalSizeCap>10GB</totalSizeCap> - </rollingPolicy> - <encoder> - <pattern>${networkPattern}</pattern> - </encoder> - </appender> - - <appender name="AsyncNetworkOut" class="ch.qos.logback.classic.AsyncAppender"> - <appender-ref ref="NetworkOut" /> - </appender> - - <logger name="network" level="INFO" additivity="false"> - <appender-ref ref="AsyncNetworkOut" /> - </logger> - - <logger name="org.eclipse.jetty.server.RequestLog" level="info" additivity="false"> - <appender-ref ref="AsyncNetworkOut" /> - </logger> - - <root level="INFO"> - <appender-ref ref="AsyncDebugOut" /> - <appender-ref ref="AsyncErrorOut" /> - </root> - -</configuration> diff --git a/scripts/policy/policy-apex-pdp/config/pap/s3pConfig.json b/scripts/policy/policy-apex-pdp/config/pap/s3pConfig.json deleted file mode 100644 index 3085f45d..00000000 --- a/scripts/policy/policy-apex-pdp/config/pap/s3pConfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "PapGroup", - "restServerParameters": { - "host": "0.0.0.0", - "port": 6969, - "userName": "healthcheck", - "password": "zb!XztG34", - "https": true, - "aaf": false - } -} diff --git a/scripts/policy/policy-apex-pdp/config/pap/ssl/policy-keystore b/scripts/policy/policy-apex-pdp/config/pap/ssl/policy-keystore Binary files differdeleted file mode 100644 index bf876b8a..00000000 --- a/scripts/policy/policy-apex-pdp/config/pap/ssl/policy-keystore +++ /dev/null diff --git a/scripts/policy/policy-apex-pdp/config/pap/ssl/policy-truststore b/scripts/policy/policy-apex-pdp/config/pap/ssl/policy-truststore Binary files differdeleted file mode 100644 index b7d52ad1..00000000 --- a/scripts/policy/policy-apex-pdp/config/pap/ssl/policy-truststore +++ /dev/null diff --git a/scripts/policy/policy-apex-pdp/config/pap/topic.properties b/scripts/policy/policy-apex-pdp/config/pap/topic.properties deleted file mode 100644 index b7df11a8..00000000 --- a/scripts/policy/policy-apex-pdp/config/pap/topic.properties +++ /dev/null @@ -1,23 +0,0 @@ -# ============LICENSE_START======================================================= -# Copyright (C) 2019 Nordix Foundation. -# ================================================================================ -# 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. -# -# SPDX-License-Identifier: Apache-2.0 -# ============LICENSE_END========================================================= - -dmaap.source.topics=POLICY-PDP-PAP -dmaap.sink.topics=POLICY-PDP-PAP - -dmaap.source.topics.POLICY-PDP-PAP.servers= dmaap:3904 -dmaap.sink.topics.POLICY-PDP-PAP.servers= dmaap:3904 diff --git a/scripts/policy/policy-apex-pdp/docker-compose-apex.yml b/scripts/policy/policy-apex-pdp/docker-compose-apex.yml index e836a589..c6578dda 100644 --- a/scripts/policy/policy-apex-pdp/docker-compose-apex.yml +++ b/scripts/policy/policy-apex-pdp/docker-compose-apex.yml @@ -27,7 +27,7 @@ services: - ./config/db:/docker-entrypoint-initdb.d ports: - "3306:3306" - dmaap: + message-router: image: dmaap/simulator container_name: dmaap-simulator hostname: dmaap-simulator @@ -38,10 +38,9 @@ services: container_name: policy-pap depends_on: - mariadb - - dmaap + - message-router hostname: policy-pap - volumes: - - ./config/pap/:/opt/app/policy/pap/etc/ + api: image: nexus3.onap.org:10001/onap/policy-api container_name: policy-api @@ -53,12 +52,11 @@ services: container_name: policy-apex-pdp depends_on: - mariadb - - dmaap + - message-router - pap hostname: policy-apex-pdp command: ['/opt/app/policy/apex-pdp/bin/apexOnapPf.sh', '-c', '/opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json', '-p', '/opt/app/policy/apex-pdp/etc/onappf/config/topic.properties'] - volumes: - - ./config/apex-pdp/:/opt/app/policy/apex-pdp/etc/onappf/config/ + ports: - "6969:6969" - "23324:23324" @@ -69,11 +67,11 @@ services: container_name: policy-wait depends_on: - mariadb - - dmaap + - message-router hostname: policy-wait command: mariadb:3306 - dmaap:3904 + message-router:3904 start_all: image: dadarek/wait-for-dependencies environment: @@ -81,14 +79,14 @@ services: container_name: policy-wait-all depends_on: - mariadb - - dmaap + - message-router - api - pap - apex hostname: policy-wait-all command: mariadb:3306 - dmaap:3904 + message-router:3904 api:6969 pap:6969 apex:6969 diff --git a/tests/dcaegen2/prh-testcases/assets/re-registration/aai-entry-service-instance.json b/tests/dcaegen2/prh-testcases/assets/re-registration/aai-entry-service-instance.json new file mode 100644 index 00000000..6119ea8b --- /dev/null +++ b/tests/dcaegen2/prh-testcases/assets/re-registration/aai-entry-service-instance.json @@ -0,0 +1,25 @@ +{ + "service-instance-id": "bbs_service", + "service-instance-name": "bbs_service", + "environment-context": "General_Revenue-Bearing", + "workload-context": "Production", + "model-invariant-id": "c71827e7-42fc-46ab-b059-22584c58108b", + "model-version-id": "8efe4a8a-6646-43e2-8807-a376ff22d2e0", + "resource-version": "1554127221722", + "orchestration-status": "Active", + "relationship-list": { + "relationship": [ + { + "related-to": "pnf", + "relationship-label": "org.onap.relationships.inventory.ComposedOf", + "related-link": "/aai/v12/network/pnfs/pnf/NOK6061ZW9", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "NOK6061ZW9" + } + ] + } + ] + } +}
\ No newline at end of file diff --git a/tests/dcaegen2/prh-testcases/assets/re-registration/aai-entry.json b/tests/dcaegen2/prh-testcases/assets/re-registration/aai-entry.json index 8787dc1b..e01e26e6 100644 --- a/tests/dcaegen2/prh-testcases/assets/re-registration/aai-entry.json +++ b/tests/dcaegen2/prh-testcases/assets/re-registration/aai-entry.json @@ -19,5 +19,48 @@ "ipaddress-v6-oam": "example-ipaddress-v6-oam-val-92665", "inv-status": "example-inv-status-val-8477", "prov-status": "example-prov-status-val-68268", - "nf-role": "example-nf-role-val-68489" + "nf-role": "example-nf-role-val-68489", + "relationship-list": { + "relationship": [ + { + "related-to": "service-instance", + "relationship-label": "org.onap.relationships.inventory.ComposedOf", + "related-link": "/aai/v12/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFW/service-instances/service-instance/bbs_service", + "relationship-data": [ + { + "relationship-key": "customer.global-customer-id", + "relationship-value": "Demonstration" + }, + { + "relationship-key": "service-subscription.service-type", + "relationship-value": "vFW" + }, + { + "relationship-key": "service-instance.service-instance-id", + "relationship-value": "bbs_service" + } + ], + "related-to-property": [ + { + "property-key": "service-instance.service-instance-name", + "property-value": "bbs_service" + } + ] + }, + { + "related-to": "logical-link", + "relationship-label": "org.onap.relationships.inventory.BridgedTo", + "related-link": "/aai/v12/network/logical-links/logical-link/bbs-link", + "relationship-data": [ + { + "relationship-key": "logical-link.link-name", + "relationship-value": "bbs-link" + } + ] + } + ] + } + + + }
\ No newline at end of file diff --git a/tests/dcaegen2/prh-testcases/assets/re-registration/expected-logical-link.json b/tests/dcaegen2/prh-testcases/assets/re-registration/expected-logical-link.json index b75df885..0e4f6ab1 100644 --- a/tests/dcaegen2/prh-testcases/assets/re-registration/expected-logical-link.json +++ b/tests/dcaegen2/prh-testcases/assets/re-registration/expected-logical-link.json @@ -1,13 +1,22 @@ { "link-name": "bbs-link", + "in-maint": false, "link-type": "attachment-point", "relationship-list": { "relationship": [ { + "related-to": "pnf", + "relationship-label": "org.onap.relationships.inventory.BridgedTo", "related-link": "/network/pnfs/pnf/NOK6061ZW9", - "relationship-data": [] + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "NOK6061ZW9" + } + ] } ] } } + diff --git a/tests/dcaegen2/prh-testcases/assets/re-registration/expected-pnf-ready-event.json b/tests/dcaegen2/prh-testcases/assets/re-registration/expected-pnf-ready-event.json deleted file mode 100644 index 5c77e125..00000000 --- a/tests/dcaegen2/prh-testcases/assets/re-registration/expected-pnf-ready-event.json +++ /dev/null @@ -1,8 +0,0 @@ -[ - { - "additionalFields": { - "attachment-point": "bbs-link" - }, - "correlationId": "NOK6061ZW9" - } -]
\ No newline at end of file diff --git a/tests/dcaegen2/prh-testcases/resources/prh_library.robot b/tests/dcaegen2/prh-testcases/resources/prh_library.robot index 7bf12645..007caf37 100644 --- a/tests/dcaegen2/prh-testcases/resources/prh_library.robot +++ b/tests/dcaegen2/prh-testcases/resources/prh_library.robot @@ -58,14 +58,15 @@ Verify AAI not responding is logged Verify PNF re registration [Timeout] 100s [Arguments] ${test_case_directory} - ${expected_logical_link}= Get Data From File ${test_case_directory}/expected-logical-link.json - Verify PNF ready sent ${test_case_directory} - Check created Logical Link ${expected_logical_link} + ${aai_entry}= Get Data From File ${test_case_directory}/aai-entry.json + Add PNF entry in AAI ${aai_entry} + ${service_instance}= Get Data From File ${test_case_directory}/aai-entry-service-instance.json + Add service instance entry in AAI ${service_instance} ${ves_event}= Get Data From File ${test_case_directory}/ves-event.json Set VES event in DMaaP ${ves_event} ${expected_pnf_update_event}= Get Data From File ${test_case_directory}/expected-pnf-update-event.json - Wait Until Keyword Succeeds 10x 3000ms Check created PNF_UPDATE notification ${expected_pnf_update_event} + #Wait Until Keyword Succeeds 10x 3000ms Check created PNF_UPDATE notification ${expected_pnf_update_event} Check CBS ready ${resp}= Get Request ${consul_setup_session} /v1/catalog/services @@ -115,6 +116,13 @@ Add PNF entry in AAI ${resp}= Put Request ${aai_setup_session} /setup/add_pnf_entry headers=${suite_headers} data=${pnf_entry} Should Be Equal As Strings ${resp.status_code} 200 +Add service instance entry in AAI + [Arguments] ${aai_service_instance} + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json + Log AAI url ${AAI_SIMULATOR_SETUP_URL} + ${resp}= Put Request ${aai_setup_session} /setup/add_service_instace headers=${suite_headers} data=${aai_service_instance} + Should Be Equal As Strings ${resp.status_code} 200 + Set VES event in DMaaP [Arguments] ${ves_event} ${resp}= Put Request ${dmaap_setup_session} /setup/ves_event headers=${suite_headers} data=${ves_event} diff --git a/tests/dcaegen2/prh-testcases/resources/simulator/AAI.py b/tests/dcaegen2/prh-testcases/resources/simulator/AAI.py index 9b76adf8..f6d3b1f6 100644 --- a/tests/dcaegen2/prh-testcases/resources/simulator/AAI.py +++ b/tests/dcaegen2/prh-testcases/resources/simulator/AAI.py @@ -22,6 +22,7 @@ AAI_RESOURCE_NOT_FOUND = b'{}' pnf_entries = {} patched_pnf = AAI_RESOURCE_NOT_FOUND created_logical_link = AAI_RESOURCE_NOT_FOUND +service_instance = AAI_RESOURCE_NOT_FOUND class AAISetup(BaseHTTPRequestHandler): @@ -53,6 +54,13 @@ class AAISetup(BaseHTTPRequestHandler): httpServerLib.set_response_200_ok(self) logger.debug('AAISetup PUT /setup/add_pnf_entry [' + pnf_name + '] -> 200 OK') + elif re.search('/setup/add_service_instace', self.path): + service_instance_payload = httpServerLib.get_payload(self) + global service_instance + service_instance = json.loads(service_instance_payload) + httpServerLib.set_response_200_ok(self) + logger.debug('AAISetup PUT /setup/add_service_instace -> 200 OK') + elif re.search('/set_pnf', self.path): pnf_name = httpServerLib.get_payload(self).decode() pnf_entries[pnf_name] = AAI_RESOURCE_NOT_FOUND @@ -70,9 +78,11 @@ class AAISetup(BaseHTTPRequestHandler): global pnf_entries global patched_pnf global created_logical_link + global service_instance pnf_entries = {} patched_pnf = AAI_RESOURCE_NOT_FOUND created_logical_link = AAI_RESOURCE_NOT_FOUND + service_instance = AAI_RESOURCE_NOT_FOUND httpServerLib.set_response_200_ok(self) logger.debug('AAISetup POST /reset -> 200 OK') @@ -95,6 +105,9 @@ class AAIHandler(BaseHTTPRequestHandler): else: httpServerLib.set_response_404_not_found(self) logger.info('AAIHandler GET /aai/v12/network/pnfs/pnf/' + pnf_name + ' -> 404 Not found, actual entries: ' + str(pnf_entries.keys())) + elif re.search('aai/v12/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFW/service-instances/service-instance/bbs_service', self.path): + httpServerLib.set_response_200_ok(self, payload = service_instance) + logger.debug('AAIHandler GET aai/v12/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFW/service-instances/service-instance/bbs_service -> 200 OK') else: httpServerLib.set_response_404_not_found(self) logger.info('AAIHandler GET ' + self.path + ' -> 404 Not found') |