diff options
32 files changed, 846 insertions, 1189 deletions
diff --git a/compose/config/drools-applications/custom/feature-lifecycle.properties b/compose/config/drools-applications/custom/feature-lifecycle.properties index 053cd066..a68fb5ca 100644 --- a/compose/config/drools-applications/custom/feature-lifecycle.properties +++ b/compose/config/drools-applications/custom/feature-lifecycle.properties @@ -23,17 +23,18 @@ lifecycle.pdp.type=${envd:POLICY_PDP_PAP_TYPE:drools} # Mandatory policy types that this PDP-D must support at a minimum lifecycle.pdp.policytypes=${envd:POLICY_PDP_PAP_POLICYTYPES} -kafka.source.topics=policy-pdp-pap -kafka.sink.topics=policy-pdp-pap -kafka.source.topics.fetchTimeout=15000 +kafka.source.topics=${envd:POLICY_PDP_PAP_TOPIC} +kafka.sink.topics=${envd:POLICY_PDP_PAP_TOPIC} kafka.source.topics.policy-pdp-pap.fetchTimeout=15000 -kafka.source.topics.policy-pdp-pap.servers=kafka:9092 +kafka.source.topics.policy-pdp-pap.servers=${envd:KAFKA_SERVERS} kafka.source.topics.policy-pdp-pap.effectiveTopic=${envd:POLICY_PDP_PAP_TOPIC} kafka.source.topics.policy-pdp-pap.apiKey=${envd:POLICY_PDP_PAP_API_KEY} kafka.source.topics.policy-pdp-pap.apiSecret=${envd:POLICY_PDP_PAP_API_SECRET} +kafka.source.topics.policy-pdp-pap.https=${envd:KAFKA_HTTPS:false} -kafka.sink.topics.policy-pdp-pap.servers=kafka:9092 +kafka.sink.topics.policy-pdp-pap.servers=${envd:KAFKA_SERVERS} kafka.sink.topics.policy-pdp-pap.effectiveTopic=${envd:POLICY_PDP_PAP_TOPIC} kafka.sink.topics.policy-pdp-pap.apiKey=${envd:POLICY_PDP_PAP_API_KEY} kafka.sink.topics.policy-pdp-pap.apiSecret=${envd:POLICY_PDP_PAP_API_SECRET} +kafka.sink.topics.policy-pdp-pap.https=${envd:KAFKA_HTTPS:false} diff --git a/compose/config/drools-applications/env/base.conf b/compose/config/drools-applications/env/base.conf index 7f213ead..0f677239 100644 --- a/compose/config/drools-applications/env/base.conf +++ b/compose/config/drools-applications/env/base.conf @@ -60,6 +60,11 @@ MYSQL_CMD= HTTP_SERVER_HTTPS=false PROMETHEUS=true +# kafka server + +KAFKA_SERVERS=kafka:9092 +KAFKA_HTTPS=false + # LIVENESS Checks LIVENESS_CONTROLLERS=* @@ -67,6 +72,7 @@ LIVENESS_CONTROLLERS=* # PDP-D Kafka configuration channel PDPD_CONFIGURATION_TOPIC=pdpd-configuration +PDPD_CONFIGURATION_SERVERS=kafka:9092 PDPD_CONFIGURATION_API_KEY= PDPD_CONFIGURATION_API_SECRET= PDPD_CONFIGURATION_CONSUMER_GROUP= @@ -78,6 +84,7 @@ PDPD_CONFIGURATION_PARTITION_KEY= POLICY_PDP_PAP_TOPIC=policy-pdp-pap POLICY_PDP_PAP_API_KEY= POLICY_PDP_PAP_API_SECRET= +POLICY_PDP_PAP_POLICYTYPES=onap.policies.controlloop.operational.common.Drools # PAP @@ -101,7 +108,6 @@ DCAE_TOPIC=unauthenticated.dcae_cl_output DCAE_SERVERS=kafka:9092 DCAE_CONSUMER_GROUP=dcae.policy.shared - # AAI AAI_HOST=aai-sim diff --git a/compose/config/drools-applications/env/feature-pooling-messages.conf b/compose/config/drools-applications/env/feature-pooling-messages.conf index f90a9f04..967ae7bf 100644 --- a/compose/config/drools-applications/env/feature-pooling-messages.conf +++ b/compose/config/drools-applications/env/feature-pooling-messages.conf @@ -15,4 +15,4 @@ # limitations under the License. # ============LICENSE_END========================================================= -POOLING_TOPIC=pooling +POOLING_TOPIC=policy-pdp-pooling diff --git a/compose/config/drools-pdp/env/base.conf b/compose/config/drools-pdp/env/base.conf index a0b2a923..0e0156bd 100644 --- a/compose/config/drools-pdp/env/base.conf +++ b/compose/config/drools-pdp/env/base.conf @@ -102,6 +102,7 @@ DCAE_CONSUMER_GROUP=dcae.policy.shared # kafka server KAFKA_SERVERS=kafka:9092 +KAFKA_HTTPS=false # AAI diff --git a/compose/docker-compose.gui.yml b/compose/docker-compose.gui.yml index 326ce217..e2e98b54 100644 --- a/compose/docker-compose.gui.yml +++ b/compose/docker-compose.gui.yml @@ -1,6 +1,6 @@ # # ===========LICENSE_START==================================================== -# Copyright 2023 Nordix Foundation. +# Copyright 2023-2024 Nordix Foundation. # ============================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,45 +15,45 @@ # limitations under the License. # ============LICENSE_END===================================================== # -version: '2' + services: - policy-gui: - image: ${CONTAINER_LOCATION}onap/policy-gui:latest - container_name: policy-gui - depends_on: + policy-gui: + image: ${CONTAINER_LOCATION}onap/policy-gui:latest + container_name: policy-gui + depends_on: - policy-clamp-backend - hostname: policy-gui - environment: - CLAMP_URL: http://policy-clamp-backend:8445 - CLAMP_DISABLE_SSL_VALIDATION: "true" - ports: + hostname: policy-gui + environment: + CLAMP_URL: http://policy-clamp-backend:8445 + CLAMP_DISABLE_SSL_VALIDATION: "true" + ports: - "2445:2445" - volumes: + volumes: - ./config/policy-gui/application.yaml:/opt/app/policy/gui/etc/application.yml - ./config/policy-gui/logback.xml:/opt/app/policy/gui/etc/logback.xml:ro - ./wait_for_port.sh:/opt/app/policy/gui/bin/wait_for_port.sh:ro - entrypoint: ./policy-gui.sh - working_dir: /opt/app/policy/gui/bin - command: ./policy-gui.sh - policy-clamp-backend: - image: ${CONTAINER_LOCATION}onap/policy-clamp-backend:latest - container_name: policy-clamp-backend - depends_on: + entrypoint: ./policy-gui.sh + working_dir: /opt/app/policy/gui/bin + command: ./policy-gui.sh + policy-clamp-backend: + image: ${CONTAINER_LOCATION}onap/policy-clamp-backend:latest + container_name: policy-clamp-backend + depends_on: - policy-clamp-runtime-acm - distribution - hostname: policy-clamp-backend - environment: - POLICY_API_HOST: api - POLICY_PAP_HOST: pap - MARIADB_HOST: mariadb - RUNTIME_HOST: policy-clamp-runtime-acm - ports: + hostname: policy-clamp-backend + environment: + POLICY_API_HOST: api + POLICY_PAP_HOST: pap + MARIADB_HOST: mariadb + RUNTIME_HOST: policy-clamp-runtime-acm + ports: - "8445:8445" - volumes: + volumes: - ./config/clamp/ClampBackend.properties:/opt/policy/clamp/config/ClampBackend.properties:ro - ./config/clamp/logback-backend.xml:/opt/policy/clamp/config/logback.xml:ro - working_dir: /opt/policy/clamp - command: java + working_dir: /opt/policy/clamp + command: java -Djava.security.egd=file:/dev/./urandom -XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=75 diff --git a/compose/docker-compose.pdp.scale.yml b/compose/docker-compose.pdp.scale.yml index 104de3c6..a10264a5 100644 --- a/compose/docker-compose.pdp.scale.yml +++ b/compose/docker-compose.pdp.scale.yml @@ -1,6 +1,6 @@ # # ===========LICENSE_START==================================================== -# Copyright (C) 2023 Nordix Foundation. +# Copyright (C) 2023-2024 Nordix Foundation. # ============================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,7 +16,6 @@ # ============LICENSE_END===================================================== # -version: '2' services: apexpdp: image: ${CONTAINER_LOCATION}onap/policy-apex-pdp:${POLICY_APEX_PDP_VERSION} @@ -30,8 +29,8 @@ services: - 6969 - 23324 deploy: - mode: replicated - replicas: ${REPLICAS} + mode: replicated + replicas: ${REPLICAS} volumes: - ./config/apex-pdp/OnapPfConfig.json:/opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json:ro - ./config/apex-pdp/logback.xml:/opt/app/policy/apex-pdp/etc/logback.xml:ro @@ -42,7 +41,7 @@ services: 'mariadb', '3306', 'kafka', '9092', 'pap', '6969' - ] + ] nginx: image: ${CONTAINER_LOCATION}library/nginx:latest volumes: @@ -50,8 +49,7 @@ services: depends_on: - apexpdp ports: - - ${APEX_PORT}:${APEX_PORT} - + - ${APEX_PORT}:${APEX_PORT} zookeeper: image: confluentinc/cp-zookeeper:latest environment: @@ -59,7 +57,6 @@ services: ZOOKEEPER_TICK_TIME: 2000 ports: - 2181:2181 - kafka: image: confluentinc/cp-kafka:latest container_name: kafka diff --git a/compose/docker-compose.postgres.yml b/compose/docker-compose.postgres.yml index 9c09b663..fee55d97 100644 --- a/compose/docker-compose.postgres.yml +++ b/compose/docker-compose.postgres.yml @@ -15,7 +15,7 @@ # limitations under the License. # ============LICENSE_END===================================================== # -version: '2' + services: postgres: image: nexus3.onap.org:10001/library/postgres:${POLICY_POSTGRES_VER} diff --git a/compose/docker-compose.yml b/compose/docker-compose.yml index d5c6c3b2..06a24497 100644 --- a/compose/docker-compose.yml +++ b/compose/docker-compose.yml @@ -17,421 +17,431 @@ # limitations under the License. # ============LICENSE_END===================================================== # -version: '2' -services: - mariadb: - image: nexus3.onap.org:10001/mariadb:${POLICY_MARIADB_VER} - container_name: mariadb - hostname: mariadb - command: ['--lower-case-table-names=1', '--wait_timeout=28800', '--default-authentication-plugin=mysql_native_password'] - env_file: ./config/db/db.conf - volumes: - - ./config/db:/docker-entrypoint-initdb.d:ro - - ./config/clamp/policy-clamp-create-tables.sql:/tmp/policy-clamp-create-tables.sql - ports: - - "3306:3306" - policy-db-migrator: - image: ${CONTAINER_LOCATION}onap/policy-db-migrator:${POLICY_DOCKER_VERSION} - container_name: policy-db-migrator - hostname: policy-db-migrator - depends_on: - - mariadb - expose: - - 6824 - env_file: ./config/db/db.conf - environment: - SQL_DB: policyadmin - SQL_HOST: mariadb - volumes: - - ./config/db-migrator/init.sh:/opt/app/policy/bin/db_migrator_policy_init.sh:ro - - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro - entrypoint: /opt/app/policy/bin/wait_for_port.sh - command: [ - '-c', - '/opt/app/policy/bin/db_migrator_policy_init.sh', - 'mariadb', '3306' - ] - policy-db-migrator-clamp: - image: ${CONTAINER_LOCATION}onap/policy-db-migrator:${POLICY_DOCKER_VERSION} - container_name: policy-db-migrator-clamp - hostname: policy-db-migrator-clamp - depends_on: - - mariadb - expose: - - 6824 - env_file: ./config/db/db.conf - environment: - SQL_DB: clampacm - SQL_HOST: mariadb - volumes: - - ./config/db-migrator/init.sh:/opt/app/policy/bin/db_migrator_policy_init.sh:ro - - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro - entrypoint: /opt/app/policy/bin/wait_for_port.sh - command: [ - '-c', - '/opt/app/policy/bin/db_migrator_policy_init.sh', - 'mariadb', '3306' - ] - simulator: - image: ${CONTAINER_LOCATION}onap/policy-models-simulator:${POLICY_MODELS_VERSION} - container_name: simulator - hostname: simulator - networks: - default: - aliases: - - aai-sim - - grpc-sim - - sdnc-sim - - so-sim - - vfc-sim - volumes: - - ./config/sim-all:/opt/app/policy/simulators/etc/mounted:ro - - ./config/sim-all/logback.xml:/opt/app/policy/simulators/etc/mounted/logback.xml:ro - expose: - - 6666 - - 6668 - - 6669 - - 6670 - - 6680 - ports: - - ${SIMULATOR_PORT}:6666 - api: - image: ${CONTAINER_LOCATION}onap/policy-api:${POLICY_API_VERSION} - container_name: policy-api - depends_on: - - policy-db-migrator - hostname: policy-api - ports: - - ${API_PORT}:6969 - volumes: - - ./config/api/apiParameters.yaml:/opt/app/policy/api/etc/apiParameters.yaml:ro - - ./config/api/logback.xml:/opt/app/policy/api/etc/logback.xml:ro - - ./wait_for_port.sh:/opt/app/policy/api/bin/wait_for_port.sh:ro - entrypoint: ./wait_for_port.sh - command: [ - '-c', './policy-api.sh', - 'mariadb', '3306', - 'policy-db-migrator', '6824' - ] - pap: - image: ${CONTAINER_LOCATION}onap/policy-pap:${POLICY_PAP_VERSION} - container_name: policy-pap - depends_on: - - mariadb - - kafka - - api - hostname: policy-pap - ports: - - ${PAP_PORT}:6969 - volumes: - - ./config/pap/papParameters.yaml:/opt/app/policy/pap/etc/papParameters.yaml:ro - - ./config/${PROJECT}/groups.json:/opt/app/policy/pap/etc/mounted/groups.json:ro - - ./config/pap/logback.xml:/opt/app/policy/pap/etc/logback.xml:ro - - ./wait_for_port.sh:/opt/app/policy/pap/bin/wait_for_port.sh:ro - entrypoint: ./wait_for_port.sh - command: [ - '-c', './policy-pap.sh', - 'mariadb', '3306', - 'kafka', '9092', - 'api', '6969' - ] - xacml-pdp: - image: ${CONTAINER_LOCATION}onap/policy-xacml-pdp:${POLICY_XACML_PDP_VERSION} - container_name: policy-xacml-pdp - depends_on: - - mariadb - - kafka - - pap - hostname: policy-xacml-pdp - ports: - - ${XACML_PORT}:6969 - - "30999:3904" - volumes: - - ./config/xacml-pdp/defaultConfig.json:/opt/app/policy/pdpx/etc/defaultConfig.json:ro - - ./config/xacml-pdp/logback.xml:/opt/app/policy/pdpx/etc/logback.xml:ro - - ./wait_for_port.sh:/opt/app/policy/pdpx/bin/wait_for_port.sh:ro - entrypoint: ./wait_for_port.sh - command: [ - '-c', './policy-pdpx.sh', - 'mariadb', '3306', - 'kafka', '9092', - 'pap', '6969' - ] - drools-pdp: - image: ${CONTAINER_LOCATION}onap/policy-drools:${POLICY_DROOLS_PDP_VERSION} - container_name: drools - depends_on: - - mariadb - - kafka - - pap - hostname: drools - ports: - - ${DROOLS_PORT}:6969 - - ${DROOLS_TELEMETRY_PORT}:9696 - volumes: - - ./config/drools-pdp/custom:/tmp/policy-install/config:ro - - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro - env_file: - - ./config/drools-pdp/env/base.conf - entrypoint: /opt/app/policy/bin/wait_for_port.sh - command: [ - '-c', '/opt/app/policy/bin/pdpd-entrypoint.sh boot', - 'mariadb', '3306', - 'kafka', '9092' - ] - drools-applications: - image: ${CONTAINER_LOCATION}onap/policy-pdpd-cl:${POLICY_DROOLS_APPS_VERSION} - container_name: drools-apps - depends_on: - - mariadb - - simulator - - kafka - - pap - - xacml-pdp - hostname: drools-apps - ports: - - ${DROOLS_APPS_PORT}:6969 - - ${DROOLS_APPS_TELEMETRY_PORT}:9696 - volumes: - - ./config/drools-applications/custom:/tmp/policy-install/config:ro - - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro - env_file: - - ./config/drools-applications/env/base.conf - - ./config/drools-applications/env/feature-healthcheck.conf - - ./config/drools-applications/env/feature-pooling-messages.conf - entrypoint: /opt/app/policy/bin/wait_for_port.sh - command: [ - '-c', '/opt/app/policy/bin/pdpd-cl-entrypoint.sh boot', - 'mariadb', '3306', - 'kafka', '9092', - 'pap', '6969', - 'aai-sim', '6666', - 'sdnc-sim', '6668', - 'so-sim', '6669', - 'vfc-sim', '6670' - ] - apex-pdp: - image: ${CONTAINER_LOCATION}onap/policy-apex-pdp:${POLICY_APEX_PDP_VERSION} - container_name: policy-apex-pdp - depends_on: - - mariadb - - simulator - - kafka - - pap - hostname: policy-apex-pdp - ports: - - ${APEX_PORT}:6969 - - ${APEX_EVENTS_PORT}:23324 - volumes: - - ./config/apex-pdp/OnapPfConfig.json:/opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json:ro - - ./config/apex-pdp/logback.xml:/opt/app/policy/apex-pdp/etc/logback.xml:ro - - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro - entrypoint: /opt/app/policy/bin/wait_for_port.sh - command: [ - '-c', '/opt/app/policy/apex-pdp/bin/apexOnapPf.sh -c /opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json', - 'mariadb', '3306', - 'kafka', '9092', - 'pap', '6969' - ] - distribution: - image: ${CONTAINER_LOCATION}onap/policy-distribution:${POLICY_DISTRIBUTION_VERSION} - container_name: policy-distribution - depends_on: - - mariadb - - api - - pap - - apex-pdp - hostname: policy-distribution - ports: - - ${DIST_PORT}:6969 - volumes: - - ./config/distribution/defaultConfig.json:/opt/app/policy/distribution/etc/defaultConfig.json:ro - - /tmp/distribution/:/opt/app/policy/distribution/etc/temp/:ro - - ./config/distribution/logback.xml:/opt/app/policy/distribution/etc/logback.xml:ro - - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro - entrypoint: /opt/app/policy/bin/wait_for_port.sh - command: [ - '-c', './policy-dist.sh', - 'mariadb', '3306', - 'kafka', '9092', - 'pap', '6969', - 'apex-pdp', '6969' - ] - policy-clamp-runtime-acm: - image: ${CONTAINER_LOCATION}onap/policy-clamp-runtime-acm:${POLICY_CLAMP_VERSION} - container_name: policy-clamp-runtime-acm - depends_on: - - policy-db-migrator-clamp - - kafka - - policy-clamp-ac-http-ppnt - - policy-clamp-ac-k8s-ppnt - - policy-clamp-ac-pf-ppnt - - policy-clamp-ac-sim-ppnt - - apex-pdp - hostname: policy-clamp-runtime-acm - ports: - - ${ACM_PORT}:6969 - volumes: - - ./config/clamp/AcRuntimeParameters.yaml:/opt/app/policy/clamp/etc/AcRuntimeParameters.yaml - - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro - - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro - entrypoint: /opt/app/policy/bin/wait_for_port.sh - command: [ - '-c', './acm-runtime.sh', - 'mariadb', '3306', - 'kafka', '9092', - 'policy-clamp-ac-http-ppnt', '6969', - 'policy-clamp-ac-k8s-ppnt', '6969', - 'policy-clamp-ac-pf-ppnt', '6969', - 'apex-pdp', '6969' - ] - - policy-clamp-ac-http-ppnt: - image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-http-ppnt:${POLICY_CLAMP_PPNT_VERSION} - container_name: policy-clamp-ac-http-ppnt - depends_on: - - kafka - hostname: policy-clamp-ac-http-ppnt - ports: - - "30290:6969" - volumes: - - ./config/clamp/HttpParticipantParameters.yaml:/opt/app/policy/clamp/etc/HttpParticipantParameters.yaml - - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro - - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro - entrypoint: /opt/app/policy/bin/wait_for_port.sh - command: [ - '-c', './http-participant.sh', - 'kafka', '9092' - ] - policy-clamp-ac-k8s-ppnt: - image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-k8s-ppnt:${POLICY_CLAMP_PPNT_VERSION} - container_name: policy-clamp-ac-k8s-ppnt - depends_on: - - kafka - hostname: policy-clamp-ac-k8s-ppnt - ports: - - "30295:6969" - volumes: - - ./config/clamp/KubernetesParticipantParameters.yaml:/opt/app/policy/clamp/etc/KubernetesParticipantParameters.yaml - - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro - - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro - entrypoint: /opt/app/policy/bin/wait_for_port.sh - command: [ - '-c', './kubernetes-participant.sh', - 'kafka', '9092' - ] - policy-clamp-ac-pf-ppnt: - image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-pf-ppnt:${POLICY_CLAMP_PPNT_VERSION} - container_name: policy-clamp-ac-pf-ppnt - depends_on: - - kafka - - api - hostname: policy-clamp-ac-pf-ppnt - ports: - - ${POLICY_PARTICIPANT_PORT}:6969 - volumes: - - ./config/clamp/PolicyParticipantParameters.yaml:/opt/app/policy/clamp/etc/PolicyParticipantParameters.yaml:ro - - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro - - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro - entrypoint: /opt/app/policy/bin/wait_for_port.sh - command: [ - '-c', './policy-participant.sh', - 'kafka', '9092', - 'api', '6969' - ] - policy-clamp-ac-a1pms-ppnt: - image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-a1pms-ppnt:${POLICY_CLAMP_PPNT_VERSION} - container_name: policy-clamp-ac-a1pms-ppnt - depends_on: - - kafka - hostname: policy-clamp-ac-a1pms-ppnt - ports: - - "30296:6969" - volumes: - - ./config/clamp/A1pmsParticipantParameters.yaml:/opt/app/policy/clamp/etc/A1pmsParticipantParameters.yaml:ro - - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro - - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro - entrypoint: /opt/app/policy/bin/wait_for_port.sh - command: [ - '-c', './a1pms-participant.sh', - 'kafka', '9092' - ] - policy-clamp-ac-kserve-ppnt: - image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-kserve-ppnt:${POLICY_CLAMP_PPNT_VERSION} - container_name: policy-clamp-ac-kserve-ppnt - depends_on: - - kafka - hostname: policy-clamp-ac-kserve-ppnt - ports: - - "30297:6969" - volumes: - - ./config/clamp/KserveParticipantParameters.yaml:/opt/app/policy/clamp/etc/KserveParticipantParameters.yaml:ro - - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro - - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro - entrypoint: /opt/app/policy/bin/wait_for_port.sh - command: [ - '-c', './kserve-participant.sh', - 'kafka', '9092' - ] - policy-clamp-ac-sim-ppnt: - image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-sim-ppnt:${POLICY_CLAMP_VERSION} - container_name: policy-clamp-ac-sim-ppnt - depends_on: - - kafka - hostname: policy-clamp-ac-sim-ppnt - ports: - - ${SIM_PARTICIPANT_PORT}:6969 - volumes: - - ./config/clamp/SimulatorParticipantParameters.yaml:/opt/app/policy/clamp/etc/SimulatorParticipantParameters.yaml:ro - - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro - - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro - entrypoint: /opt/app/policy/bin/wait_for_port.sh - command: [ - '-c', './sim-participant.sh', - 'kafka', '9092' - ] - prometheus: - image: nexus3.onap.org:10001/prom/prometheus:latest - container_name: prometheus - hostname: prometheus - ports: - - ${PROMETHEUS_PORT}:9090 - volumes: - - ./metrics/prometheus.yml:/etc/prometheus/prometheus.yml - grafana: - image: nexus3.onap.org:10001/grafana/grafana:latest - container_name: grafana - depends_on: - - prometheus - hostname: grafana - ports: - - ${GRAFANA_PORT}:3000 - volumes: - - ./metrics/dashboard.yaml:/etc/grafana/provisioning/dashboards/dashboard.yaml - - ./metrics/datasource.yaml:/etc/grafana/provisioning/datasources/datasource.yaml - - ./metrics/dashboards:/var/lib/grafana/dashboards - zookeeper: - image: confluentinc/cp-zookeeper:latest - container_name: zookeeper - environment: - ZOOKEEPER_CLIENT_PORT: 2181 - ZOOKEEPER_TICK_TIME: 2000 - ports: - - "2181:2181" +services: + mariadb: + image: nexus3.onap.org:10001/mariadb:${POLICY_MARIADB_VER} + container_name: mariadb + hostname: mariadb + command: [ '--lower-case-table-names=1', '--wait_timeout=28800', '--default-authentication-plugin=mysql_native_password' ] + env_file: ./config/db/db.conf + volumes: + - ./config/db:/docker-entrypoint-initdb.d:ro + - ./config/clamp/policy-clamp-create-tables.sql:/tmp/policy-clamp-create-tables.sql + ports: + - "3306:3306" + policy-db-migrator: + image: ${CONTAINER_LOCATION}onap/policy-db-migrator:${POLICY_DOCKER_VERSION} + container_name: policy-db-migrator + hostname: policy-db-migrator + depends_on: + - mariadb + expose: + - 6824 + env_file: ./config/db/db.conf + environment: + SQL_DB: policyadmin + SQL_HOST: mariadb + volumes: + - ./config/db-migrator/init.sh:/opt/app/policy/bin/db_migrator_policy_init.sh:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', + '/opt/app/policy/bin/db_migrator_policy_init.sh', + 'mariadb', '3306' + ] + policy-db-migrator-clamp: + image: ${CONTAINER_LOCATION}onap/policy-db-migrator:${POLICY_DOCKER_VERSION} + container_name: policy-db-migrator-clamp + hostname: policy-db-migrator-clamp + depends_on: + - mariadb + expose: + - 6824 + env_file: ./config/db/db.conf + environment: + SQL_DB: clampacm + SQL_HOST: mariadb + volumes: + - ./config/db-migrator/init.sh:/opt/app/policy/bin/db_migrator_policy_init.sh:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', + '/opt/app/policy/bin/db_migrator_policy_init.sh', + 'mariadb', '3306' + ] + simulator: + image: ${CONTAINER_LOCATION}onap/policy-models-simulator:${POLICY_MODELS_VERSION} + container_name: simulator + hostname: simulator + networks: + default: + aliases: + - aai-sim + - grpc-sim + - sdnc-sim + - so-sim + - vfc-sim + volumes: + - ./config/sim-all:/opt/app/policy/simulators/etc/mounted:ro + - ./config/sim-all/logback.xml:/opt/app/policy/simulators/etc/mounted/logback.xml:ro + expose: + - 6666 + - 6668 + - 6669 + - 6670 + - 6680 + ports: + - ${SIMULATOR_PORT}:6666 + api: + image: ${CONTAINER_LOCATION}onap/policy-api:${POLICY_API_VERSION} + container_name: policy-api + hostname: policy-api + depends_on: + - policy-db-migrator + ports: + - ${API_PORT}:6969 + volumes: + - ./config/api/apiParameters.yaml:/opt/app/policy/api/etc/apiParameters.yaml:ro + - ./config/api/logback.xml:/opt/app/policy/api/etc/logback.xml:ro + - ./wait_for_port.sh:/opt/app/policy/api/bin/wait_for_port.sh:ro + entrypoint: ./wait_for_port.sh + command: [ + '-c', './policy-api.sh', + 'mariadb', '3306', + 'policy-db-migrator', '6824' + ] + pap: + image: ${CONTAINER_LOCATION}onap/policy-pap:${POLICY_PAP_VERSION} + container_name: policy-pap + hostname: policy-pap + depends_on: + - mariadb + - kafka + - api + ports: + - ${PAP_PORT}:6969 + volumes: + - ./config/pap/papParameters.yaml:/opt/app/policy/pap/etc/papParameters.yaml:ro + - ./config/${PROJECT}/groups.json:/opt/app/policy/pap/etc/mounted/groups.json:ro + - ./config/pap/logback.xml:/opt/app/policy/pap/etc/logback.xml:ro + - ./wait_for_port.sh:/opt/app/policy/pap/bin/wait_for_port.sh:ro + entrypoint: ./wait_for_port.sh + command: [ + '-c', './policy-pap.sh', + 'mariadb', '3306', + 'kafka', '9092', + 'api', '6969' + ] + xacml-pdp: + image: ${CONTAINER_LOCATION}onap/policy-xacml-pdp:${POLICY_XACML_PDP_VERSION} + container_name: policy-xacml-pdp + hostname: policy-xacml-pdp + depends_on: + - mariadb + - kafka + - pap + ports: + - ${XACML_PORT}:6969 + - "30999:3904" + volumes: + - ./config/xacml-pdp/defaultConfig.json:/opt/app/policy/pdpx/etc/defaultConfig.json:ro + - ./config/xacml-pdp/logback.xml:/opt/app/policy/pdpx/etc/logback.xml:ro + - ./wait_for_port.sh:/opt/app/policy/pdpx/bin/wait_for_port.sh:ro + entrypoint: ./wait_for_port.sh + command: [ + '-c', './policy-pdpx.sh', + 'mariadb', '3306', + 'kafka', '9092', + 'pap', '6969' + ] + drools-pdp: + image: ${CONTAINER_LOCATION}onap/policy-drools:${POLICY_DROOLS_PDP_VERSION} + container_name: policy-drools-pdp + hostname: policy-drools-pdp + depends_on: + - mariadb + - kafka + - pap + ports: + - ${DROOLS_PORT}:6969 + - ${DROOLS_TELEMETRY_PORT}:9696 + volumes: + - ./config/drools-pdp/custom:/tmp/policy-install/config:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + env_file: + - ./config/drools-pdp/env/base.conf + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', '/opt/app/policy/bin/pdpd-entrypoint.sh boot', + 'mariadb', '3306', + 'kafka', '9092' + ] + drools-applications: + image: ${CONTAINER_LOCATION}onap/policy-pdpd-cl:${POLICY_DROOLS_APPS_VERSION} + container_name: policy-drools-apps + hostname: policy-drools-apps + depends_on: + - mariadb + - simulator + - kafka + - pap + - xacml-pdp + ports: + - ${DROOLS_APPS_PORT}:6969 + - ${DROOLS_APPS_TELEMETRY_PORT}:9696 + volumes: + - ./config/drools-applications/custom:/tmp/policy-install/config:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + env_file: + - ./config/drools-applications/env/base.conf + - ./config/drools-applications/env/feature-healthcheck.conf + - ./config/drools-applications/env/feature-pooling-messages.conf + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', '/opt/app/policy/bin/pdpd-cl-entrypoint.sh boot', + 'mariadb', '3306', + 'kafka', '9092', + 'pap', '6969', + 'aai-sim', '6666', + 'sdnc-sim', '6668', + 'so-sim', '6669', + 'vfc-sim', '6670' + ] + apex-pdp: + image: ${CONTAINER_LOCATION}onap/policy-apex-pdp:${POLICY_APEX_PDP_VERSION} + container_name: policy-apex-pdp + hostname: policy-apex-pdp + depends_on: + - mariadb + - simulator + - kafka + - pap + ports: + - ${APEX_PORT}:6969 + - ${APEX_EVENTS_PORT}:23324 + volumes: + - ./config/apex-pdp/OnapPfConfig.json:/opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json:ro + - ./config/apex-pdp/logback.xml:/opt/app/policy/apex-pdp/etc/logback.xml:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', '/opt/app/policy/apex-pdp/bin/apexOnapPf.sh -c /opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json', + 'mariadb', '3306', + 'kafka', '9092', + 'pap', '6969' + ] + distribution: + image: ${CONTAINER_LOCATION}onap/policy-distribution:${POLICY_DISTRIBUTION_VERSION} + container_name: policy-distribution + hostname: policy-distribution + depends_on: + - mariadb + - api + - pap + - apex-pdp + ports: + - ${DIST_PORT}:6969 + volumes: + - ./config/distribution/defaultConfig.json:/opt/app/policy/distribution/etc/defaultConfig.json:ro + - /tmp/distribution/:/opt/app/policy/distribution/etc/temp/:ro + - ./config/distribution/logback.xml:/opt/app/policy/distribution/etc/logback.xml:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', './policy-dist.sh', + 'mariadb', '3306', + 'kafka', '9092', + 'pap', '6969', + 'apex-pdp', '6969' + ] + policy-clamp-runtime-acm: + image: ${CONTAINER_LOCATION}onap/policy-clamp-runtime-acm:${POLICY_CLAMP_VERSION} + container_name: policy-clamp-runtime-acm + hostname: policy-clamp-runtime-acm + depends_on: + - policy-db-migrator-clamp + - kafka + - policy-clamp-ac-http-ppnt + - policy-clamp-ac-k8s-ppnt + - policy-clamp-ac-pf-ppnt + - policy-clamp-ac-sim-ppnt + - apex-pdp + ports: + - ${ACM_PORT}:6969 + volumes: + - ./config/clamp/AcRuntimeParameters.yaml:/opt/app/policy/clamp/etc/AcRuntimeParameters.yaml + - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', './acm-runtime.sh', + 'mariadb', '3306', + 'kafka', '9092', + 'policy-clamp-ac-http-ppnt', '6969', + 'policy-clamp-ac-k8s-ppnt', '6969', + 'policy-clamp-ac-pf-ppnt', '6969', + 'apex-pdp', '6969' + ] - kafka: - image: confluentinc/cp-kafka:latest - container_name: kafka - depends_on: - - zookeeper - ports: - - "29092:29092" - - "9092:9092" - environment: - KAFKA_BROKER_ID: 1 - KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 - KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092 - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT - KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
\ No newline at end of file + policy-clamp-ac-http-ppnt: + image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-http-ppnt:${POLICY_CLAMP_PPNT_VERSION} + container_name: policy-clamp-ac-http-ppnt + hostname: policy-clamp-ac-http-ppnt + depends_on: + - kafka + ports: + - "30290:6969" + volumes: + - ./config/clamp/HttpParticipantParameters.yaml:/opt/app/policy/clamp/etc/HttpParticipantParameters.yaml + - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', './http-participant.sh', + 'kafka', '9092' + ] + policy-clamp-ac-k8s-ppnt: + image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-k8s-ppnt:${POLICY_CLAMP_PPNT_VERSION} + container_name: policy-clamp-ac-k8s-ppnt + hostname: policy-clamp-ac-k8s-ppnt + depends_on: + - kafka + ports: + - "30295:6969" + volumes: + - ./config/clamp/KubernetesParticipantParameters.yaml:/opt/app/policy/clamp/etc/KubernetesParticipantParameters.yaml + - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', './kubernetes-participant.sh', + 'kafka', '9092' + ] + policy-clamp-ac-pf-ppnt: + image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-pf-ppnt:${POLICY_CLAMP_PPNT_VERSION} + container_name: policy-clamp-ac-pf-ppnt + hostname: policy-clamp-ac-pf-ppnt + depends_on: + - kafka + - api + ports: + - ${POLICY_PARTICIPANT_PORT}:6969 + volumes: + - ./config/clamp/PolicyParticipantParameters.yaml:/opt/app/policy/clamp/etc/PolicyParticipantParameters.yaml:ro + - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', './policy-participant.sh', + 'kafka', '9092', + 'api', '6969' + ] + policy-clamp-ac-a1pms-ppnt: + image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-a1pms-ppnt:${POLICY_CLAMP_PPNT_VERSION} + container_name: policy-clamp-ac-a1pms-ppnt + hostname: policy-clamp-ac-a1pms-ppnt + depends_on: + - kafka + ports: + - "30296:6969" + volumes: + - ./config/clamp/A1pmsParticipantParameters.yaml:/opt/app/policy/clamp/etc/A1pmsParticipantParameters.yaml:ro + - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', './a1pms-participant.sh', + 'kafka', '9092' + ] + policy-clamp-ac-kserve-ppnt: + image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-kserve-ppnt:${POLICY_CLAMP_PPNT_VERSION} + container_name: policy-clamp-ac-kserve-ppnt + hostname: policy-clamp-ac-kserve-ppnt + depends_on: + - kafka + ports: + - "30297:6969" + volumes: + - ./config/clamp/KserveParticipantParameters.yaml:/opt/app/policy/clamp/etc/KserveParticipantParameters.yaml:ro + - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', './kserve-participant.sh', + 'kafka', '9092' + ] + policy-clamp-ac-sim-ppnt: + image: ${CONTAINER_LOCATION}onap/policy-clamp-ac-sim-ppnt:${POLICY_CLAMP_VERSION} + container_name: policy-clamp-ac-sim-ppnt + hostname: policy-clamp-ac-sim-ppnt + depends_on: + - kafka + ports: + - ${SIM_PARTICIPANT_PORT}:6969 + volumes: + - ./config/clamp/SimulatorParticipantParameters.yaml:/opt/app/policy/clamp/etc/SimulatorParticipantParameters.yaml:ro + - ./config/clamp/logback.xml:/opt/app/policy/clamp/etc/logback.xml:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', './sim-participant.sh', + 'kafka', '9092' + ] + prometheus: + image: nexus3.onap.org:10001/prom/prometheus:latest + container_name: prometheus + hostname: prometheus + ports: + - ${PROMETHEUS_PORT}:9090 + volumes: + - ./metrics/prometheus.yml:/etc/prometheus/prometheus.yml + grafana: + image: nexus3.onap.org:10001/grafana/grafana:latest + container_name: grafana + hostname: grafana + depends_on: + - prometheus + ports: + - ${GRAFANA_PORT}:3000 + volumes: + - ./metrics/dashboard.yaml:/etc/grafana/provisioning/dashboards/dashboard.yaml + - ./metrics/datasource.yaml:/etc/grafana/provisioning/datasources/datasource.yaml + - ./metrics/dashboards:/var/lib/grafana/dashboards + zookeeper: + image: confluentinc/cp-zookeeper:latest + container_name: zookeeper + hostname: zookeeper + ports: + - "2181:2181" + environment: + ZOOKEEPER_CLIENT_PORT: 2181 + kafka: + image: confluentinc/cp-kafka:latest + container_name: kafka + hostname: kafka + depends_on: + - zookeeper + ports: + - 9092:9092 + - 29092:29092 + environment: + KAFKA_BROKER_ID: 1 + KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181" + KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT + KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092 + KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT + KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 + KAFKA_ADVERTISED_HOST_NAME: kafka + csit-tests: + image: policy-csit-robot:latest + container_name: policy-csit + hostname: policy-csit + volumes: + - ${ROBOT_LOG_DIR}:/tmp/results + - /tmp/distribution:/tmp/distribution + environment: + ROBOT_FILE: ${ROBOT_FILES} + CLAMP_K8S_TEST: false diff --git a/compose/start-compose.sh b/compose/start-compose.sh index 49006f11..a5da09d8 100755 --- a/compose/start-compose.sh +++ b/compose/start-compose.sh @@ -1,7 +1,7 @@ #!/bin/bash # # ============LICENSE_START==================================================== -# Copyright (C) 2022-2023 Nordix Foundation. +# Copyright (C) 2022-2024 Nordix Foundation. # ============================================================================= # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -50,7 +50,6 @@ do break; ;; *) - echo "$1" component="$1" shift ;; @@ -68,32 +67,37 @@ if [ -z "$PROJECT" ]; then export PROJECT=$component fi +# docker compose fails when not running CSIT +if [ -z "$ROBOT_LOG_DIR" ]; then + export ROBOT_LOG_DIR=/tmp/ +fi + if [ -n "$component" ]; then if [ "$component" == "logs" ]; then echo "Collecting logs..." - docker-compose logs > docker-compose.log + docker compose logs > docker-compose.log elif [ "$grafana" = true ]; then echo "Starting ${component} application with Grafana" - docker-compose up -d "${component}" grafana + docker compose up -d "${component}" grafana echo "Prometheus server: http://localhost:${PROMETHEUS_PORT}" echo "Grafana server: http://localhost:${GRAFANA_PORT}" elif [ "$gui" = true ]; then echo "Starting application with gui..." - docker-compose -f docker-compose.yml -f docker-compose.gui.yml up -d "${component}" policy-gui + docker compose -f docker-compose.yml -f docker-compose.gui.yml up -d "${component}" policy-gui echo "Clamp GUI: https://localhost:2445/clamp" else echo "Starting ${component} application" - docker-compose up -d "${component}" + docker compose up -d "${component}" fi else export PROJECT=api # api has groups.json complete with all 3 pdps if [ "$gui" = true ]; then echo "Starting application with gui..." - docker-compose -f docker-compose.yml -f docker-compose.gui.yml up -d + docker compose -f docker-compose.yml -f docker-compose.gui.yml up -d echo "Clamp GUI: https://localhost:2445/clamp" else echo "Starting all components..." - docker-compose up -d + docker compose up -d fi fi diff --git a/compose/stop-compose.sh b/compose/stop-compose.sh index 0a7d9af4..013fbe1e 100755 --- a/compose/stop-compose.sh +++ b/compose/stop-compose.sh @@ -1,7 +1,7 @@ #!/bin/bash # # ============LICENSE_START==================================================== -# Copyright (C) 2023 Nordix Foundation. +# Copyright (C) 2023-2024 Nordix Foundation. # ============================================================================= # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -23,6 +23,14 @@ if [ -z "${WORKSPACE}" ]; then WORKSPACE=$(git rev-parse --show-toplevel) export WORKSPACE fi + +# docker compose fails when not running CSIT +if [ -z "$ROBOT_LOG_DIR" ]; then + export ROBOT_LOG_DIR=/tmp/ + export ROBOT_FILES=none + export PROJECT=api +fi + COMPOSE_FOLDER="${WORKSPACE}"/compose cd ${COMPOSE_FOLDER} @@ -31,10 +39,24 @@ source export-ports.sh > /dev/null 2>&1 source get-versions.sh > /dev/null 2>&1 echo "Collecting logs from docker compose containers..." -docker-compose logs > docker_compose.log +rm -rf docker_compose.log + +# this will collect logs by service instead of mixing all together +containers=$(docker compose ps --all --format '{{.Service}}') + +IFS=$'\n' read -d '' -r -a item_list <<< "$containers" +for item in "${item_list[@]}" +do + if [ -n "$item" ]; then + echo "======== Logs from ${item} ========" >> docker_compose.log + docker compose logs $item >> docker_compose.log + echo "===================================" >> docker_compose.log + fi +done + cat docker_compose.log echo "Tearing down containers..." -docker-compose down -v --remove-orphans +docker compose down -v --remove-orphans cd ${WORKSPACE} diff --git a/csit/resources/Dockerfile b/csit/resources/Dockerfile index 9a43663a..786293d3 100644 --- a/csit/resources/Dockerfile +++ b/csit/resources/Dockerfile @@ -1,12 +1,12 @@ FROM nexus3.onap.org:10001/library/python:3.10-slim-bullseye ARG CSIT_SCRIPT=${CSIT_SCRIPT} ARG ROBOT_FILE=${ROBOT_FILE} -ENV ROBOT_WORKSPACE=/opt/robotworkspace ROBOT_FILE=$ROBOT_FILE -RUN python3 -m pip install --upgrade pip && \ - python3 -m pip install --upgrade --extra-index-url="https://nexus3.onap.org/repository/PyPi.staging/simple" 'robotframework-onap==0.6.0.*' --pre && \ - python3 -m pip install --upgrade confluent-kafka && \ +ENV ROBOT_WORKSPACE=/opt/robotworkspace ROBOT_FILE=$ROBOT_FILE CLAMP_K8S_TEST=$CLAMP_K8S_TEST +RUN python3 -m pip -qq install --upgrade pip && \ + python3 -m pip -qq install --upgrade --extra-index-url="https://nexus3.onap.org/repository/PyPi.staging/simple" 'robotframework-onap==0.6.0.*' --pre && \ + python3 -m pip -qq install --upgrade confluent-kafka && \ python3 -m pip freeze RUN mkdir -p ${ROBOT_WORKSPACE} -COPY ${CSIT_SCRIPT} tests/ ${ROBOT_WORKSPACE}/ +COPY scripts/run-test.sh tests/ ${ROBOT_WORKSPACE}/ WORKDIR ${ROBOT_WORKSPACE} -CMD ["sh", "-c", "./run-test.sh" , "${ROBOT_FILE}"] +CMD ["sh", "-c", "./run-test.sh" ] diff --git a/csit/resources/scripts/build-csit-docker-image.sh b/csit/resources/scripts/build-csit-docker-image.sh new file mode 100755 index 00000000..d4686422 --- /dev/null +++ b/csit/resources/scripts/build-csit-docker-image.sh @@ -0,0 +1,53 @@ +#!/bin/bash -x +# +# Copyright 2024 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. + +function clone_models() { + # download models examples + git clone -b "${GERRIT_BRANCH}" --single-branch https://github.com/onap/policy-models.git "${WORKSPACE}"/csit/resources/tests/models + + # create a couple of variations of the policy definitions + sed -e 's!Measurement_vGMUX!ADifferentValue!' \ + tests/models/models-examples/src/main/resources/policies/vCPE.policy.monitoring.input.tosca.json \ + >tests/models/models-examples/src/main/resources/policies/vCPE.policy.monitoring.input.tosca.v1_2.json + + sed -e 's!"version": "1.0.0"!"version": "2.0.0"!' \ + -e 's!"policy-version": 1!"policy-version": 2!' \ + tests/models/models-examples/src/main/resources/policies/vCPE.policy.monitoring.input.tosca.json \ + >tests/models/models-examples/src/main/resources/policies/vCPE.policy.monitoring.input.tosca.v2.json +} + +if [ -z "${WORKSPACE}" ]; then + WORKSPACE=$(git rev-parse --show-toplevel) + export WORKSPACE +fi + +GERRIT_BRANCH=$(awk -F= '$1 == "defaultbranch" { print $2 }' "${WORKSPACE}"/.gitreview) +export ROBOT_DOCKER_IMAGE="policy-csit-robot" + +echo "Build docker image for robot framework" +cd ${WORKSPACE}/csit/resources || exit + +docker image rm -f ${ROBOT_DOCKER_IMAGE} + +# get models +clone_models + +echo "Build robot framework docker image" +docker build . --file Dockerfile --tag "${ROBOT_DOCKER_IMAGE}" --no-cache +docker save -o policy-csit-robot.tar ${ROBOT_DOCKER_IMAGE}:latest + +rm -rf ${WORKSPACE}/csit/resources/policy-csit-robot.tar +rm -rf ${WORKSPACE}/csit/resources/tests/models/ diff --git a/csit/resources/scripts/prepare-robot-env.sh b/csit/resources/scripts/prepare-robot-env.sh deleted file mode 100755 index 2b773802..00000000 --- a/csit/resources/scripts/prepare-robot-env.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/bash -x -# -# Copyright 2019 © Samsung Electronics Co., Ltd. -# Modification Copyright 2021 © AT&T Intellectual Property. -# Modification Copyright 2021-2023 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. -# -# This script installs common libraries required by CSIT tests -# - -if [ -z "$WORKSPACE" ]; then - WORKSPACE=$(git rev-parse --show-toplevel) - export WORKSPACE -fi - -ROBOT_VENV=$(mktemp -d) -echo "ROBOT_VENV=${ROBOT_VENV}" >> "${WORKSPACE}/env.properties" - -echo "Python version is: $(python3 --version)" - -python3 -m venv --clear "${ROBOT_VENV}" -source "${ROBOT_VENV}/bin/activate" > /dev/null - -set -exu - -python3 -m pip install -qq --upgrade "pip<=23.0" "setuptools<=66.1.1" -echo "Installing Python Requirements" -python3 -m pip install -qq -r "${SCRIPTS}"/pylibs.txt -python3 -m pip -qq freeze - -# install eteutils -mkdir -p "${ROBOT_VENV}"/src/onap -rm -rf "${ROBOT_VENV}"/src/onap/testsuite -python3 -m pip install -qq --upgrade --extra-index-url="https://nexus3.onap.org/repository/PyPi.staging/simple" 'robotframework-onap==0.6.0.*' --pre - -# install confluent-kafka -echo "Installing python confluent-kafka library" -python3 -m pip install -qq confluent-kafka - -echo "Uninstall docker-py and reinstall docker." -python3 -m pip uninstall -y -qq docker -python3 -m pip install -U -qq docker - -python3 -m pip -qq freeze - -if (uname | grep -q 'Linux') -then - sudo apt-get -y -qq install libxml2-utils -fi diff --git a/csit/resources/scripts/pylibs.txt b/csit/resources/scripts/pylibs.txt deleted file mode 100644 index a9b4e498..00000000 --- a/csit/resources/scripts/pylibs.txt +++ /dev/null @@ -1,25 +0,0 @@ -ipaddr==2.2.0 -netaddr==0.8.0 -netifaces==0.11.0 -pyhocon==0.3.60 -requests==2.27.1 -robotframework-httplibrary==0.4.2 -robotframework-requests==0.9.4 -robotframework-selenium2library==3.0.0 -robotframework-sshlibrary==3.8.0 -scapy==2.5.0 -# Module jsonpath is needed by current AAA idmlite suite. -jsonpath-rw==1.4.0 -# Modules for longevity framework robot library -elasticsearch==7.17.9 -elasticsearch-dsl==7.4.1 -# Module for pyangbind used by lispflowmapping project -pyangbind==0.8.1 -# Module for iso8601 datetime format -isodate==0.6.1 -# Module for TemplatedRequests.robot library -jmespath==0.10.0 -# Module for backup-restore support library -jsonpatch==1.32 -# odltools for extra debugging -odltools==0.1.28 diff --git a/csit/resources/scripts/run-test.sh b/csit/resources/scripts/run-test.sh index 90dec572..9b01d352 100755 --- a/csit/resources/scripts/run-test.sh +++ b/csit/resources/scripts/run-test.sh @@ -18,40 +18,62 @@ # SPDX-License-Identifier: Apache-2.0 # ============LICENSE_END====================================================== - -ROBOT_FILE=$1 -echo "Invoking the robot tests from: $1" +echo "Invoking the robot tests from: ${ROBOT_FILE}" DEFAULT_PORT=6969 DATA=/opt/robotworkspace/models/models-examples/src/main/resources/policies NODETEMPLATES=/opt/robotworkspace/models/models-examples/src/main/resources/nodetemplates +CLAMP_K8S_TEST=${K8S_TEST} -POLICY_RUNTIME_ACM_IP=policy-clamp-runtime-acm:${DEFAULT_PORT} -POLICY_PARTICIPANT_SIM_IP=policy-clamp-ac-sim-ppnt:${DEFAULT_PORT} POLICY_API_IP=policy-api:${DEFAULT_PORT} + POLICY_PAP_IP=policy-pap:${DEFAULT_PORT} + APEX_IP=policy-apex-pdp:${DEFAULT_PORT} +APEX_EVENTS_IP=policy-apex-pdp:23324 + POLICY_PDPX_IP=policy-xacml-pdp:${DEFAULT_PORT} + POLICY_DROOLS_IP=policy-drools-pdp:9696 -DISTRIBUTION_IP=policy-distribution:6969 +DROOLS_IP_1=policy-drools-apps:${DEFAULT_PORT} +DROOLS_IP_2=policy-drools-apps:9696 + +DISTRIBUTION_IP=policy-distribution:${DEFAULT_PORT} + +POLICY_RUNTIME_ACM_IP=policy-clamp-runtime-acm:${DEFAULT_PORT} +POLICY_PARTICIPANT_SIM_IP=policy-clamp-ac-sim-ppnt:${DEFAULT_PORT} + KAFKA_IP=kafka:9092 -APEX_EVENTS_IP=policy-apex-pdp:23324 PROMETHEUS_IP=prometheus:9090 -CLAMP_K8S_TEST=true DIST_TEMP_FOLDER=/tmp/distribution -export ROBOT_VARIABLES= -ROBOT_VARIABLES="-v DATA:$DATA -v NODETEMPLATES:$NODETEMPLATES -v POLICY_API_IP:$POLICY_API_IP --v POLICY_RUNTIME_ACM_IP:$POLICY_RUNTIME_ACM_IP -v POLICY_PARTICIPANT_SIM_IP:$POLICY_PARTICIPANT_SIM_IP --v POLICY_PAP_IP:$POLICY_PAP_IP -v APEX_IP:$APEX_IP --v APEX_EVENTS_IP:$APEX_EVENTS_IP -v KAFKA_IP:$KAFKA_IP -v PROMETHEUS_IP:${PROMETHEUS_IP} --v POLICY_PDPX_IP:$POLICY_PDPX_IP -v POLICY_DROOLS_IP:$POLICY_DROOLS_IP -v TEMP_FOLDER:${DIST_TEMP_FOLDER} --v DISTRIBUTION_IP:$DISTRIBUTION_IP -v CLAMP_K8S_TEST:$CLAMP_K8S_TEST" +ROBOT_VARIABLES="-v DATA:${DATA} +-v NODETEMPLATES:${NODETEMPLATES} +-v POLICY_API_IP:${POLICY_API_IP} +-v POLICY_RUNTIME_ACM_IP:${POLICY_RUNTIME_ACM_IP} +-v POLICY_PARTICIPANT_SIM_IP:$POLICY_PARTICIPANT_SIM_IP +-v POLICY_PAP_IP:${POLICY_PAP_IP} +-v APEX_IP:${APEX_IP} +-v APEX_EVENTS_IP:${APEX_EVENTS_IP} +-v KAFKA_IP:${KAFKA_IP} +-v PROMETHEUS_IP:${PROMETHEUS_IP} +-v POLICY_PDPX_IP:${POLICY_PDPX_IP} +-v POLICY_DROOLS_IP:${POLICY_DROOLS_IP} +-v DROOLS_IP:${DROOLS_IP_1} +-v DROOLS_IP_2:${DROOLS_IP_2} +-v TEMP_FOLDER:${DIST_TEMP_FOLDER} +-v DISTRIBUTION_IP:${DISTRIBUTION_IP} +-v CLAMP_K8S_TEST:${CLAMP_K8S_TEST}" + +export ROBOT_VARIABLES echo "Run Robot test" echo ROBOT_VARIABLES="${ROBOT_VARIABLES}" echo "Starting Robot test suites ..." -python3 -m robot.run -d /tmp/ $ROBOT_VARIABLES $1 +mkdir -p /tmp/results/ +python3 -m robot.run -d /tmp/results/ ${ROBOT_VARIABLES} ${ROBOT_FILE} RESULT=$? echo "RESULT: ${RESULT}" + +exit $RESULT diff --git a/csit/resources/scripts/setup-apex-pdp-large.sh b/csit/resources/scripts/setup-apex-pdp-large.sh deleted file mode 100644 index aeb44567..00000000 --- a/csit/resources/scripts/setup-apex-pdp-large.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/bash -# -# ===========LICENSE_START==================================================== -# Copyright (C) 2023 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. -# ============LICENSE_END===================================================== -# - -export PROJECT="apex-pdp" -export KAFKA_IP="localhost:${KAFKA_PORT}" -source "${SCRIPTS}"/node-templates.sh - -source "${WORKSPACE}"/compose/start-multiple-pdp.sh 10 - -sleep 10 -unset http_proxy https_proxy - -# wait for the app to start up -bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT} -bash "${SCRIPTS}"/wait_for_rest.sh localhost ${APEX_PORT} - -sleep 20 - -healthy=false - -while [ $healthy = false ] -do - msg=`curl -s -k --user 'policyadmin:zb!XztG34' http://localhost:${APEX_PORT}/policy/apex-pdp/v1/healthcheck` - echo "${msg}" | grep -q true - if [ "${?}" -eq 0 ] - then - healthy=true - break - fi - sleep 10s -done - -export SUITES="apex-slas-10.robot" - -ROBOT_VARIABLES="-v POLICY_PAP_IP:localhost:${PAP_PORT} -v POLICY_API_IP:localhost:${API_PORT} --v PROMETHEUS_IP:localhost:${PROMETHEUS_PORT} -v DATA:${DATA} -v NODETEMPLATES:${NODETEMPLATES} --v APEX_IP:localhost:${APEX_PORT} -v APEX_EVENTS_IP:localhost:${APEX_PORT -v KAFKA_IP:${KAFKA_IP}}" diff --git a/csit/resources/scripts/setup-apex-pdp-medium.sh b/csit/resources/scripts/setup-apex-pdp-medium.sh deleted file mode 100644 index 5d1dbb2c..00000000 --- a/csit/resources/scripts/setup-apex-pdp-medium.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/bash -# -# ===========LICENSE_START==================================================== -# Copyright (C) 2023 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. -# ============LICENSE_END===================================================== -# - -export PROJECT="apex-pdp" -export KAFKA_IP="localhost:${KAFKA_PORT}" -source "${SCRIPTS}"/node-templates.sh - -source "${WORKSPACE}"/compose/start-multiple-pdp.sh 3 - -sleep 10 -unset http_proxy https_proxy - -# wait for the app to start up -bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT} -bash "${SCRIPTS}"/wait_for_rest.sh localhost ${APEX_PORT} - -sleep 20 - -healthy=false - -while [ $healthy = false ] -do - msg=`curl -s -k --user 'policyadmin:zb!XztG34' http://localhost:${APEX_PORT}/policy/apex-pdp/v1/healthcheck` - echo "${msg}" | grep -q true - if [ "${?}" -eq 0 ] - then - healthy=true - break - fi - sleep 10s -done - -export SUITES="apex-slas-3.robot" - -ROBOT_VARIABLES="-v POLICY_PAP_IP:localhost:${PAP_PORT} -v POLICY_API_IP:localhost:${API_PORT} --v PROMETHEUS_IP:localhost:${PROMETHEUS_PORT} -v DATA:${DATA} -v NODETEMPLATES:${NODETEMPLATES} --v APEX_IP:localhost:${APEX_PORT} -v APEX_EVENTS_IP:localhost:${APEX_PORT} -v KAFKA_IP:${KAFKA_IP}" diff --git a/csit/resources/scripts/setup-apex-pdp-postgres.sh b/csit/resources/scripts/setup-apex-pdp-postgres.sh deleted file mode 100755 index 150ec8f6..00000000 --- a/csit/resources/scripts/setup-apex-pdp-postgres.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/bash -# ============LICENSE_START======================================================= -# Copyright (C) 2023 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========================================================= - -source "${SCRIPTS}"/node-templates.sh - -source "${WORKSPACE}"/compose/start-postgres-tests.sh 1 - -sleep 10 -unset http_proxy https_proxy - -# wait for the app to start up -bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT} -bash "${SCRIPTS}"/wait_for_rest.sh localhost ${APEX_PORT} - -sleep 20 - -healthy=false - -while [ $healthy = false ] -do - msg=`curl -s -k --user 'policyadmin:zb!XztG34' http://localhost:${APEX_PORT}/policy/apex-pdp/v1/healthcheck` - echo "${msg}" | grep -q true - if [ "${?}" -eq 0 ] - then - healthy=true - break - fi - sleep 10s -done - -export KAFKA_IP="localhost:${KAFKA_PORT}" -export SUITES="apex-pdp-test.robot" - -ROBOT_VARIABLES="-v POLICY_PAP_IP:localhost:${PAP_PORT} -v POLICY_API_IP:localhost:${API_PORT} --v PROMETHEUS_IP:localhost:${PROMETHEUS_PORT} -v DATA:${DATA} -v NODETEMPLATES:${NODETEMPLATES} --v APEX_IP:localhost:${APEX_PORT} -v KAFKA_IP:${KAFKA_IP} --v APEX_EVENTS_IP:localhost:${APEX_EVENTS_PORT}" diff --git a/csit/resources/scripts/setup-apex-pdp.sh b/csit/resources/scripts/setup-apex-pdp.sh deleted file mode 100755 index 1f04fc85..00000000 --- a/csit/resources/scripts/setup-apex-pdp.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -# ============LICENSE_START======================================================= -# Copyright (C) 2018 Ericsson. All rights reserved. -# -# Modifications Copyright (c) 2019-2024 Nordix Foundation. -# Modifications Copyright (C) 2020-2021 AT&T Intellectual Property. -# Modifications Copyright (C) 2021 Bell Canada. All rights reserved. -# ================================================================================ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 -# ============LICENSE_END========================================================= - -source "${SCRIPTS}"/setup-pap.sh - -# wait for the app to start up -bash "${SCRIPTS}"/wait_for_rest.sh localhost ${APEX_PORT} - -export KAFKA_IP="localhost:${KAFKA_PORT}" -export SUITES="apex-pdp-test.robot -apex-slas.robot" - -ROBOT_VARIABLES="${ROBOT_VARIABLES} -v APEX_IP:localhost:${APEX_PORT} -v KAFKA_IP:${KAFKA_IP} --v APEX_EVENTS_IP:localhost:${APEX_EVENTS_PORT}" diff --git a/csit/resources/scripts/setup-api.sh b/csit/resources/scripts/setup-api.sh deleted file mode 100755 index 5a5cad20..00000000 --- a/csit/resources/scripts/setup-api.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -# ============LICENSE_START======================================================= -# Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved. -# Modifications Copyright 2021-2023 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========================================================= - -source "${SCRIPTS}"/node-templates.sh - -source "${WORKSPACE}"/compose/start-compose.sh api --grafana - -sleep 10 -unset http_proxy https_proxy - -# wait for the app to start up -bash "${SCRIPTS}"/wait_for_rest.sh localhost ${API_PORT} - -export SUITES="api-test.robot -api-slas.robot" - -ROBOT_VARIABLES="-v POLICY_API_IP:localhost:${API_PORT} -v PROMETHEUS_IP:localhost:${PROMETHEUS_PORT} --v DATA:${DATA} -v NODETEMPLATES:${NODETEMPLATES}" diff --git a/csit/resources/scripts/setup-clamp.sh b/csit/resources/scripts/setup-clamp.sh deleted file mode 100755 index ba4467b9..00000000 --- a/csit/resources/scripts/setup-clamp.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -# ============LICENSE_START======================================================= -# Copyright (C) 2021-2024 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========================================================= - -source "${WORKSPACE}"/compose/start-compose.sh policy-clamp-runtime-acm - -sleep 10 -unset http_proxy https_proxy - -# wait for the app to start up -"${SCRIPTS}"/wait_for_rest.sh localhost "${ACM_PORT}" - -CLAMP_K8S_TEST=false - -export SUITES="policy-clamp-test.robot" - -ROBOT_VARIABLES="-v POLICY_RUNTIME_ACM_IP:localhost:${ACM_PORT} --v POLICY_PARTICIPANT_SIM_IP:localhost:${SIM_PARTICIPANT_PORT} --v POLICY_API_IP:localhost:${API_PORT} -v POLICY_PAP_IP:localhost:${PAP_PORT} -v CLAMP_K8S_TEST:$CLAMP_K8S_TEST" - - diff --git a/csit/resources/scripts/setup-distribution.sh b/csit/resources/scripts/setup-distribution.sh deleted file mode 100755 index 3840d9d7..00000000 --- a/csit/resources/scripts/setup-distribution.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash -# ============LICENSE_START======================================================= -# Copyright (C) 2018 Ericsson. All rights reserved. -# Modifications Copyright (c) 2019-2023 Nordix Foundation. -# Modifications Copyright (C) 2020-2021 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========================================================= - -# Remaking the csar file in case if the file got corrupted -DIST_TEMP_FOLDER=/tmp/distribution - -zip -F "${TEST_PLAN_DIR}"/data/csar/sample_csar_with_apex_policy.csar \ - --out "${TEST_PLAN_DIR}"/data/csar/csar_temp.csar - -# Remake temp directory -rm -rf "${DIST_TEMP_FOLDER}" -mkdir "${DIST_TEMP_FOLDER}" - -source "${WORKSPACE}"/compose/start-compose.sh distribution - -sleep 10 -unset http_proxy https_proxy - -# wait for the app to start up -"${SCRIPTS}"/wait_for_rest.sh localhost "${DIST_PORT}" - -export SUITES="distribution-test.robot" - -ROBOT_VARIABLES="-v APEX_EVENTS_IP:localhost:${APEX_EVENTS_PORT} --v DISTRIBUTION_IP:localhost:${DIST_PORT} -v TEMP_FOLDER:${DIST_TEMP_FOLDER}" diff --git a/csit/resources/scripts/setup-drools-applications.sh b/csit/resources/scripts/setup-drools-applications.sh deleted file mode 100755 index bfb3f67d..00000000 --- a/csit/resources/scripts/setup-drools-applications.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash -# -# ===========LICENSE_START==================================================== -# Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved. -# Modifications Copyright 2021-2024 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. -# ============LICENSE_END===================================================== -# - -source "${SCRIPTS}"/node-templates.sh - -source "${WORKSPACE}"/compose/start-compose.sh drools-applications - -sleep 10 -unset http_proxy https_proxy - -export SUITES="drools-applications-test.robot" -export KAFKA_IP="localhost:${KAFKA_PORT}" - -# wait for the app to start up -"${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT} -"${SCRIPTS}"/wait_for_rest.sh localhost ${DROOLS_APPS_PORT} -"${SCRIPTS}"/wait_for_rest.sh localhost ${DROOLS_APPS_TELEMETRY_PORT} - -# give enough time for the controllers to come up -sleep 15 - -ROBOT_VARIABLES="-v DATA:${DATA} -v DROOLS_IP:localhost:${DROOLS_APPS_PORT} --v DROOLS_IP_2:localhost:${DROOLS_APPS_TELEMETRY_PORT} -v POLICY_API_IP:localhost:${API_PORT} --v POLICY_PAP_IP:localhost:${PAP_PORT} -v KAFKA_IP:${KAFKA_IP}" diff --git a/csit/resources/scripts/setup-drools-pdp.sh b/csit/resources/scripts/setup-drools-pdp.sh deleted file mode 100755 index fadc0956..00000000 --- a/csit/resources/scripts/setup-drools-pdp.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -# ============LICENSE_START======================================================= -# Copyright 2017-2021 AT&T Intellectual Property. All rights reserved. -# Modifications Copyright 2021-2023 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========================================================= - -source "${WORKSPACE}"/compose/start-compose.sh drools-pdp - -sleep 10 -unset http_proxy https_proxy - -export SUITES="drools-pdp-test.robot" - -# wait for the app to start up - looking for telemetry service on port ${DROOLS_PORT} forwarded from 9696 -"${SCRIPTS}"/wait_for_rest.sh localhost ${DROOLS_TELEMETRY_PORT} - -# give enough time for the controllers to come up -sleep 15 - -ROBOT_VARIABLES="${ROBOT_VARIABLES} -v POLICY_DROOLS_IP:localhost:${DROOLS_TELEMETRY_PORT}" diff --git a/csit/resources/scripts/setup-pap.sh b/csit/resources/scripts/setup-pap.sh deleted file mode 100755 index 741f0644..00000000 --- a/csit/resources/scripts/setup-pap.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -# ============LICENSE_START======================================================= -# Copyright (C) 2019-2022 Nordix Foundation. -# Modifications Copyright (C) 2019-2021 AT&T Intellectual Property. -# Modifications Copyright (C) 2022-2023 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========================================================= - -source "${SCRIPTS}"/node-templates.sh - -source "${WORKSPACE}"/compose/start-compose.sh apex-pdp --grafana - -sleep 10 -unset http_proxy https_proxy - -# wait for the app to start up -bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT} - -export SUITES="pap-test.robot -pap-slas.robot" - -ROBOT_VARIABLES="-v POLICY_PAP_IP:localhost:${PAP_PORT} -v POLICY_API_IP:localhost:${API_PORT} --v PROMETHEUS_IP:localhost:${PROMETHEUS_PORT} -v DATA:${DATA} -v NODETEMPLATES:${NODETEMPLATES}" diff --git a/csit/resources/scripts/setup-xacml-pdp.sh b/csit/resources/scripts/setup-xacml-pdp.sh deleted file mode 100755 index 79a53bec..00000000 --- a/csit/resources/scripts/setup-xacml-pdp.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -# ============LICENSE_START======================================================= -# Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved. -# Modifications Copyright 2021-2024 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========================================================= - -source "${SCRIPTS}"/node-templates.sh - -source "${WORKSPACE}"/compose/start-compose.sh xacml-pdp - -sleep 10 -unset http_proxy https_proxy - -export SUITES="xacml-pdp-test.robot" -export KAFKA_IP="localhost:${KAFKA_PORT}" - -# wait for the app to start up -"${SCRIPTS}"/wait_for_rest.sh localhost "${XACML_PORT}" - -ROBOT_VARIABLES="-v DATA:${DATA} -v POLICY_PDPX_IP:localhost:${XACML_PORT} --v POLICY_API_IP:localhost:${API_PORT} -v POLICY_PAP_IP:localhost:${PAP_PORT} --v KAFKA_IP:${KAFKA_IP}" diff --git a/csit/resources/tests/distribution-test.robot b/csit/resources/tests/distribution-test.robot index c85be4fd..b8b49248 100644 --- a/csit/resources/tests/distribution-test.robot +++ b/csit/resources/tests/distribution-test.robot @@ -20,11 +20,11 @@ MetricsAfterExecution [Documentation] Verify policy-distribution is exporting prometheus metrics after execution ${hcauth}= PolicyAdminAuth ${resp}= PerformGetRequest ${DISTRIBUTION_IP} /metrics 200 null ${hcauth} - Should Contain ${resp.text} total_distribution_received_count_total 2.0 - Should Contain ${resp.text} distribution_success_count_total 2.0 + Should Contain ${resp.text} total_distribution_received_count_total 1.0 + Should Contain ${resp.text} distribution_success_count_total 1.0 Should Contain ${resp.text} distribution_failure_count_total 0.0 - Should Contain ${resp.text} total_download_received_count_total 2.0 - Should Contain ${resp.text} download_success_count_total 2.0 + Should Contain ${resp.text} total_download_received_count_total 1.0 + Should Contain ${resp.text} download_success_count_total 1.0 Should Contain ${resp.text} download_failure_count_total 0.0 *** Keywords *** diff --git a/csit/resources/tests/drools-applications-test.robot b/csit/resources/tests/drools-applications-test.robot index a5c09c72..edbc1df6 100644 --- a/csit/resources/tests/drools-applications-test.robot +++ b/csit/resources/tests/drools-applications-test.robot @@ -74,69 +74,69 @@ DeployXacmlPolicies # Should Contain ${result} deployed-policies # Should Contain ${result} operational.scaleout # Should Contain ${result} operational.restart - +# #VcpeExecute # [Documentation] Executes VCPE Policy # OnSet ${CURDIR}/data/vcpeOnset.json -# ${result}= CheckTopic POLICY-CL-MGT ACTIVE +# ${result}= CheckKafkaTopic policy-cl-mgt ACTIVE # Should Contain ${result} ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e -# ${result}= CheckTopic POLICY-CL-MGT OPERATION +# ${result}= CheckKafkaTopic policy-cl-mgt OPERATION # Should Contain ${result} ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e # Should Contain ${result} Sending guard query for APPC Restart -# ${result}= CheckTopic POLICY-CL-MGT OPERATION +# ${result}= CheckKafkaTopic policy-cl-mgt OPERATION # Should Contain ${result} ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e # Should Contain ${result} Guard result for APPC Restart is Permit -# ${result}= CheckTopic POLICY-CL-MGT OPERATION +# ${result}= CheckKafkaTopic policy-cl-mgt OPERATION # Should Contain ${result} ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e # Should Contain ${result} actor=APPC,operation=Restart -# ${result}= CheckTopic POLICY-CL-MGT OPERATION: SUCCESS +# ${result}= CheckKafkaTopic policy-cl-mgt OPERATION: SUCCESS # Should Contain ${result} ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e # Should Contain ${result} actor=APPC,operation=Restart -# ${result}= CheckTopic POLICY-CL-MGT FINAL: SUCCESS +# ${result}= CheckKafkaTopic policy-cl-mgt FINAL: SUCCESS # Should Contain ${result} ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e # Should Contain ${result} APPC # Should Contain ${result} Restart - +# #VdnsExecute # [Documentation] Executes VDNS Policy # OnSet ${CURDIR}/data/vdnsOnset.json -# ${result}= CheckTopic POLICY-CL-MGT ACTIVE +# ${result}= CheckKafkaTopic policy-cl-mgt ACTIVE # Should Contain ${result} ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3 -# ${result}= CheckTopic POLICY-CL-MGT OPERATION +# ${result}= CheckKafkaTopic policy-cl-mgt OPERATION # Should Contain ${result} ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3 # Should Contain ${result} Sending guard query for SO VF Module Create -# ${result}= CheckTopic POLICY-CL-MGT OPERATION +# ${result}= CheckKafkaTopic policy-cl-mgt OPERATION # Should Contain ${result} ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3 # Should Contain ${result} Guard result for SO VF Module Create is Permit -# ${result}= CheckTopic POLICY-CL-MGT OPERATION +# ${result}= CheckKafkaTopic policy-cl-mgt OPERATION # Should Contain ${result} ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3 # Should Contain ${result} actor=SO,operation=VF Module Create -# ${result}= CheckTopic POLICY-CL-MGT OPERATION: SUCCESS +# ${result}= CheckKafkaTopic policy-cl-mgt OPERATION: SUCCESS # Should Contain ${result} ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3 # Should Contain ${result} actor=SO,operation=VF Module Create -# ${result}= CheckTopic POLICY-CL-MGT FINAL: SUCCESS +# ${result}= CheckKafkaTopic policy-cl-mgt FINAL: SUCCESS # Should Contain ${result} ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3 # Should Contain ${result} SO # Should Contain ${result} VF Module Create - +# #VfwExecute # [Documentation] Executes VFW Policy # OnSet ${CURDIR}/data/vfwOnset.json -# ${result}= CheckTopic POLICY-CL-MGT ACTIVE +# ${result}= CheckKafkaTopic policy-cl-mgt ACTIVE # Should Contain ${result} ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a -# ${result}= CheckTopic POLICY-CL-MGT OPERATION +# ${result}= CheckKafkaTopic policy-cl-mgt OPERATION # Should Contain ${result} ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a # Should Contain ${result} Sending guard query for APPC ModifyConfig -# ${result}= CheckTopic POLICY-CL-MGT OPERATION +# ${result}= CheckKafkaTopic policy-cl-mgt OPERATION # Should Contain ${result} ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a # Should Contain ${result} Guard result for APPC ModifyConfig is Permit -# ${result}= CheckTopic POLICY-CL-MGT OPERATION +# ${result}= CheckKafkaTopic policy-cl-mgt OPERATION # Should Contain ${result} ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a # Should Contain ${result} actor=APPC,operation=ModifyConfig -# ${result}= CheckTopic POLICY-CL-MGT OPERATION: SUCCESS +# ${result}= CheckKafkaTopic policy-cl-mgt OPERATION: SUCCESS # Should Contain ${result} ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a # Should Contain ${result} actor=APPC,operation=ModifyConfig -# ${result}= CheckTopic POLICY-CL-MGT FINAL: SUCCESS +# ${result}= CheckKafkaTopic policy-cl-mgt FINAL: SUCCESS # Should Contain ${result} ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a # Should Contain ${result} APPC # Should Contain ${result} ModifyConfig diff --git a/csit/resources/tests/pap-test.robot b/csit/resources/tests/pap-test.robot index 21a37d3b..cd02e3ab 100644 --- a/csit/resources/tests/pap-test.robot +++ b/csit/resources/tests/pap-test.robot @@ -134,15 +134,3 @@ DeletePdpGroups QueryPdpGroupsAfterDelete [Documentation] Verify PdpGroups after delete QueryPdpGroups 1 defaultGroup ACTIVE 0 null null null - -# ValidateSlaForPap -# [Documentation] Run checks against Prometheus server to check response time -# Sleep 30s -# ValidateDeploymentTime -# ValidateResponseTime pap-metrics /components/healthcheck GET 10000 -# ValidateResponseTimeForPap /healthcheck GET -# ValidateResponseTimeForPap /policies/audit GET -# ValidateResponseTimeForPap /pdps/groups/{name} PUT -# ValidateResponseTimeForPap /pdps/policies/{name} DELETE -# ValidateResponseTimeForPap /pdps/groups/{name} DELETE -# ValidateResponseTimeForPap /pdps/groups/batch POST diff --git a/csit/run-project-csit.sh b/csit/run-project-csit.sh index 07a3424c..a7f7e865 100755 --- a/csit/run-project-csit.sh +++ b/csit/run-project-csit.sh @@ -3,7 +3,7 @@ # Copyright 2016-2017 Huawei Technologies Co., Ltd. # Modification Copyright 2019 © Samsung Electronics Co., Ltd. # Modification Copyright 2021 © AT&T Intellectual Property. -# Modification Copyright 2021-2023 Nordix Foundation. +# Modification Copyright 2021-2024 Nordix Foundation. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,36 +17,6 @@ # See the License for the specific language governing permissions and # limitations under the License. # -# $1 functionality -# $2 robot options - -# -# functions -# - -function on_exit(){ - rc=$? - if [[ ${WORKSPACE} ]]; then - # Record list of active docker containers - docker ps --format "table {{ .Names }}\t{{ .Status }}" - - # show memory consumption after all docker instances initialized - docker_stats - - source_safely ${WORKSPACE}/compose/stop-compose.sh - rsync "${WORKSPACE}/compose/docker_compose.log" "${WORKSPACE}/csit/archives/${PROJECT}" - - if [[ ${WORKDIR} ]]; then - rsync -av "${WORKDIR}/" "${WORKSPACE}/csit/archives/${PROJECT}" - fi - rm -rf ${WORKSPACE}/models - fi - # TODO: do something with the output - exit $rc -} - -# ensure that teardown and other finalizing steps are always executed -trap on_exit EXIT function docker_stats(){ # General memory details @@ -70,124 +40,246 @@ function docker_stats(){ echo } -# save current set options -function save_set() { - RUN_CSIT_SAVE_SET="$-" - RUN_CSIT_SHELLOPTS="${SHELLOPTS}" +function setup_clamp() { + export ROBOT_FILES="policy-clamp-test.robot" + source "${WORKSPACE}"/compose/start-compose.sh policy-clamp-runtime-acm + sleep 30 + bash "${SCRIPTS}"/wait_for_rest.sh localhost "${ACM_PORT}" + export CLAMP_K8S_TEST=false } -# load the saved set options -function load_set() { - _setopts="$-" +function setup_api() { + export ROBOT_FILES="api-test.robot api-slas.robot" + source "${WORKSPACE}"/compose/start-compose.sh api --grafana + sleep 10 + bash "${SCRIPTS}"/wait_for_rest.sh localhost ${API_PORT} +} - # bash shellopts - for i in $(echo "${SHELLOPTS}" | tr ':' ' ') ; do - set +o ${i} - done - for i in $(echo "${RUN_CSIT_SHELLOPTS}" | tr ':' ' ') ; do - set -o ${i} - done +function setup_pap() { + export ROBOT_FILES="pap-test.robot pap-slas.robot" + source "${WORKSPACE}"/compose/start-compose.sh apex-pdp --grafana + sleep 10 + bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT} +} + +function setup_apex() { + export ROBOT_FILES="apex-pdp-test.robot apex-slas.robot" + source "${WORKSPACE}"/compose/start-compose.sh apex-pdp --grafana + sleep 10 + bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT} + bash "${SCRIPTS}"/wait_for_rest.sh localhost ${APEX_PORT} + apex_healthcheck +} + +function setup_apex_postgres() { + export ROBOT_FILES="apex-pdp-test.robot" + source "${WORKSPACE}"/compose/start-postgres-tests.sh 1 + sleep 10 + bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT} + bash "${SCRIPTS}"/wait_for_rest.sh localhost ${APEX_PORT} + apex_healthcheck +} + +function setup_apex_medium() { + export SUITES="apex-slas-3.robot" + source "${WORKSPACE}"/compose/start-multiple-pdp.sh 3 + sleep 10 + bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT} + bash "${SCRIPTS}"/wait_for_rest.sh localhost ${APEX_PORT} + apex_healthcheck +} + +function setup_apex_large() { + export ROBOT_FILES="apex-slas-10.robot" + source "${WORKSPACE}"/compose/start-multiple-pdp.sh 10 + sleep 10 + bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT} + bash "${SCRIPTS}"/wait_for_rest.sh localhost ${APEX_PORT} + apex_healthcheck +} - # other options - for i in $(echo "$_setopts" | sed 's/./& /g') ; do - set +${i} +function apex_healthcheck() { + sleep 20 + + healthy=false + + while [ $healthy = false ] + do + msg=`curl -s -k --user 'policyadmin:zb!XztG34' http://localhost:${APEX_PORT}/policy/apex-pdp/v1/healthcheck` + echo "${msg}" | grep -q true + if [ "${?}" -eq 0 ] + then + healthy=true + break + fi + sleep 10s done - set -${RUN_CSIT_SAVE_SET} } -# set options for quick bailout when error -function harden_set() { - set -xeo pipefail - set +u # enabled it would probably fail too many often +function setup_drools_apps() { + export ROBOT_FILES="drools-applications-test.robot" + source "${WORKSPACE}"/compose/start-compose.sh drools-applications + sleep 10 + bash "${SCRIPTS}"/wait_for_rest.sh localhost ${PAP_PORT} + sleep 10 + bash "${SCRIPTS}"/wait_for_rest.sh localhost ${DROOLS_APPS_PORT} + sleep 10 + bash "${SCRIPTS}"/wait_for_rest.sh localhost ${DROOLS_APPS_TELEMETRY_PORT} } -# relax set options so the sourced file will not fail -# the responsibility is shifted to the sourced file... -function relax_set() { - set +e - set +o pipefail +function setup_xacml_pdp() { + export ROBOT_FILES="xacml-pdp-test.robot" + source "${WORKSPACE}"/compose/start-compose.sh xacml-pdp + sleep 10 + bash "${SCRIPTS}"/wait_for_rest.sh localhost "${XACML_PORT}" } -# wrapper for sourcing a file -function source_safely() { - [ -z "$1" ] && return 1 - relax_set - . "$1" - load_set +function setup_drools_pdp() { + export ROBOT_FILES="drools-pdp-test.robot" + source "${WORKSPACE}"/compose/start-compose.sh drools-pdp + sleep 30 + bash "${SCRIPTS}"/wait_for_rest.sh localhost ${DROOLS_TELEMETRY_PORT} } -# -# main -# +function setup_distribution() { + zip -F ${WORKSPACE}/csit/resources/tests/data/csar/sample_csar_with_apex_policy.csar \ + --out ${WORKSPACE}/csit/resources/tests/data/csar/csar_temp.csar -q -# set and save options for quick failure -harden_set && save_set + # Remake temp directory + sudo rm -rf /tmp/distribution + sudo mkdir /tmp/distribution -if [ $# -eq 0 ] -then - echo - echo "Usage: $0 <project> [<robot-options>]" - echo - echo " <project> <robot-options>: " - echo - exit 1 -fi + export ROBOT_FILES="distribution-test.robot" + source "${WORKSPACE}"/compose/start-compose.sh distribution + sleep 10 + bash "${SCRIPTS}"/wait_for_rest.sh localhost "${DIST_PORT}" +} + +function build_robot_image() { + bash "${SCRIPTS}"/build-csit-docker-image.sh + cd ${WORKSPACE} +} + +function run_robot() { + docker compose -f "${WORKSPACE}"/compose/docker-compose.yml up csit-tests + export RC=$? +} + +function set_project_config() { + echo "Setting project configuration for: $PROJECT" + case $PROJECT in + + clamp | policy-clamp) + setup_clamp + ;; + + api | policy-api) + setup_api + ;; + + pap | policy-pap) + setup_pap + ;; + + apex-pdp | policy-apex-pdp) + setup_apex + ;; + + apex-pdp-postgres | policy-apex-pdp-postgres) + setup_apex + ;; + + apex-pdp-medium | policy-apex-pdp-medium) + setup_apex + ;; + + apex-pdp-large | policy-apex-pdp-large) + setup_apex + ;; + + xacml-pdp | policy-xacml-pdp) + setup_xacml_pdp + ;; + + drools-pdp | policy-drools-pdp) + setup_drools_pdp + ;; + + drools-applications | policy-drools-applications | drools-apps | policy-drools-apps) + setup_drools_apps + ;; + distribution | policy-distribution) + setup_distribution + ;; + + *) + echo "Unknown project supplied. No test will run." + exit 1 + ;; + esac +} + +# even with forced finish, clean up docker containers +function on_exit(){ + rm -rf ${WORKSPACE}/csit/resources/tests/data/csar/csar_temp.csar + source ${WORKSPACE}/compose/stop-compose.sh + cp ${WORKSPACE}/compose/*.log ${WORKSPACE}/csit/archives/${PROJECT} + exit $RC +} + +# ensure that teardown and other finalizing steps are always executed +trap on_exit EXIT + +# setup all directories used for test resources if [ -z "${WORKSPACE}" ]; then WORKSPACE=$(git rev-parse --show-toplevel) export WORKSPACE fi -# Add csit scripts to PATH -export PATH="${PATH}:${WORKSPACE}/csit:${WORKSPACE}/scripts:${ROBOT_VENV}/bin" -export SCRIPTS="${WORKSPACE}/csit/resources/scripts" -export ROBOT_VARIABLES= - +export GERRIT_BRANCH=$(awk -F= '$1 == "defaultbranch" { print $2 }' "${WORKSPACE}"/.gitreview) export PROJECT="${1}" +export ROBOT_LOG_DIR=${WORKSPACE}/csit/archives/${PROJECT} +export SCRIPTS="${WORKSPACE}/csit/resources/scripts" +export ROBOT_FILES="" cd "${WORKSPACE}" -rm -rf "${WORKSPACE}/csit/archives/${PROJECT}" -mkdir -p "${WORKSPACE}/csit/archives/${PROJECT}" +# recreate the log folder with test results +sudo rm -rf ${ROBOT_LOG_DIR} +mkdir -p ${ROBOT_LOG_DIR} + +# log into nexus docker +docker login -u docker -p docker nexus3.onap.org:10001 -# Run installation of pre-required libraries -source_safely "${SCRIPTS}/prepare-robot-env.sh" +# based on $PROJECT var, setup robot test files and docker compose execution +compose_version=$(docker compose version) -# Activate the virtualenv containing all the required libraries installed by prepare-robot-env.sh -source_safely "${ROBOT_VENV}/bin/activate" +if [[ $compose_version == *"Docker Compose version"* ]]; then + echo $compose_version +else + echo "Docker Compose Plugin not installed. Installing now..." + sudo mkdir -p /usr/local/lib/docker/cli-plugins + sudo curl -SL https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose + sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose +fi -export TEST_PLAN_DIR="${WORKSPACE}/csit/resources/tests" -export TEST_OPTIONS="${2}" +set_project_config -WORKDIR=$(mktemp -d) -cd "${WORKDIR}" +unset http_proxy https_proxy -# Sign in to nexus3 docker repo -docker login -u docker -p docker nexus3.onap.org:10001 +export ROBOT_FILES -# Run setup script plan if it exists -SETUP="${SCRIPTS}/setup-${PROJECT}.sh" -if [ -f "${SETUP}" ]; then - echo "Running setup script ${SETUP}" - source_safely "${SETUP}" +# use a separate script to build a CSIT docker image, to containerize the test run +if [ "${2}" == "--skip-build-csit" ]; then + echo "Skipping build csit robot image" +else + build_robot_image fi -# show memory consumption after all docker instances initialized docker_stats | tee "${WORKSPACE}/csit/archives/${PROJECT}/_sysinfo-1-after-setup.txt" -# Run test plan -cd "${WORKDIR}" -echo "Reading the testplan:" -echo "${SUITES}" | egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' | sed "s|^|${TEST_PLAN_DIR}/|" > testplan.txt -cat testplan.txt -SUITES=$( xargs < testplan.txt ) - -echo ROBOT_VARIABLES="${ROBOT_VARIABLES}" -echo "Starting Robot test suites ${SUITES} ..." -relax_set -python3 -m robot.run -N "${PROJECT}" -v WORKSPACE:/tmp ${ROBOT_VARIABLES} ${SUITES} -RESULT=$? -load_set -echo "RESULT: ${RESULT}" -# Note that the final steps are done in on_exit function after this exit! -exit ${RESULT} +# start the CSIT container and run the tests +run_robot + +docker ps --format "table {{ .Names }}\t{{ .Status }}" diff --git a/helm/policy/components/policy-drools-pdp/resources/configmaps/feature-pooling-kafka.conf b/helm/policy/components/policy-drools-pdp/resources/configmaps/feature-pooling-messages.conf index 977f289c..977f289c 100755 --- a/helm/policy/components/policy-drools-pdp/resources/configmaps/feature-pooling-kafka.conf +++ b/helm/policy/components/policy-drools-pdp/resources/configmaps/feature-pooling-messages.conf diff --git a/helm/robot/templates/test-job.yaml b/helm/robot/templates/test-job.yaml index 1cdc53eb..a573b510 100644 --- a/helm/robot/templates/test-job.yaml +++ b/helm/robot/templates/test-job.yaml @@ -49,8 +49,8 @@ spec: imagePullPolicy: Never env: - name: ROBOT_FILE - value: {{ .Values.robot }} - command: [ "./run-test.sh", "$(ROBOT_FILE)" ] + value: "$(ROBOT_FILE)" + command: [ "./run-test.sh" ] volumeMounts: - name: robot-csit-pv mountPath: /tmp |