diff --git a/docker-compose/README.md b/docker-compose/README.md
index fdcb5f5..d2f25c2 100644
--- a/docker-compose/README.md
+++ b/docker-compose/README.md
@@ -1,25 +1,51 @@
-# O-RAN-SC docker-compose files
+## License
+Copyright (C) 2020 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
 
-The docker-compose.yml file will create an entire nonrtric system with one command:
-docker-compose up
+      http://www.apache.org/licenses/LICENSE-2.0
 
-Two docker-compose files are provided in this folder:
+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.
 
-nosdnc/docker-compose.yml
-This file is to create nonrtric system without sdnc a1-controller
+For more information about license please see the [LICENSE](LICENSE.txt) file for details.
 
-sdnc/docker-compose.yml
-This file is to create nonrtric system with sdnc a1-controller
+## O-RAN-SC docker-compose files:
+The docker compose file helps the user to deploy all or partial components of nonrtric with one command.
 
-Howto:
-cd nosdnc/
-docker-compose up
+All the components in nonrtric has individual docker compose file so you can simply mix and match different components and deploy
+it at your preference.
 
-or
+For ex.
+I want to Control Panel, A1 Policy Management Service & A1 Simulator,
+docker-compose -f docker-compose.yaml -f control-panel/docker-compose.yaml -f policy-service/docker-compose.yaml -f a1-sim/docker-compose.yaml up -d
 
-cd sdnc/
-docker-compose up
+To remove all the containers use the same command,
+docker-compose -f docker-compose.yaml -f control-panel/docker-compose.yaml -f policy-service/docker-compose.yaml -f a1-sim/docker-compose.yaml down
 
+It can be used with any combination to deploy nonrtric components.
+
+## Policy Service Prerequisite:
+The A1 Policy Service can perform A1 Policy management with or without A1 Adapter. To enable/disable A1 Adapter all you have to do is,
+With SDNC A1 Adapter:
+Rename application_configuration.controller.json to application_configuration.json & start the container. Don't forget to add the A1 Adapter url,username & password in the application_configuration.json file.
+You also need to update the A1 Adapter url & credentials in the application_configuration file.
+Ex:
+For example if you use the OSC A1 Adapter then,
+"baseUrl": "http://a1controller:8282"
+"userName": "admin",
+"password": "Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U"
+docker-compose -f docker-compose.yaml -f policy-service/docker-compose.yaml -f a1-sim/docker-compose.yaml up -d
+Without SDNC A1 Adapter:
+Rename application_configuration.nocontroller.json to application_configuration.json & start the container.
+Ex:
+docker-compose -f docker-compose.yaml -f policy-service/docker-compose.yaml -f a1-sim/docker-compose.yaml up -d
+
+## To create sample data:
 The scripts in data/ will generate some dummy data in the running system.
 It will create:
 one policy type in a1-sim-OSC
@@ -43,21 +69,4 @@
 This is to generate some data into the ECS microservice
 
 prepareDmaapMsg.sh
-This is to generate some data into the Dmaap MR, so that PMS reads message from MR
-
-## License
-
-Copyright (C) 2020 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.
-
-For more information about license please see the [LICENSE](LICENSE.txt) file for details.
+This is to generate some data into the Dmaap MR, so that PMS reads message from MR
\ No newline at end of file
diff --git a/docker-compose/ecs/docker-compose.yml b/docker-compose/a1-sim/docker-compose.yaml
similarity index 64%
copy from docker-compose/ecs/docker-compose.yml
copy to docker-compose/a1-sim/docker-compose.yaml
index 8b64e25..e7af031 100644
--- a/docker-compose/ecs/docker-compose.yml
+++ b/docker-compose/a1-sim/docker-compose.yaml
@@ -21,31 +21,28 @@
     name: nonrtric-docker-net
 
 services:
-  ecs:
-    image: nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-enrichment-coordinator-service:1.1.0
-    container_name: ecs
-    networks:
-      default:
-        aliases:
-          - enrichment-service-container
-    ports:
-      - 8083:8083
-      - 8434:8434
-
-  policy-control-panel:
-    image: nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-controlpanel:2.2.0
-    container_name: policy-control-panel
+  a1-sim-OSC:
+    image: nexus3.o-ran-sc.org:10004/o-ran-sc/a1-simulator:2.0.0
+    container_name: a1-sim-OSC
     networks:
       - default
     ports:
-      - 8080:8080
-      - 8082:8082
+      - 30001:8085
+      - 30002:8185
+    environment:
+      - A1_VERSION=OSC_2.1.0
+      - REMOTE_HOSTS_LOGGING=1
+      - ALLOW_HTTP=true
 
-  producer:
-    image: eexit/mirror-http-server
-    container_name: producer
+  a1-sim-STD:
+    image: nexus3.o-ran-sc.org:10004/o-ran-sc/a1-simulator:2.0.0
+    container_name: a1-sim-STD
     networks:
       - default
     ports:
-      - 8088:80
-
+      - 30003:8085
+      - 30004:8185
+    environment:
+      - A1_VERSION=STD_1.1.3
+      - REMOTE_HOSTS_LOGGING=1
+      - ALLOW_HTTP=true
diff --git a/docker-compose/rapp/docker-compose.yml b/docker-compose/control-panel/docker-compose.yaml
similarity index 81%
copy from docker-compose/rapp/docker-compose.yml
copy to docker-compose/control-panel/docker-compose.yaml
index 3265408..048b3cf 100644
--- a/docker-compose/rapp/docker-compose.yml
+++ b/docker-compose/control-panel/docker-compose.yaml
@@ -21,15 +21,11 @@
     name: nonrtric-docker-net
 
 services:
-  r-app:
-    image: nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-r-app-catalogue:1.1.0
-    container_name: r-app
+  policy-control-panel:
+    image: nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-controlpanel:2.0.0
+    container_name: policy-control-panel
     networks:
-      default:
-        aliases:
-          - r-app-catalogue
+      - default
     ports:
       - 8080:8080
-      - 8433:8433
-
-
+      - 8082:8082
diff --git a/docker-compose/rapp/docker-compose.yml b/docker-compose/docker-compose.yaml
similarity index 77%
copy from docker-compose/rapp/docker-compose.yml
copy to docker-compose/docker-compose.yaml
index 3265408..67f3810 100644
--- a/docker-compose/rapp/docker-compose.yml
+++ b/docker-compose/docker-compose.yaml
@@ -18,18 +18,4 @@
 networks:
   default:
     driver: bridge
-    name: nonrtric-docker-net
-
-services:
-  r-app:
-    image: nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-r-app-catalogue:1.1.0
-    container_name: r-app
-    networks:
-      default:
-        aliases:
-          - r-app-catalogue
-    ports:
-      - 8080:8080
-      - 8433:8433
-
-
+    name: nonrtric-docker-net
\ No newline at end of file
diff --git a/docker-compose/ecs/docker-compose.yml b/docker-compose/ecs/docker-compose.yaml
similarity index 84%
rename from docker-compose/ecs/docker-compose.yml
rename to docker-compose/ecs/docker-compose.yaml
index 8b64e25..d33f329 100644
--- a/docker-compose/ecs/docker-compose.yml
+++ b/docker-compose/ecs/docker-compose.yaml
@@ -31,16 +31,6 @@
     ports:
       - 8083:8083
       - 8434:8434
-
-  policy-control-panel:
-    image: nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-controlpanel:2.2.0
-    container_name: policy-control-panel
-    networks:
-      - default
-    ports:
-      - 8080:8080
-      - 8082:8082
-
   producer:
     image: eexit/mirror-http-server
     container_name: producer
@@ -48,4 +38,3 @@
       - default
     ports:
       - 8088:80
-
diff --git a/docker-compose/withDmaap_nosdnc/mr/MsgRtrApi.properties b/docker-compose/mr/MsgRtrApi.properties
similarity index 100%
rename from docker-compose/withDmaap_nosdnc/mr/MsgRtrApi.properties
rename to docker-compose/mr/MsgRtrApi.properties
diff --git a/docker-compose/withDmaap_nosdnc/mr/cadi.properties b/docker-compose/mr/cadi.properties
similarity index 100%
rename from docker-compose/withDmaap_nosdnc/mr/cadi.properties
rename to docker-compose/mr/cadi.properties
diff --git a/docker-compose/withDmaap_nosdnc/mr/logback.xml b/docker-compose/mr/logback.xml
similarity index 100%
rename from docker-compose/withDmaap_nosdnc/mr/logback.xml
rename to docker-compose/mr/logback.xml
diff --git a/docker-compose/withDmaap_nosdnc/kafka/zk_client_jaas.conf b/docker-compose/mr/zk_client_jaas.conf
similarity index 100%
rename from docker-compose/withDmaap_nosdnc/kafka/zk_client_jaas.conf
rename to docker-compose/mr/zk_client_jaas.conf
diff --git a/docker-compose/withDmaap_nosdnc/zk/zk_server_jaas.conf b/docker-compose/mr/zk_server_jaas.conf
similarity index 100%
rename from docker-compose/withDmaap_nosdnc/zk/zk_server_jaas.conf
rename to docker-compose/mr/zk_server_jaas.conf
diff --git a/docker-compose/nosdnc/config/application-policyagent.yaml b/docker-compose/policy-service/config/application-policyagent.yaml
similarity index 100%
rename from docker-compose/nosdnc/config/application-policyagent.yaml
rename to docker-compose/policy-service/config/application-policyagent.yaml
diff --git a/docker-compose/sdnc/config/application_configuration.json b/docker-compose/policy-service/config/application_configuration.controller.json
similarity index 79%
rename from docker-compose/sdnc/config/application_configuration.json
rename to docker-compose/policy-service/config/application_configuration.controller.json
index 0925703..ae9ba77 100644
--- a/docker-compose/sdnc/config/application_configuration.json
+++ b/docker-compose/policy-service/config/application_configuration.controller.json
@@ -1,10 +1,19 @@
 {
     "config":{
        "//description":"Application configuration",
+       "controller": [
+         {
+           "name": "controller1",
+           "baseUrl": "",
+           "userName": "",
+           "password": ""
+         }
+       ],
        "ric":[
           {
              "name":"ric1",
              "baseUrl":"https://a1-sim-OSC:8185/",
+             "controller": "controller1",
              "managedElementIds":[
                 "kista_1",
                 "kista_2"
@@ -13,6 +22,7 @@
           {
              "name":"ric2",
              "baseUrl":"https://a1-sim-STD:8185/",
+             "controller": "controller1",
              "managedElementIds":[
                 "kista_1",
                 "kista_2"
diff --git a/docker-compose/nosdnc/config/application_configuration.json b/docker-compose/policy-service/config/application_configuration.nocontroller.json
similarity index 100%
rename from docker-compose/nosdnc/config/application_configuration.json
rename to docker-compose/policy-service/config/application_configuration.nocontroller.json
diff --git a/docker-compose/nosdnc/docker-compose.yml b/docker-compose/policy-service/docker-compose.yaml
similarity index 67%
rename from docker-compose/nosdnc/docker-compose.yml
rename to docker-compose/policy-service/docker-compose.yaml
index c57cd29..4abb65e 100644
--- a/docker-compose/nosdnc/docker-compose.yml
+++ b/docker-compose/policy-service/docker-compose.yaml
@@ -38,38 +38,3 @@
     #  - ./config/keystore-policyagent.jks:/opt/app/policy-agent/etc/cert/keystore.jks:ro
     #  - ./config/truststore-policyagent.jks:/opt/app/policy-agent/etc/cert/truststore.jks:ro
     #  - ./config/application-policyagent.yaml:/opt/app/policy-agent/config/application.yaml:ro
-
-  a1-sim-OSC:
-    image: nexus3.o-ran-sc.org:10004/o-ran-sc/a1-simulator:2.1.0
-    container_name: a1-sim-OSC
-    networks:
-      - default
-    ports:
-      - 30001:8085
-      - 30002:8185
-    environment:
-      - A1_VERSION=OSC_2.1.0
-      - REMOTE_HOSTS_LOGGING=1
-      - ALLOW_HTTP=true
-
-  a1-sim-STD:
-    image: nexus3.o-ran-sc.org:10004/o-ran-sc/a1-simulator:2.1.0
-    container_name: a1-sim-STD
-    networks:
-      - default
-    ports:
-      - 30003:8085
-      - 30004:8185
-    environment:
-      - A1_VERSION=STD_1.1.3
-      - REMOTE_HOSTS_LOGGING=1
-      - ALLOW_HTTP=true
-
-  policy-control-panel:
-    image: nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-controlpanel:2.2.0
-    container_name: policy-control-panel
-    networks:
-      - default
-    ports:
-      - 8080:8080
-      - 8082:8082
diff --git a/docker-compose/rapp/docker-compose.yml b/docker-compose/rapp/docker-compose.yaml
similarity index 99%
rename from docker-compose/rapp/docker-compose.yml
rename to docker-compose/rapp/docker-compose.yaml
index 3265408..a7f6f43 100644
--- a/docker-compose/rapp/docker-compose.yml
+++ b/docker-compose/rapp/docker-compose.yaml
@@ -32,4 +32,3 @@
       - 8080:8080
       - 8433:8433
 
-
diff --git a/docker-compose/sdnc/config/application-policyagent.yaml b/docker-compose/sdnc/config/application-policyagent.yaml
deleted file mode 100755
index e9146e0..0000000
--- a/docker-compose/sdnc/config/application-policyagent.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
-spring:
-  profiles:
-    active: prod
-  main:
-    allow-bean-definition-overriding: true
-  aop:
-    auto: false
-management:
-  endpoints:
-    web:
-      exposure:
-        include: "loggers,logfile,health,info,metrics,threaddump,heapdump"
-
-logging:
-  level:
-    ROOT: ERROR
-    org.springframework: ERROR
-    org.springframework.data: ERROR
-    org.springframework.web.reactive.function.client.ExchangeFunctions: ERROR
-    org.oransc.policyagent: INFO
-  file: /var/log/policy-agent/application.log
-server:
-   port : 8433
-   http-port: 8081
-   ssl:
-      key-store-type: JKS
-      key-store-password: policy_agent
-      key-store: /opt/app/policy-agent/etc/cert/keystore.jks
-      key-password: policy_agent
-      key-alias: policy_agent
-app:
-  filepath: /opt/app/policy-agent/data/application_configuration.json
-  webclient:
-    trust-store-used: false
-    trust-store-password: policy_agent
-    trust-store: /opt/app/policy-agent/etc/cert/truststore.jks
-
diff --git a/docker-compose/sdnc/docker-compose.yml b/docker-compose/sdnc/docker-compose.yml
index 9796ece..6ad80d9 100644
--- a/docker-compose/sdnc/docker-compose.yml
+++ b/docker-compose/sdnc/docker-compose.yml
@@ -21,59 +21,6 @@
     name: nonrtric-docker-net
 
 services:
-  policy-agent:
-    image: nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-policy-agent:2.2.0
-    container_name: policy-agent
-    networks:
-      default:
-        aliases:
-          - policy-agent-container
-    ports:
-      - 8081:8081
-      - 8433:8433
-    volumes:
-      - ./config/application_configuration.json:/opt/app/policy-agent/data/application_configuration.json:ro
-    # For using own certs instead of the default ones (built into the container),
-    # place them in config/ directory, update the application-policyagent.yaml file, and uncomment the following lines
-    #  - ./config/keystore-policyagent.jks:/opt/app/policy-agent/etc/cert/keystore.jks:ro
-    #  - ./config/truststore-policyagent.jks:/opt/app/policy-agent/etc/cert/truststore.jks:ro
-    #  - ./config/application-policyagent.yaml:/opt/app/policy-agent/config/application.yaml:ro
-
-  a1-sim-OSC:
-    image: nexus3.o-ran-sc.org:10004/o-ran-sc/a1-simulator:2.1.0
-    container_name: a1-sim-OSC
-    networks:
-      - default
-    ports:
-      - 30001:8085
-      - 30002:8185
-    environment:
-      - A1_VERSION=OSC_2.1.0
-      - REMOTE_HOSTS_LOGGING=1
-      - ALLOW_HTTP=true
-
-  a1-sim-STD:
-    image: nexus3.o-ran-sc.org:10004/o-ran-sc/a1-simulator:2.1.0
-    container_name: a1-sim-STD
-    networks:
-      - default
-    ports:
-      - 30003:8085
-      - 30004:8185
-    environment:
-      - A1_VERSION=STD_1.1.3
-      - REMOTE_HOSTS_LOGGING=1
-      - ALLOW_HTTP=true
-
-  policy-control-panel:
-    image: nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-controlpanel:2.2.0
-    container_name: policy-control-panel
-    networks:
-      - default
-    ports:
-      - 8080:8080
-      - 8082:8082
-
   db:
     image: mysql/mysql-server:5.6
     container_name: sdnc-db
diff --git a/docker-compose/withDmaap_nosdnc/docker-compose.yml b/docker-compose/withDmaap_nosdnc/docker-compose.yml
deleted file mode 100644
index f2026b0..0000000
--- a/docker-compose/withDmaap_nosdnc/docker-compose.yml
+++ /dev/null
@@ -1,142 +0,0 @@
-#  Copyright (C) 2020 Nordix Foundation. All rights reserved.
-#  ========================================================================
-#  Licensed under the Apache License, Version 2.0 (the "License");
-#  you may not use this file except in compliance with the License.
-#  You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-#  Unless required by applicable law or agreed to in writing, software
-#  distributed under the License is distributed on an "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#  See the License for the specific language governing permissions and
-#  limitations under the License.
-#  ============LICENSE_END=================================================
-#
-version: '3.5'
-
-networks:
-  default:
-    driver: bridge
-    name: nonrtric-docker-net
-
-services:
-  policy-agent:
-    image: nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-policy-agent:2.2.0
-    container_name: policy-agent
-    networks:
-      default:
-        aliases:
-          - policy-agent-container
-    ports:
-      - 8081:8081
-      - 8433:8433
-    volumes:
-      - ./pms/application_configuration.json:/opt/app/policy-agent/data/application_configuration.json:ro
-      - ./pms/application-policyagent.yaml:/opt/app/policy-agent/config/application.yaml:ro
-    # For using own certs instead of the default ones (built into the container),
-    # place them in pms/ directory, update the application-policyagent.yaml file, and uncomment the following lines
-    #  - ./pms/keystore-policyagent.jks:/opt/app/policy-agent/etc/cert/keystore.jks:ro
-    #  - ./pms/truststore-policyagent.jks:/opt/app/policy-agent/etc/cert/truststore.jks:ro
-    #  - ./pms/application-policyagent.yaml:/opt/app/policy-agent/config/application.yaml:ro
-
-  a1-sim-OSC:
-    image: nexus3.o-ran-sc.org:10004/o-ran-sc/a1-simulator:2.1.0
-    container_name: a1-sim-OSC
-    networks:
-      - default
-    ports:
-      - 30001:8085
-      - 30002:8185
-    environment:
-      - A1_VERSION=OSC_2.1.0
-      - REMOTE_HOSTS_LOGGING=1
-      - ALLOW_HTTP=true
-
-  a1-sim-STD:
-    image: nexus3.o-ran-sc.org:10004/o-ran-sc/a1-simulator:2.1.0
-    container_name: a1-sim-STD
-    networks:
-      - default
-    ports:
-      - 30003:8085
-      - 30004:8185
-    environment:
-      - A1_VERSION=STD_1.1.3
-      - REMOTE_HOSTS_LOGGING=1
-      - ALLOW_HTTP=true
-
-  policy-control-panel:
-    image: nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-controlpanel:2.2.0
-    container_name: policy-control-panel
-    networks:
-      - default
-    ports:
-      - 8080:8080
-      - 8082:8082
-
-  zookeeper:
-    image: nexus3.onap.org:10001/onap/dmaap/zookeeper:6.0.3
-    container_name: zookeeper
-    ports:
-      - "2181:2181"
-    environment:
-     ZOOKEEPER_REPLICAS: 1
-     ZOOKEEPER_TICK_TIME: 2000
-     ZOOKEEPER_SYNC_LIMIT: 5
-     ZOOKEEPER_INIT_LIMIT: 10
-     ZOOKEEPER_MAX_CLIENT_CNXNS: 200
-     ZOOKEEPER_AUTOPURGE_SNAP_RETAIN_COUNT: 3
-     ZOOKEEPER_AUTOPURGE_PURGE_INTERVAL: 24
-     ZOOKEEPER_CLIENT_PORT: 2181
-     KAFKA_OPTS: -Djava.security.auth.login.config=/etc/zookeeper/secrets/jaas/zk_server_jaas.conf -Dzookeeper.kerberos.removeHostFromPrincipal=true -Dzookeeper.kerberos.removeRealmFromPrincipal=true -Dzookeeper.authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider -Dzookeeper.requireClientAuthScheme=sasl
-     ZOOKEEPER_SERVER_ID: 1
-    volumes:
-      -  ./zk/zk_server_jaas.conf:/etc/zookeeper/secrets/jaas/zk_server_jaas.conf
-    networks:
-      - default
-
-  kafka:
-   image: nexus3.onap.org:10001/onap/dmaap/kafka111:1.0.4
-   container_name: kafka
-   ports:
-    - "9092:9092"
-   environment:
-    enableCadi: 'false'
-    KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
-    KAFKA_ZOOKEEPER_CONNECTION_TIMEOUT_MS: 40000
-    KAFKA_ZOOKEEPER_SESSION_TIMEOUT_MS: 40000
-    KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL_PLAINTEXT:PLAINTEXT,EXTERNAL_PLAINTEXT:PLAINTEXT
-    KAFKA_ADVERTISED_LISTENERS: INTERNAL_PLAINTEXT://kafka:9092
-    KAFKA_LISTENERS: INTERNAL_PLAINTEXT://0.0.0.0:9092
-    KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL_PLAINTEXT
-    KAFKA_CONFLUENT_SUPPORT_METRICS_ENABLE: 'false'
-    KAFKA_OPTS: -Djava.security.auth.login.config=/etc/kafka/secrets/jaas/zk_client_jaas.conf
-    KAFKA_ZOOKEEPER_SET_ACL: 'true'
-    KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
-    # Reduced the number of partitions only to avoid the timeout error for the first subscribe call in slow environment
-    KAFKA_OFFSETS_TOPIC_NUM_PARTITIONS: 1
-   volumes:
-     -  ./kafka/zk_client_jaas.conf:/etc/kafka/secrets/jaas/zk_client_jaas.conf
-   networks:
-      - default
-   depends_on:
-    - zookeeper
-
-  dmaap:
-    image: nexus3.onap.org:10001/onap/dmaap/dmaap-mr:1.1.18
-    container_name: dmaap-mr
-    ports:
-      - "3904:3904"
-      - "3905:3905"
-    environment:
-     enableCadi: 'false'
-    volumes:
-      - ./mr/MsgRtrApi.properties:/appl/dmaapMR1/bundleconfig/etc/appprops/MsgRtrApi.properties
-      - ./mr/logback.xml:/appl/dmaapMR1/bundleconfig/etc/logback.xml
-      - ./mr/cadi.properties:/appl/dmaapMR1/etc/cadi.properties
-    networks:
-      - default
-    depends_on:
-      - zookeeper
-      - kafka
\ No newline at end of file
diff --git a/docker-compose/withDmaap_nosdnc/pms/application-policyagent.yaml b/docker-compose/withDmaap_nosdnc/pms/application-policyagent.yaml
deleted file mode 100755
index 58b3f81..0000000
--- a/docker-compose/withDmaap_nosdnc/pms/application-policyagent.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
-spring:
-  profiles:
-    active: prod
-  main:
-    allow-bean-definition-overriding: true
-  aop:
-    auto: false
-management:
-  endpoints:
-    web:
-      exposure:
-        include: "loggers,logfile,health,info,metrics,threaddump,heapdump"
-
-logging:
-  level:
-    ROOT: ERROR
-    org.springframework: ERROR
-    org.springframework.data: ERROR
-    org.springframework.web.reactive.function.client.ExchangeFunctions: ERROR
-    org.oransc.policyagent: TRACE
-  file: /var/log/policy-agent/application.log
-server:
-   port : 8433
-   http-port: 8081
-   ssl:
-      key-store-type: JKS
-      key-store-password: policy_agent
-      key-store: /opt/app/policy-agent/etc/cert/keystore.jks
-      key-password: policy_agent
-      key-alias: policy_agent
-app:
-  filepath: /opt/app/policy-agent/data/application_configuration.json
-  webclient:
-    trust-store-used: false
-    trust-store-password: policy_agent
-    trust-store: /opt/app/policy-agent/etc/cert/truststore.jks
-
diff --git a/docker-compose/withDmaap_nosdnc/pms/application_configuration.json b/docker-compose/withDmaap_nosdnc/pms/application_configuration.json
deleted file mode 100644
index 0925703..0000000
--- a/docker-compose/withDmaap_nosdnc/pms/application_configuration.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
-    "config":{
-       "//description":"Application configuration",
-       "ric":[
-          {
-             "name":"ric1",
-             "baseUrl":"https://a1-sim-OSC:8185/",
-             "managedElementIds":[
-                "kista_1",
-                "kista_2"
-             ]
-          },
-          {
-             "name":"ric2",
-             "baseUrl":"https://a1-sim-STD:8185/",
-             "managedElementIds":[
-                "kista_1",
-                "kista_2"
-             ]
-          }
-       ],
-       "streams_publishes":{
-          "dmaap_publisher":{
-             "type":"message_router",
-             "dmaap_info":{
-                "topic_url":"http://dmaap-mr:3904/events/A1-POLICY-AGENT-WRITE"
-             }
-          }
-       },
-       "streams_subscribes":{
-          "dmaap_subscriber":{
-             "type":"message_router",
-             "dmaap_info":{
-                "topic_url":"http://dmaap-mr:3904/events/A1-POLICY-AGENT-READ/users/policy-agent?timeout=15000&limit=100"
-             }
-          }
-       }
-    }
- }
\ No newline at end of file
diff --git a/policy-agent/.gitignore b/policy-agent/.gitignore
index 602050b..7daab97 100644
--- a/policy-agent/.gitignore
+++ b/policy-agent/.gitignore
@@ -6,3 +6,4 @@
 .checkstyle
 policy-agent.iml
 config
+/bin/
diff --git a/test/auto-test/FTC1.sh b/test/auto-test/FTC1.sh
index 144ac36..9c0254f 100755
--- a/test/auto-test/FTC1.sh
+++ b/test/auto-test/FTC1.sh
@@ -24,7 +24,7 @@
 INCLUDED_IMAGES="CBS CONSUL CP CR MR PA RICSIM SDNC"
 
 #SUPPORTED TEST ENV FILE
-SUPPORTED_PROFILES="ONAP-MASTER ONAP-GUILIN ORAN-CHERRY"
+SUPPORTED_PROFILES="ONAP-GUILIN ONAP-HONOLULU  ORAN-CHERRY ORAN-DAWN"
 
 . ../common/testcase_common.sh  $@
 . ../common/agent_api_functions.sh
diff --git a/test/auto-test/FTC10.sh b/test/auto-test/FTC10.sh
index ca545b2..77a6c34 100755
--- a/test/auto-test/FTC10.sh
+++ b/test/auto-test/FTC10.sh
@@ -23,7 +23,7 @@
 INCLUDED_IMAGES="CBS CONSUL CP CR MR PA RICSIM"
 
 #SUPPORTED TEST ENV FILE
-SUPPORTED_PROFILES="ONAP-MASTER ONAP-GUILIN ORAN-CHERRY"
+SUPPORTED_PROFILES="ONAP-GUILIN ONAP-HONOLULU  ORAN-CHERRY ORAN-DAWN"
 
 . ../common/testcase_common.sh $@
 . ../common/agent_api_functions.sh
diff --git a/test/auto-test/FTC100.sh b/test/auto-test/FTC100.sh
index 4b2e162..34705f4 100755
--- a/test/auto-test/FTC100.sh
+++ b/test/auto-test/FTC100.sh
@@ -23,9 +23,8 @@
 #App names to include in the test, space separated list
 INCLUDED_IMAGES="CBS CONSUL CP CR MR PA RICSIM SDNC"
 
-
 #SUPPORTED TEST ENV FILE
-SUPPORTED_PROFILES="ONAP-MASTER ONAP-GUILIN ORAN-CHERRY"
+SUPPORTED_PROFILES="ONAP-GUILIN ONAP-HONOLULU  ORAN-CHERRY ORAN-DAWN"
 
 . ../common/testcase_common.sh  $@
 . ../common/agent_api_functions.sh
diff --git a/test/auto-test/FTC110.sh b/test/auto-test/FTC110.sh
index 0406c40..50e3f37 100755
--- a/test/auto-test/FTC110.sh
+++ b/test/auto-test/FTC110.sh
@@ -24,7 +24,7 @@
 INCLUDED_IMAGES="CBS CONSUL CP CR MR PA RICSIM"
 
 #SUPPORTED TEST ENV FILE
-SUPPORTED_PROFILES="ONAP-MASTER ONAP-GUILIN ORAN-CHERRY"
+SUPPORTED_PROFILES="ONAP-GUILIN ONAP-HONOLULU  ORAN-CHERRY ORAN-DAWN"
 
 . ../common/testcase_common.sh  $@
 . ../common/agent_api_functions.sh
diff --git a/test/auto-test/FTC1100.sh b/test/auto-test/FTC1100.sh
index 4672cb2..3ad18f3 100755
--- a/test/auto-test/FTC1100.sh
+++ b/test/auto-test/FTC1100.sh
@@ -24,7 +24,7 @@
 INCLUDED_IMAGES="ECS PRODSTUB CR RICSIM CP"
 
 #SUPPORTED TEST ENV FILE
-SUPPORTED_PROFILES="ONAP-MASTER ORAN-CHERRY"
+SUPPORTED_PROFILES="ONAP-HONOLULU  ORAN-CHERRY ORAN-DAWN"
 
 . ../common/testcase_common.sh  $@
 . ../common/ecs_api_functions.sh
diff --git a/test/auto-test/FTC150.sh b/test/auto-test/FTC150.sh
index daeb3c7..ab1e8a6 100755
--- a/test/auto-test/FTC150.sh
+++ b/test/auto-test/FTC150.sh
@@ -24,7 +24,7 @@
 INCLUDED_IMAGES="RICSIM SDNC"
 
 #SUPPORTED TEST ENV FILE
-SUPPORTED_PROFILES="ONAP-MASTER ONAP-GUILIN ORAN-CHERRY"
+SUPPORTED_PROFILES="ONAP-GUILIN ONAP-HONOLULU  ORAN-CHERRY ORAN-DAWN"
 
 . ../common/testcase_common.sh  $@
 . ../common/controller_api_functions.sh
diff --git a/test/auto-test/FTC1800.sh b/test/auto-test/FTC1800.sh
index caec939..f807967 100755
--- a/test/auto-test/FTC1800.sh
+++ b/test/auto-test/FTC1800.sh
@@ -24,7 +24,7 @@
 INCLUDED_IMAGES="ECS PRODSTUB CR CP"
 
 #SUPPORTED TEST ENV FILE
-SUPPORTED_PROFILES="ONAP-MASTER ORAN-CHERRY"
+SUPPORTED_PROFILES="ONAP-HONOLULU  ORAN-CHERRY ORAN-DAWN"
 
 . ../common/testcase_common.sh  $@
 . ../common/ecs_api_functions.sh
diff --git a/test/auto-test/FTC300.sh b/test/auto-test/FTC300.sh
index 3973282..713d330 100755
--- a/test/auto-test/FTC300.sh
+++ b/test/auto-test/FTC300.sh
@@ -23,7 +23,7 @@
 INCLUDED_IMAGES="CBS CONSUL CP CR MR PA RICSIM SDNC"
 
 #SUPPORTED TEST ENV FILE
-SUPPORTED_PROFILES="ONAP-MASTER ONAP-GUILIN ORAN-CHERRY"
+SUPPORTED_PROFILES="ONAP-GUILIN ONAP-HONOLULU  ORAN-CHERRY ORAN-DAWN"
 
 . ../common/testcase_common.sh  $@
 . ../common/agent_api_functions.sh
diff --git a/test/auto-test/FTC310.sh b/test/auto-test/FTC310.sh
index eec4542..674df8c 100755
--- a/test/auto-test/FTC310.sh
+++ b/test/auto-test/FTC310.sh
@@ -24,7 +24,7 @@
 INCLUDED_IMAGES="CBS CONSUL CP CR MR PA RICSIM"
 
 #SUPPORTED TEST ENV FILE
-SUPPORTED_PROFILES="ONAP-MASTER ONAP-GUILIN ORAN-CHERRY"
+SUPPORTED_PROFILES="ONAP-GUILIN ONAP-HONOLULU  ORAN-CHERRY ORAN-DAWN"
 
 . ../common/testcase_common.sh  $@
 . ../common/agent_api_functions.sh
diff --git a/test/auto-test/FTC350.sh b/test/auto-test/FTC350.sh
index 0605944..4df0a15 100755
--- a/test/auto-test/FTC350.sh
+++ b/test/auto-test/FTC350.sh
@@ -23,7 +23,7 @@
 INCLUDED_IMAGES="CBS CONSUL CP CR MR PA RICSIM SDNC"
 
 #SUPPORTED TEST ENV FILE
-SUPPORTED_PROFILES="ONAP-MASTER ONAP-GUILIN ORAN-CHERRY"
+SUPPORTED_PROFILES="ONAP-GUILIN ONAP-HONOLULU  ORAN-CHERRY ORAN-DAWN"
 
 . ../common/testcase_common.sh  $@
 . ../common/agent_api_functions.sh
diff --git a/test/auto-test/FTC800.sh b/test/auto-test/FTC800.sh
index c90940c..ceda58c 100755
--- a/test/auto-test/FTC800.sh
+++ b/test/auto-test/FTC800.sh
@@ -23,7 +23,7 @@
 INCLUDED_IMAGES="CBS CONSUL CP CR MR PA RICSIM SDNC"
 
 #SUPPORTED TEST ENV FILE
-SUPPORTED_PROFILES="ONAP-MASTER ONAP-GUILIN ORAN-CHERRY"
+SUPPORTED_PROFILES="ONAP-GUILIN ONAP-HONOLULU  ORAN-CHERRY ORAN-DAWN"
 
 . ../common/testcase_common.sh  $@
 . ../common/agent_api_functions.sh
diff --git a/test/auto-test/FTC810.sh b/test/auto-test/FTC810.sh
index 7ac759c..c5d284a 100755
--- a/test/auto-test/FTC810.sh
+++ b/test/auto-test/FTC810.sh
@@ -23,7 +23,7 @@
 INCLUDED_IMAGES="CBS CONSUL CP CR MR PA RICSIM SDNC"
 
 #SUPPORTED TEST ENV FILE
-SUPPORTED_PROFILES="ONAP-MASTER ONAP-GUILIN ORAN-CHERRY"
+SUPPORTED_PROFILES="ONAP-GUILIN ONAP-HONOLULU  ORAN-CHERRY ORAN-DAWN"
 
 . ../common/testcase_common.sh  $@
 . ../common/agent_api_functions.sh
diff --git a/test/auto-test/FTC850.sh b/test/auto-test/FTC850.sh
index 3b65b10..324044e 100755
--- a/test/auto-test/FTC850.sh
+++ b/test/auto-test/FTC850.sh
@@ -23,7 +23,7 @@
 INCLUDED_IMAGES="CBS CONSUL CP CR MR PA RICSIM SDNC"
 
 #SUPPORTED TEST ENV FILE
-SUPPORTED_PROFILES="ONAP-MASTER ONAP-GUILIN ORAN-CHERRY"
+SUPPORTED_PROFILES="ONAP-GUILIN ONAP-HONOLULU  ORAN-CHERRY ORAN-DAWN"
 
 . ../common/testcase_common.sh  $@
 . ../common/agent_api_functions.sh
diff --git a/test/auto-test/FTC900.sh b/test/auto-test/FTC900.sh
index 356301e..8a937ff 100755
--- a/test/auto-test/FTC900.sh
+++ b/test/auto-test/FTC900.sh
@@ -23,7 +23,7 @@
 INCLUDED_IMAGES="CBS CONSUL CP CR MR PA RICSIM"
 
 #SUPPORTED TEST ENV FILE
-SUPPORTED_PROFILES="ONAP-MASTER ONAP-GUILIN ORAN-CHERRY"
+SUPPORTED_PROFILES="ONAP-GUILIN ONAP-HONOLULU  ORAN-CHERRY ORAN-DAWN"
 
 . ../common/testcase_common.sh $@
 . ../common/agent_api_functions.sh
diff --git a/test/auto-test/PM_DEMO.sh b/test/auto-test/PM_DEMO.sh
index c43ad3e..fe85372 100755
--- a/test/auto-test/PM_DEMO.sh
+++ b/test/auto-test/PM_DEMO.sh
@@ -23,7 +23,7 @@
 INCLUDED_IMAGES="CBS CONSUL CP CR MR PA RICSIM SDNC"
 
 #SUPPORTED TEST ENV FILE
-SUPPORTED_PROFILES="ONAP-MASTER ONAP-GUILIN ORAN-CHERRY"
+SUPPORTED_PROFILES="ONAP-GUILIN ONAP-HONOLULU  ORAN-CHERRY ORAN-DAWN"
 
 . ../common/testcase_common.sh $@
 . ../common/agent_api_functions.sh
diff --git a/test/auto-test/PM_EI_DEMO.sh b/test/auto-test/PM_EI_DEMO.sh
index 2915b02..3f9f8fd 100755
--- a/test/auto-test/PM_EI_DEMO.sh
+++ b/test/auto-test/PM_EI_DEMO.sh
@@ -23,7 +23,7 @@
 INCLUDED_IMAGES="CBS CONSUL CP CR MR PA RICSIM SDNC ECS PRODSTUB RC"
 
 #SUPPORTED TEST ENV FILE
-SUPPORTED_PROFILES="ONAP-MASTER ORAN-CHERRY"
+SUPPORTED_PROFILES="ONAP-HONOLULU  ORAN-CHERRY ORAN-DAWN"
 
 . ../common/testcase_common.sh $@
 . ../common/agent_api_functions.sh
@@ -72,8 +72,6 @@
 
 start_policy_agent
 
-start_rapp_catalogue
-
 start_cr
 
 start_prod_stub
diff --git a/test/auto-test/README.md b/test/auto-test/README.md
index 82ff47b..005ee0a 100644
--- a/test/auto-test/README.md
+++ b/test/auto-test/README.md
@@ -15,7 +15,7 @@
 ## How to run
 A test script, for example FTC1, is executed from the cmd line using the script filename and one or more parameters:
 
- ./FTC1.sh remote --env-file ../common/test_env-oran-cherry
+ ./FTC1.sh remote --env-file ../common/test_env-oran-cherry.sh
 
 See the README.md in  `../common/` for all details about available parameters and their meaning.
 
diff --git a/test/common/README.md b/test/common/README.md
index 21475c0..b4754cd 100644
--- a/test/common/README.md
+++ b/test/common/README.md
@@ -68,18 +68,22 @@
 
 | arg list |
 |--|
-| `local|remote|remote-remove [auto-clean] [--stop-at-error] [--ricsim-prefix <prefix> ] [ --env-file <environment-filename> ]  [--use-local-image <app-nam> [<app-name>]*]` |
+| `remote|remote-remove --env-file <environment-filename> [release] [auto-clean] [--stop-at-error] [--ricsim-prefix <prefix> ] [--use-local-image <app-nam>+]  [--use-snapshot-image <app-nam>+] [--use-staging-image <app-nam>+] [--use-release-image <app-nam>+]` |
 
 | parameter | description |
 |-|-|
-| `local` | only locally built images (in local docker respository) will be used for the Non-RT RIC components. CBS, Consul, DB will still use remote nexus images |
-| `remote` | only remote images from nexus will be used. Images pulled if not present in local docker repository |
-| `remote-remove` | same as remote but all images are removed first so that fresh images are pulled when running |
-| `auto-clean` | all containers will be automatically stopped and removed when the test case is complete. Requires the function 'auto_clean_containers' to be included last in the applicable auto-test script |
-| `--stop-at-error` | intended for debugging and make the script stop at first 'FAIL' and save all logs with a prefix 'STOP_AT_ERROR' |
-| `--ricsim-prefix <prefix>` | use another prefix for the ric simulator container name than the standard 'ricsim'. Note that the testscript has to read and use the env var `$RIC_SIM_PREFIX` instead of a hardcoded name of the ric(s). |
-| `--env-file` | point to a file with environment variables (the previous default, test_env.sh, replaced with one env file for each branch in test/common) |
-| `--use-local-image <app-nam> [<app-name>]*` | only applicable when running as 'remote' or 'remote-remove'. Mainly for debugging when a locally built image shall be used together with other remote images from nexus.Accepts a space separated list of PA, CP, RICSIM, SDNC, RC for Policy Agent, Control Panel, A1-controller, Ric simulator, RAPP Catalogue |
+| `remote` | Use images from remote repositories. Can be overridden for individual images using the '--use_xxx' flags |
+| `remote-remove` | Same as 'remote' but will also try to pull fresh images from remote repositories |
+| `--env-file` | The script will use the supplied file to read environment variables from |
+| `release` | If this flag is given the script will use release version of the images |
+| `auto-clean` | If the function 'auto_clean_containers' is present in the end of the test script then all containers will be stopped and removed. If 'auto-clean' is not given then the function has no effect |
+| `--stop-at-error` | The script will stop when the first failed test or configuration |
+| `--ricsim-prefix <prefix>` | The a1 simulator will use the supplied string as container prefix instead of 'ricsim'. Note that the testscript has to read and use the env var `$RIC_SIM_PREFIX` instead of a hardcoded name of the ric(s). |
+| `--use-local-image` | The script will use local images for the supplied apps, space separated list of app short names |
+| `--use-snapshot-image` | The script will use images from the nexus snapshot repo for the supplied apps, space separated list of app short names |
+| `--use-staging-image` | The script will use images from the nexus staging repo for the supplied apps, space separated list of app short names |
+| `--use-release-image` | The script will use images from the nexus release repo for the supplied apps, space separated list of app short names |
+| `help` | Print this info along with the test script description and the list of app short names supported |
 
 
 ## Function: print_result ##
diff --git a/test/common/test_env-onap-guilin.sh b/test/common/test_env-onap-guilin.sh
index 1dc2b36..9b85bf0 100644
--- a/test/common/test_env-onap-guilin.sh
+++ b/test/common/test_env-onap-guilin.sh
@@ -18,64 +18,123 @@
 #
 #Profile for ONAP guilin release
 TEST_ENV_PROFILE="ONAP-GUILIN"
+
+########################################
+## Nexus repo settings
+########################################
+
+# Nexus repos for developed images
 NEXUS_PROXY_REPO="nexus3.onap.org:10001/"
+NEXUS_RELEASE_REPO="nexus3.onap.org:10002/"
+NEXUS_SNAPSHOT_REPO="nexus3.onap.org:10003/"
+NEXUS_STAGING_REPO=$NEXUS_SNAPSHOT_REPO  #staging repo not used in ONAP, using snapshot
 
-# Set up the image and tags for the test. Do not add the image tag to the image names.
+# Nexus repos for images used by test (not developed by the project)
+NEXUS_RELEASE_REPO_ORAN="nexus3.o-ran-sc.org:10002/" # Only for released ORAN images
+NEXUS_RELEASE_REPO_ONAP=$NEXUS_RELEASE_REPO
 
-# NOTE: A env var for each container is created by the test script.
-# This var will point to the local or remote var depending on how
-# the test script is started. The name format is <container-name>_IMAGE, ie with 'LOCAL' or 'REMOTE'.
+########################################
+# Set up of image and tags for the test.
+########################################
 
-# Tag for guilin branch
-# Remote Policy Agent image and tag
-POLICY_AGENT_REMOTE_IMAGE="nexus3.onap.org:10003/onap/ccsdk-oran-a1policymanagementservice"
-POLICY_AGENT_REMOTE_IMAGE_TAG="1.0.2-SNAPSHOT"
+# NOTE: One environment variable containing the image name and tag is create by the test script
+# for each image from the env variables below.
+# The variable is created by removing the suffix "_BASE" from the base image variable name.
+# Example: POLICY_AGENT_IMAGE_BASE -> POLICY_AGENT_IMAGE
+# This var will point to the local or remote image depending on cmd line arguments.
+# In addition, the repo and the image tag version are selected from the list of image tags based on the cmd line argurment.
+# For images built by the script, only tag #1 shall be specified
+# For project images, only tag #1, #2, #3 and #4 shall be specified
+# For ORAN images (non project), only tag #5 shall be specified
+# For ONAP images (non project), only tag #6 shall be specified
+# For all other images, only tag #7 shall be specified
+# 1 XXX_LOCAL: local images: <image-name>:<local-tag>
+# 2 XXX_REMOTE_SNAPSHOT: snapshot images: <snapshot-nexus-repo><image-name>:<snapshot-tag>
+# 3 XXX_REMOTE: staging images: <staging-nexus-repo><image-name>:<staging-tag>
+# 4 XXX_REMOTE_RELEASE: release images: <release-nexus-repo><image-name>:<release-tag>
+# 5 XXX_REMOTE_RELEASE_ORAN: ORAN release images: <oran-release-nexus-repo><image-name>:<release-tag>
+# 6 XXX_REMOTE_RELEASE_ONAP: ONAP release images: <onap-release-nexus-repo><image-name>:<release-tag>
+# 7 XXX_PROXY: other images, not produced by the project: <proxy-nexus-repo><mage-name>:<proxy-tag>
 
 
-# Control Panel remote image and tag
-CONTROL_PANEL_REMOTE_IMAGE="nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-controlpanel"
-CONTROL_PANEL_REMOTE_IMAGE_TAG="2.0.0"
+# Policy Agent image and tags
+POLICY_AGENT_IMAGE_BASE="onap/ccsdk-oran-a1policymanagementservice"
+POLICY_AGENT_IMAGE_TAG_LOCAL="1.0.2-SNAPSHOT"
+POLICY_AGENT_IMAGE_TAG_REMOTE_SNAPSHOT="1.0.2-SNAPSHOT"
+POLICY_AGENT_IMAGE_TAG_REMOTE="1.0.2-SNAPSHOT" #Will use snapshot repo
+POLICY_AGENT_IMAGE_TAG_REMOTE_RELEASE="1.0.1"
+
 
 # Tag for guilin branch
 # SDNC A1 Controller remote image and tag
-SDNC_A1_CONTROLLER_REMOTE_IMAGE="nexus3.onap.org:10003/onap/sdnc-image"
-SDNC_A1_CONTROLLER_REMOTE_IMAGE_TAG="2.0.2-STAGING-latest"
+SDNC_A1_CONTROLLER_IMAGE_BASE="onap/sdnc-image"
+SDNC_A1_CONTROLLER_IMAGE_TAG_REMOTE_SNAPSHOT="2.0.5-STAGING-latest"
+SDNC_A1_CONTROLLER_IMAGE_TAG_REMOTE="2.0.5-STAGING-latest"
+SDNC_A1_CONTROLLER_IMAGE_TAG_REMOTE_RELEASE="2.0.4"   #Will use snapshot repo
 
 
 #SDNC DB remote image and tag
-SDNC_DB_REMOTE_IMAGE=$NEXUS_PROXY_REPO"mysql/mysql-server"
-SDNC_DB_REMOTE_IMAGE_TAG="5.6"
-#No local image for DB, remote image always used
+#The DB is part of SDNC so handled in the same way as SDNC
+SDNC_DB_IMAGE_BASE="mysql/mysql-server"
+SDNC_DB_IMAGE_TAG_REMOTE_PROXY="5.6"
 
 
-# Near RT RIC Simulator remote image and tag
-RIC_SIM_REMOTE_IMAGE="nexus3.o-ran-sc.org:10004/o-ran-sc/a1-simulator"
-RIC_SIM_REMOTE_IMAGE_TAG="2.0.0"
+# Control Panel image and tag - uses bronze release
+CONTROL_PANEL_IMAGE_BASE="o-ran-sc/nonrtric-controlpanel"
+CONTROL_PANEL_IMAGE_TAG_REMOTE_RELEASE_ORAN="2.0.0"
+
+
+# Near RT RIC Simulator image and tags - uses bronze release
+RIC_SIM_IMAGE_BASE="o-ran-sc/a1-simulator"
+RIC_SIM_IMAGE_TAG_REMOTE_RELEASE_ORAN="2.0.0"
 
 
 #Consul remote image and tag
-CONSUL_REMOTE_IMAGE=$NEXUS_PROXY_REPO"consul"
-CONSUL_REMOTE_IMAGE_TAG="1.7.2"
+CONSUL_IMAGE_BASE="consul"
+CONSUL_IMAGE_TAG_REMOTE_PROXY="1.7.2"
 #No local image for Consul, remote image always used
 
 
 #CBS remote image and tag
-CBS_REMOTE_IMAGE="nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding.app-app"
-CBS_REMOTE_IMAGE_TAG="2.3.0"
+CBS_IMAGE_BASE="onap/org.onap.dcaegen2.platform.configbinding.app-app"
+CBS_IMAGE_TAG_REMOTE_RELEASE_ONAP="2.3.0"
 #No local image for CBS, remote image always used
 
 
 #MR stub image and tag
-MRSTUB_LOCAL_IMAGE="mrstub"
-MRSTUB_LOCAL_IMAGE_TAG="latest"
+MRSTUB_IMAGE_BASE="mrstub"
+MRSTUB_IMAGE_TAG_LOCAL="latest"
 #No remote image for MR stub, local image always used
 
+
 #Callback receiver image and tag
-CR_LOCAL_IMAGE="callback-receiver"
-CR_LOCAL_IMAGE_TAG="latest"
+CR_IMAGE_BASE="callback-receiver"
+CR_IMAGE_TAG_LOCAL="latest"
 #No remote image for CR, local image always used
 
-# Common env var for auto-test. Vars used by docker-compose need to be exported
+
+#Producer stub image and tag
+PROD_STUB_IMAGE_BASE="producer-stub"
+PROD_STUB_IMAGE_TAG_LOCAL="latest"
+#No remote image for producer stub, local image always used
+
+
+# List of app short names produced by the project
+PROJECT_IMAGES_APP_NAMES="PA SDNC"
+
+# List of app short names which images pulled from ORAN
+ORAN_IMAGES_APP_NAMES="CP RICSIM"
+
+# List of app short names which images pulled from ONAP
+ONAP_IMAGES_APP_NAMES=""   # Not used
+
+########################################
+# Detailed settings per app
+########################################
+
+# Vars used by docker-compose need to be exported
+
+
 export DOCKER_SIM_NWNAME="nonrtric-docker-net"                  # Name of docker private network
 
 export POLICY_AGENT_EXTERNAL_PORT=8081                          # Policy Agent container external port (host -> container)
@@ -140,6 +199,12 @@
 export CONTROL_PANEL_INTERNAL_PORT=8080                         # Control Panel container external port (host -> container)
 CONTROL_PANEL_LOGPATH="/logs/nonrtric-controlpanel.log"         # Path the application log in the Control Panel container
 
+
+########################################
+# Setting for common curl-base function
+########################################
+
+
 UUID=""                                                         # UUID used as prefix to the policy id to simulate a real UUID
                                                                 # Testscript need to set the UUID to use other this empty prefix is used
 
diff --git a/test/common/test_env-onap-master.sh b/test/common/test_env-onap-honolulu.sh
similarity index 67%
rename from test/common/test_env-onap-master.sh
rename to test/common/test_env-onap-honolulu.sh
index 29647bd..a8c852e 100644
--- a/test/common/test_env-onap-master.sh
+++ b/test/common/test_env-onap-honolulu.sh
@@ -16,84 +16,134 @@
 #  limitations under the License.
 #  ============LICENSE_END=================================================
 #
-#Profile for ONAP master
-TEST_ENV_PROFILE="ONAP-MASTER"
+#Profile for ONAP honolulu release
+TEST_ENV_PROFILE="ONAP-HONOLULU"
+
+########################################
+## Nexus repo settings
+########################################
+
+# Nexus repos for developed images
 NEXUS_PROXY_REPO="nexus3.onap.org:10001/"
+NEXUS_RELEASE_REPO="nexus3.onap.org:10002/"
+NEXUS_SNAPSHOT_REPO="nexus3.onap.org:10003/"
+NEXUS_STAGING_REPO=$NEXUS_SNAPSHOT_REPO  #staging repo not used in ONAP, using snapshot
 
-# Set up the image and tags for the test. Do not add the image tag to the image names.
+# Nexus repos for images used by test (not developed by the project)
+NEXUS_RELEASE_REPO_ORAN="nexus3.o-ran-sc.org:10002/" # Only for released ORAN images
+NEXUS_RELEASE_REPO_ONAP=$NEXUS_RELEASE_REPO
 
-# NOTE: A env var for each container is created by the test script.
-# This var will point to the local or remote var depending on how
-# the test script is started. The name format is <container-name>_IMAGE, ie with 'LOCAL' or 'REMOTE'.
+########################################
+# Set up of image and tags for the test.
+########################################
 
-# Local Policy Agent image and tag
-POLICY_AGENT_LOCAL_IMAGE="onap/ccsdk-oran-a1policymanagementservice"
-POLICY_AGENT_LOCAL_IMAGE_TAG="1.1.0-SNAPSHOT"
-# Remote Policy Agent image and tag
-POLICY_AGENT_REMOTE_IMAGE="nexus3.onap.org:10003/onap/ccsdk-oran-a1policymanagementservice"
-POLICY_AGENT_REMOTE_IMAGE_TAG="1.1.0-SNAPSHOT"
+# NOTE: One environment variable containing the image name and tag is create by the test script
+# for each image from the env variables below.
+# The variable is created by removing the suffix "_BASE" from the base image variable name.
+# Example: POLICY_AGENT_IMAGE_BASE -> POLICY_AGENT_IMAGE
+# This var will point to the local or remote image depending on cmd line arguments.
+# In addition, the repo and the image tag version are selected from the list of image tags based on the cmd line argurment.
+# For images built by the script, only tag #1 shall be specified
+# For project images, only tag #1, #2, #3 and #4 shall be specified
+# For ORAN images (non project), only tag #5 shall be specified
+# For ONAP images (non project), only tag #6 shall be specified
+# For all other images, only tag #7 shall be specified
+# 1 XXX_LOCAL: local images: <image-name>:<local-tag>
+# 2 XXX_REMOTE_SNAPSHOT: snapshot images: <snapshot-nexus-repo><image-name>:<snapshot-tag>
+# 3 XXX_REMOTE: staging images: <staging-nexus-repo><image-name>:<staging-tag>
+# 4 XXX_REMOTE_RELEASE: release images: <release-nexus-repo><image-name>:<release-tag>
+# 5 XXX_REMOTE_RELEASE_ORAN: ORAN release images: <oran-release-nexus-repo><image-name>:<release-tag>
+# 6 XXX_REMOTE_RELEASE_ONAP: ONAP release images: <onap-release-nexus-repo><image-name>:<release-tag>
+# 7 XXX_PROXY: other images, not produced by the project: <proxy-nexus-repo><mage-name>:<proxy-tag>
 
-# Local ECS image and tag
-ECS_LOCAL_IMAGE="o-ran-sc/nonrtric-enrichment-coordinator-service"
-ECS_LOCAL_IMAGE_TAG="1.0.0-SNAPSHOT"
-# Remote ECS image and tag
-ECS_REMOTE_IMAGE="nexus3.o-ran-sc.org:10003/o-ran-sc/nonrtric-enrichment-coordinator-service"
-ECS_REMOTE_IMAGE_TAG="1.0.0-SNAPSHOT"
-
-# Control Panel local image and tag
-CONTROL_PANEL_LOCAL_IMAGE="o-ran-sc/nonrtric-controlpanel"
-CONTROL_PANEL_LOCAL_IMAGE_TAG="2.0.0-SNAPSHOT"
-# Control Panel remote image and tag
-CONTROL_PANEL_REMOTE_IMAGE="nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-controlpanel"
-CONTROL_PANEL_REMOTE_IMAGE_TAG="2.0.0"
+# Policy Agent image and tags
+POLICY_AGENT_IMAGE_BASE="onap/ccsdk-oran-a1policymanagementservice"
+POLICY_AGENT_IMAGE_TAG_LOCAL="1.1.1-SNAPSHOT"
+POLICY_AGENT_IMAGE_TAG_REMOTE_SNAPSHOT="1.1.1-SNAPSHOT"
+POLICY_AGENT_IMAGE_TAG_REMOTE="1.1.1-SNAPSHOT" #Will use snapshot repo
+POLICY_AGENT_IMAGE_TAG_REMOTE_RELEASE="1.1.1"
 
 
 # SDNC A1 Controller remote image and tag
-SDNC_A1_CONTROLLER_REMOTE_IMAGE="nexus3.onap.org:10003/onap/sdnc-image"
-SDNC_A1_CONTROLLER_REMOTE_IMAGE_TAG="2.1.0-STAGING-latest"
-
+SDNC_A1_CONTROLLER_IMAGE_BASE="onap/sdnc-image"
+SDNC_A1_CONTROLLER_IMAGE_TAG_LOCAL="2.1.1-SNAPSHOT" ###CHECK THIS
+SDNC_A1_CONTROLLER_IMAGE_TAG_REMOTE_SNAPSHOT="2.1.1-STAGING-latest"
+SDNC_A1_CONTROLLER_IMAGE_TAG_REMOTE="2.1.1-STAGING-latest"  #Will use snapshot repo
+SDNC_A1_CONTROLLER_IMAGE_TAG_REMOTE_RELEASE="2.1.1"
 
 #SDNC DB remote image and tag
-SDNC_DB_REMOTE_IMAGE=$NEXUS_PROXY_REPO"mysql/mysql-server"
-SDNC_DB_REMOTE_IMAGE_TAG="5.6"
-#No local image for DB, remote image always used
+#The DB is part of SDNC so handled in the same way as SDNC
+SDNC_DB_IMAGE_BASE="mysql/mysql-server"
+SDNC_DB_IMAGE_TAG_REMOTE_PROXY="5.6"
 
-# Near RT RIC Simulator local image and tag
-RIC_SIM_LOCAL_IMAGE="o-ran-sc/a1-simulator"
-RIC_SIM_LOCAL_IMAGE_TAG="latest"
-# Near RT RIC Simulator remote image and tag
-RIC_SIM_REMOTE_IMAGE="nexus3.o-ran-sc.org:10004/o-ran-sc/a1-simulator"
-RIC_SIM_REMOTE_IMAGE_TAG="2.1.0"
+
+# ECS image and tag - uses cherry release
+ECS_IMAGE_BASE="o-ran-sc/nonrtric-enrichment-coordinator-service"
+ECS_IMAGE_TAG_REMOTE_RELEASE_ORAN="1.0.0"
+
+
+# Control Panel image and tag - uses cherry release
+CONTROL_PANEL_IMAGE_BASE="o-ran-sc/nonrtric-controlpanel"
+CONTROL_PANEL_IMAGE_TAG_REMOTE_RELEASE_ORAN="2.1.0"
+
+
+# RAPP Catalogue image and tags - uses cherry release
+RAPP_CAT_IMAGE_BASE="o-ran-sc/nonrtric-r-app-catalogue"
+RAPP_CAT_IMAGE_TAG_REMOTE_RELEASE_ORAN="1.0.0"
+
+
+# Near RT RIC Simulator image and tags - uses cherry release
+RIC_SIM_IMAGE_BASE="o-ran-sc/a1-simulator"
+RIC_SIM_IMAGE_TAG_REMOTE_RELEASE_ORAN="2.1.0"
 
 
 #Consul remote image and tag
-CONSUL_REMOTE_IMAGE=$NEXUS_PROXY_REPO"consul"
-CONSUL_REMOTE_IMAGE_TAG="1.7.2"
+CONSUL_IMAGE_BASE="consul"
+CONSUL_IMAGE_TAG_REMOTE_PROXY="1.7.2"
 #No local image for Consul, remote image always used
 
 
 #CBS remote image and tag
-CBS_REMOTE_IMAGE="nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding.app-app"
-CBS_REMOTE_IMAGE_TAG="2.3.0"
+CBS_IMAGE_BASE="onap/org.onap.dcaegen2.platform.configbinding.app-app"
+CBS_IMAGE_TAG_REMOTE_RELEASE_ONAP="2.3.0"
 #No local image for CBS, remote image always used
 
 
 #MR stub image and tag
-MRSTUB_LOCAL_IMAGE="mrstub"
-MRSTUB_LOCAL_IMAGE_TAG="latest"
+MRSTUB_IMAGE_BASE="mrstub"
+MRSTUB_IMAGE_TAG_LOCAL="latest"
 #No remote image for MR stub, local image always used
 
+
 #Callback receiver image and tag
-CR_LOCAL_IMAGE="callback-receiver"
-CR_LOCAL_IMAGE_TAG="latest"
+CR_IMAGE_BASE="callback-receiver"
+CR_IMAGE_TAG_LOCAL="latest"
 #No remote image for CR, local image always used
 
+
 #Producer stub image and tag
-PROD_STUB_LOCAL_IMAGE="producer-stub"
-PROD_STUB_LOCAL_IMAGE_TAG="latest"
+PROD_STUB_IMAGE_BASE="producer-stub"
+PROD_STUB_IMAGE_TAG_LOCAL="latest"
 #No remote image for producer stub, local image always used
 
-# Common env var for auto-test. Vars used by docker-compose need to be exported
+
+# List of app short names produced by the project
+PROJECT_IMAGES_APP_NAMES="PA SDNC"
+
+# List of app short names which images pulled from ORAN
+ORAN_IMAGES_APP_NAMES="CP ECS RICSIM RC"
+
+# List of app short names which images pulled from ONAP
+ONAP_IMAGES_APP_NAMES=""   # Not used
+
+
+########################################
+# Detailed settings per app
+########################################
+
+# Vars used by docker-compose need to be exported
+
+
 export DOCKER_SIM_NWNAME="nonrtric-docker-net"                  # Name of docker private network
 
 export POLICY_AGENT_EXTERNAL_PORT=8081                          # Policy Agent container external port (host -> container)
@@ -171,12 +221,22 @@
 SDNC_ALIVE_URL="/apidoc/explorer/"                              # Base url path for SNDC API docs (for alive check)
 SDNC_KARAF_LOG="/opt/opendaylight/data/log/karaf.log"           # Path to karaf log
 
+export RAPP_CAT_APP_NAME="rapp-catalogue"                      # Name for the RAPP Catalogue
+export RAPP_CAT_EXTERNAL_PORT=8680                             # RAPP Catalogue container external port (host -> container)
+export RAPP_CAT_INTERNAL_PORT=8080                             # RAPP Catalogue container internal port (container -> container)
+export RAPP_CAT_EXTERNAL_SECURE_PORT=8633                      # RAPP Catalogue container external secure port (host -> container)
+export RAPP_CAT_INTERNAL_SECURE_PORT=8433                      # RAPP Catalogue container internal secure port (container -> container)
 
 export CONTROL_PANEL_APP_NAME="control-panel"                   # Name of the Control Panel container
 export CONTROL_PANEL_EXTERNAL_PORT=8080                         # Control Panel container external port (host -> container)
 export CONTROL_PANEL_INTERNAL_PORT=8080                         # Control Panel container external port (host -> container)
 CONTROL_PANEL_LOGPATH="/logs/nonrtric-controlpanel.log"         # Path the application log in the Control Panel container
 
+
+########################################
+# Setting for common curl-base function
+########################################
+
 UUID=""                                                         # UUID used as prefix to the policy id to simulate a real UUID
                                                                 # Testscript need to set the UUID to use other this empty prefix is used
 
@@ -198,4 +258,8 @@
 CR_RESTBASE="http://localhost:"$CR_EXTERNAL_PORT                # Base url to the Callback receiver REST interface
 CR_RESTBASE_SECURE="https://localhost:"$CR_EXTERNAL_SECURE_PORT # Base url to the secure Callback receiver REST interface
 CR_ADAPTER=$CR_RESTBASE                                         # Adapter holds the address the CR admin interface (REST only)
-                                                                # The values of this var is swiched between the two base url when needed
\ No newline at end of file
+                                                                # The values of this var is swiched between the two base url when needed
+
+RC_RESTBASE="http://localhost:"$RAPP_CAT_EXTERNAL_PORT          # Base url to the RAPP Catalogue REST interface
+RC_RESTBASE_SECURE="https://localhost:"$RAPP_CAT_EXTERNAL_SECURE_PORT # Base url to the secure RAPP Catalogue REST interface
+RC_ADAPTER=$RC_RESTBASE                                         # Adapter holds the address the RAPP Catalogue interface
\ No newline at end of file
diff --git a/test/common/test_env-oran-cherry.sh b/test/common/test_env-oran-cherry.sh
index 4650768..a0f8871 100755
--- a/test/common/test_env-oran-cherry.sh
+++ b/test/common/test_env-oran-cherry.sh
@@ -18,94 +18,144 @@
 #
 #Profile for ORAN Cherry
 TEST_ENV_PROFILE="ORAN-CHERRY"
-NEXUS_PROXY_REPO="nexus3.onap.org:10001/"
 
-# Set up the image and tags for the test. Do not add the image tag to the image names.
+########################################
+## Nexus repo settings
+########################################
 
-# NOTE: A env var for each container is created by the test script.
-# This var will point to the local or remote var depending on how
-# the test script is started. The name format is <container-name>_IMAGE, ie with 'LOCAL' or 'REMOTE'.
+# Nexus repos for developed images
+NEXUS_PROXY_REPO="nexus3.o-ran-sc.org:10001/"
+NEXUS_RELEASE_REPO="nexus3.o-ran-sc.org:10002/"
+NEXUS_SNAPSHOT_REPO="nexus3.o-ran-sc.org:10003/"
+NEXUS_STAGING_REPO="nexus3.o-ran-sc.org:10004/"
 
-# Local Policy Agent image and tag
-POLICY_AGENT_LOCAL_IMAGE="o-ran-sc/nonrtric-policy-agent"
-POLICY_AGENT_LOCAL_IMAGE_TAG="2.1.0-SNAPSHOT"
-# Remote Policy Agent image and tag
-POLICY_AGENT_REMOTE_IMAGE="nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-policy-agent"
-POLICY_AGENT_REMOTE_IMAGE_TAG="2.1.0"
+# Nexus repos for images used by test (not developed by the project)
+NEXUS_RELEASE_REPO_ONAP="nexus3.onap.org:10002/"  # Only for released ONAP images
+NEXUS_RELEASE_REPO_ORAN=$NEXUS_RELEASE_REPO
 
-# Local ECS image and tag
-ECS_LOCAL_IMAGE="o-ran-sc/nonrtric-enrichment-coordinator-service"
-ECS_LOCAL_IMAGE_TAG="1.0.0-SNAPSHOT"
-# Remote ECS image and tag
-ECS_REMOTE_IMAGE="nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-enrichment-coordinator-service"
-ECS_REMOTE_IMAGE_TAG="1.0.0"
+########################################
+# Set up of image and tags for the test.
+########################################
 
-# Control Panel local image and tag
-CONTROL_PANEL_LOCAL_IMAGE="o-ran-sc/nonrtric-controlpanel"
-CONTROL_PANEL_LOCAL_IMAGE_TAG="2.0.0-SNAPSHOT"
-# Control Panel remote image and tag
-CONTROL_PANEL_REMOTE_IMAGE="nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-controlpanel"
-CONTROL_PANEL_REMOTE_IMAGE_TAG="2.0.0"
+# NOTE: One environment variable containing the image name and tag is create by the test script
+# for each image from the env variables below.
+# The variable is created by removing the suffix "_BASE" from the base image variable name.
+# Example: POLICY_AGENT_IMAGE_BASE -> POLICY_AGENT_IMAGE
+# This var will point to the local or remote image depending on cmd line arguments.
+# In addition, the repo and the image tag version are selected from the list of image tags based on the cmd line argurment.
+# For images built by the script, only tag #1 shall be specified
+# For project images, only tag #1, #2, #3 and #4 shall be specified
+# For ORAN images (non project), only tag #5 shall be specified
+# For ONAP images (non project), only tag #6 shall be specified
+# For all other images, only tag #7 shall be specified
+# 1 XXX_LOCAL: local images: <image-name>:<local-tag>
+# 2 XXX_REMOTE_SNAPSHOT: snapshot images: <snapshot-nexus-repo><image-name>:<snapshot-tag>
+# 3 XXX_REMOTE: staging images: <staging-nexus-repo><image-name>:<staging-tag>
+# 4 XXX_REMOTE_RELEASE: release images: <release-nexus-repo><image-name>:<release-tag>
+# 5 XXX_REMOTE_RELEASE_ORAN: ORAN release images: <oran-release-nexus-repo><image-name>:<release-tag>
+# 6 XXX_REMOTE_RELEASE_ONAP: ONAP release images: <onap-release-nexus-repo><image-name>:<release-tag>
+# 7 XXX_PROXY: other images, not produced by the project: <proxy-nexus-repo><mage-name>:<proxy-tag>
 
 
-# SDNC A1 Controller local image and tag
-SDNC_A1_CONTROLLER_LOCAL_IMAGE="o-ran-sc/nonrtric-a1-controller"
-SDNC_A1_CONTROLLER_LOCAL_IMAGE_TAG="2.1.0-SNAPSHOT"
-# SDNC A1 Controller remote image and tag
-SDNC_A1_CONTROLLER_REMOTE_IMAGE="nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-a1-controller"
-SDNC_A1_CONTROLLER_REMOTE_IMAGE_TAG="2.1.0"
+# Policy Agent base image and tags
+POLICY_AGENT_IMAGE_BASE="o-ran-sc/nonrtric-policy-agent"
+POLICY_AGENT_IMAGE_TAG_LOCAL="2.1.0-SNAPSHOT"
+POLICY_AGENT_IMAGE_TAG_REMOTE_SNAPSHOT="2.1.0-SNAPSHOT"
+POLICY_AGENT_IMAGE_TAG_REMOTE="2.1.0"
+POLICY_AGENT_IMAGE_TAG_REMOTE_RELEASE="2.1.0"
+
+# ECS image and tags
+ECS_IMAGE_BASE="o-ran-sc/nonrtric-enrichment-coordinator-service"
+ECS_IMAGE_TAG_LOCAL="1.0.0-SNAPSHOT"
+ECS_IMAGE_TAG_REMOTE_SNAPSHOT="1.0.0-SNAPSHOT"
+ECS_IMAGE_TAG_REMOTE="1.0.0"
+ECS_IMAGE_TAG_REMOTE_RELEASE="1.0.0"
 
 
-# RAPP Catalogue local image and tag
-RAPP_CAT_LOCAL_IMAGE="o-ran-sc/nonrtric-r-app-catalogue"
-RAPP_CAT_LOCAL_IMAGE_TAG="1.0.0-SNAPSHOT"
-# RAPP Catalogue remote image and tag
-RAPP_CAT_REMOTE_IMAGE="nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-r-app-catalogue"
-RAPP_CAT_REMOTE_IMAGE_TAG="1.0.0"
+# Control Panel image and tags
+CONTROL_PANEL_IMAGE_BASE="o-ran-sc/nonrtric-controlpanel"
+CONTROL_PANEL_IMAGE_TAG_LOCAL="2.1.0-SNAPSHOT"
+CONTROL_PANEL_IMAGE_TAG_REMOTE_SNAPSHOT="2.1.0-SNAPSHOT"
+CONTROL_PANEL_IMAGE_TAG_REMOTE="2.1.0"
+CONTROL_PANEL_IMAGE_TAG_REMOTE_RELEASE="2.1.0"
+
+
+# SDNC A1 Controller image and tags
+SDNC_A1_CONTROLLER_IMAGE_BASE="o-ran-sc/nonrtric-a1-controller"
+SDNC_A1_CONTROLLER_IMAGE_TAG_LOCAL="2.0.1-SNAPSHOT"
+SDNC_A1_CONTROLLER_IMAGE_TAG_REMOTE_SNAPSHOT="2.0.1-SNAPSHOT"
+SDNC_A1_CONTROLLER_IMAGE_TAG_REMOTE="2.0.1"
+SDNC_A1_CONTROLLER_IMAGE_TAG_REMOTE_RELEASE="2.0.1"
 
 
 #SDNC DB remote image and tag
-SDNC_DB_REMOTE_IMAGE=$NEXUS_PROXY_REPO"mysql/mysql-server"
-SDNC_DB_REMOTE_IMAGE_TAG="5.6"
-#No local image for DB, remote image always used
+SDNC_DB_IMAGE_BASE="mysql/mysql-server"
+SDNC_DB_IMAGE_TAG_REMOTE_PROXY="5.6"
+#No local image for SSDNC DB, remote image always used
 
 
-# Near RT RIC Simulator local image and tag
-RIC_SIM_LOCAL_IMAGE="o-ran-sc/a1-simulator"
-RIC_SIM_LOCAL_IMAGE_TAG="latest"
-# Near RT RIC Simulator remote image and tag
-RIC_SIM_REMOTE_IMAGE="nexus3.o-ran-sc.org:10004/o-ran-sc/a1-simulator"
-RIC_SIM_REMOTE_IMAGE_TAG="2.1.0"
+# RAPP Catalogue image and tags
+RAPP_CAT_IMAGE_BASE="o-ran-sc/nonrtric-r-app-catalogue"
+RAPP_CAT_IMAGE_TAG_LOCAL="1.0.0-SNAPSHOT"
+RAPP_CAT_IMAGE_TAG_REMOTE_SNAPSHOT="1.0.0-SNAPSHOT"
+RAPP_CAT_IMAGE_TAG_REMOTE="1.0.0"
+RAPP_CAT_IMAGE_TAG_REMOTE_RELEASE="1.0.0"
+
+
+# Near RT RIC Simulator image and tags
+RIC_SIM_IMAGE_BASE="o-ran-sc/a1-simulator"
+RIC_SIM_IMAGE_TAG_LOCAL="latest"
+RIC_SIM_IMAGE_TAG_REMOTE_SNAPSHOT="2.1.0-SNAPSHOT"
+RIC_SIM_IMAGE_TAG_REMOTE="2.1.0"
+RIC_SIM_IMAGE_TAG_REMOTE_RELEASE="2.1.0"
 
 
 #Consul remote image and tag
-CONSUL_REMOTE_IMAGE=$NEXUS_PROXY_REPO"consul"
-CONSUL_REMOTE_IMAGE_TAG="1.7.2"
+CONSUL_IMAGE_BASE="consul"
+CONSUL_IMAGE_TAG_REMOTE_PROXY="1.7.2"
 #No local image for Consul, remote image always used
 
 
 #CBS remote image and tag
-CBS_REMOTE_IMAGE="nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding.app-app"
-CBS_REMOTE_IMAGE_TAG="2.3.0"
+CBS_IMAGE_BASE="onap/org.onap.dcaegen2.platform.configbinding.app-app"
+CBS_IMAGE_TAG_REMOTE_RELEASE_ONAP="2.3.0"
 #No local image for CBS, remote image always used
 
 
 #MR stub image and tag
-MRSTUB_LOCAL_IMAGE="mrstub"
-MRSTUB_LOCAL_IMAGE_TAG="latest"
+MRSTUB_IMAGE_BASE="mrstub"
+MRSTUB_IMAGE_TAG_LOCAL="latest"
 #No remote image for MR stub, local image always used
 
+
 #Callback receiver image and tag
-CR_LOCAL_IMAGE="callback-receiver"
-CR_LOCAL_IMAGE_TAG="latest"
+CR_IMAGE_BASE="callback-receiver"
+CR_IMAGE_TAG_LOCAL="latest"
 #No remote image for CR, local image always used
 
+
 #Producer stub image and tag
-PROD_STUB_LOCAL_IMAGE="producer-stub"
-PROD_STUB_LOCAL_IMAGE_TAG="latest"
+PROD_STUB_IMAGE_BASE="producer-stub"
+PROD_STUB_IMAGE_TAG_LOCAL="latest"
 #No remote image for producer stub, local image always used
 
-# Common env var for auto-test. Vars used by docker-compose need to be exported
+
+# List of app short names produced by the project
+PROJECT_IMAGES_APP_NAMES="PA ECS CP SDNC RC RICSIM"
+
+# List of app short names which images pulled from ORAN
+ORAN_IMAGES_APP_NAMES=""  # Not used
+
+# List of app short names which images pulled from ONAP
+ONAP_IMAGES_APP_NAMES="CBS"
+
+
+########################################
+# Detailed settings per app
+########################################
+
+# Vars used by docker-compose need to be exported
+
 export DOCKER_SIM_NWNAME="nonrtric-docker-net"                  # Name of docker private network
 
 export POLICY_AGENT_EXTERNAL_PORT=8081                          # Policy Agent container external port (host -> container)
@@ -183,11 +233,11 @@
 SDNC_ALIVE_URL="/apidoc/explorer/"                              # Base url path for SNDC API docs (for alive check)
 SDNC_KARAF_LOG="/opt/opendaylight/data/log/karaf.log"           # Path to karaf log
 
+export RAPP_CAT_APP_NAME="rapp-catalogue"                      # Name for the RAPP Catalogue
 export RAPP_CAT_EXTERNAL_PORT=8680                             # RAPP Catalogue container external port (host -> container)
 export RAPP_CAT_INTERNAL_PORT=8080                             # RAPP Catalogue container internal port (container -> container)
 export RAPP_CAT_EXTERNAL_SECURE_PORT=8633                      # RAPP Catalogue container external secure port (host -> container)
 export RAPP_CAT_INTERNAL_SECURE_PORT=8433                      # RAPP Catalogue container internal secure port (container -> container)
-export RAPP_CAT_APP_NAME="rapp-catalogue"                      # Name for the RAPP Catalogue
 
 
 export CONTROL_PANEL_APP_NAME="control-panel"                   # Name of the Control Panel container
@@ -195,6 +245,11 @@
 export CONTROL_PANEL_INTERNAL_PORT=8080                         # Control Panel container external port (host -> container)
 CONTROL_PANEL_LOGPATH="/logs/nonrtric-controlpanel.log"         # Path the application log in the Control Panel container
 
+
+########################################
+# Setting for common curl-base function
+########################################
+
 UUID=""                                                         # UUID used as prefix to the policy id to simulate a real UUID
                                                                 # Testscript need to set the UUID otherwise this empty prefix is used
 
diff --git a/test/common/test_env-onap-master.sh b/test/common/test_env-oran-dawn.sh
old mode 100644
new mode 100755
similarity index 65%
copy from test/common/test_env-onap-master.sh
copy to test/common/test_env-oran-dawn.sh
index 29647bd..637e5c1
--- a/test/common/test_env-onap-master.sh
+++ b/test/common/test_env-oran-dawn.sh
@@ -16,83 +16,144 @@
 #  limitations under the License.
 #  ============LICENSE_END=================================================
 #
-#Profile for ONAP master
-TEST_ENV_PROFILE="ONAP-MASTER"
-NEXUS_PROXY_REPO="nexus3.onap.org:10001/"
+#Profile for ORAN Cherry
+TEST_ENV_PROFILE="ORAN-DAWN"
 
-# Set up the image and tags for the test. Do not add the image tag to the image names.
+########################################
+## Nexus repo settings
+########################################
 
-# NOTE: A env var for each container is created by the test script.
-# This var will point to the local or remote var depending on how
-# the test script is started. The name format is <container-name>_IMAGE, ie with 'LOCAL' or 'REMOTE'.
+# Nexus repos for developed images
+NEXUS_PROXY_REPO="nexus3.o-ran-sc.org:10001/"
+NEXUS_RELEASE_REPO="nexus3.o-ran-sc.org:10002/"
+NEXUS_SNAPSHOT_REPO="nexus3.o-ran-sc.org:10003/"
+NEXUS_STAGING_REPO="nexus3.o-ran-sc.org:10004/"
 
-# Local Policy Agent image and tag
-POLICY_AGENT_LOCAL_IMAGE="onap/ccsdk-oran-a1policymanagementservice"
-POLICY_AGENT_LOCAL_IMAGE_TAG="1.1.0-SNAPSHOT"
-# Remote Policy Agent image and tag
-POLICY_AGENT_REMOTE_IMAGE="nexus3.onap.org:10003/onap/ccsdk-oran-a1policymanagementservice"
-POLICY_AGENT_REMOTE_IMAGE_TAG="1.1.0-SNAPSHOT"
+# Nexus repos for images used by test (not developed by the project)
+NEXUS_RELEASE_REPO_ONAP="nexus3.onap.org:10002/"  # Only for released ONAP images
+NEXUS_RELEASE_REPO_ORAN=$NEXUS_RELEASE_REPO
 
-# Local ECS image and tag
-ECS_LOCAL_IMAGE="o-ran-sc/nonrtric-enrichment-coordinator-service"
-ECS_LOCAL_IMAGE_TAG="1.0.0-SNAPSHOT"
-# Remote ECS image and tag
-ECS_REMOTE_IMAGE="nexus3.o-ran-sc.org:10003/o-ran-sc/nonrtric-enrichment-coordinator-service"
-ECS_REMOTE_IMAGE_TAG="1.0.0-SNAPSHOT"
+########################################
+# Set up of image and tags for the test.
+########################################
 
-# Control Panel local image and tag
-CONTROL_PANEL_LOCAL_IMAGE="o-ran-sc/nonrtric-controlpanel"
-CONTROL_PANEL_LOCAL_IMAGE_TAG="2.0.0-SNAPSHOT"
-# Control Panel remote image and tag
-CONTROL_PANEL_REMOTE_IMAGE="nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-controlpanel"
-CONTROL_PANEL_REMOTE_IMAGE_TAG="2.0.0"
+# NOTE: One environment variable containing the image name and tag is create by the test script
+# for each image from the env variables below.
+# The variable is created by removing the suffix "_BASE" from the base image variable name.
+# Example: POLICY_AGENT_IMAGE_BASE -> POLICY_AGENT_IMAGE
+# This var will point to the local or remote image depending on cmd line arguments.
+# In addition, the repo and the image tag version are selected from the list of image tags based on the cmd line argurment.
+# For images built by the script, only tag #1 shall be specified
+# For project images, only tag #1, #2, #3 and #4 shall be specified
+# For ORAN images (non project), only tag #5 shall be specified
+# For ONAP images (non project), only tag #6 shall be specified
+# For all other images, only tag #7 shall be specified
+# 1 XXX_LOCAL: local images: <image-name>:<local-tag>
+# 2 XXX_REMOTE_SNAPSHOT: snapshot images: <snapshot-nexus-repo><image-name>:<snapshot-tag>
+# 3 XXX_REMOTE: staging images: <staging-nexus-repo><image-name>:<staging-tag>
+# 4 XXX_REMOTE_RELEASE: release images: <release-nexus-repo><image-name>:<release-tag>
+# 5 XXX_REMOTE_RELEASE_ORAN: ORAN release images: <oran-release-nexus-repo><image-name>:<release-tag>
+# 6 XXX_REMOTE_RELEASE_ONAP: ONAP release images: <onap-release-nexus-repo><image-name>:<release-tag>
+# 7 XXX_PROXY: other images, not produced by the project: <proxy-nexus-repo><mage-name>:<proxy-tag>
 
 
-# SDNC A1 Controller remote image and tag
-SDNC_A1_CONTROLLER_REMOTE_IMAGE="nexus3.onap.org:10003/onap/sdnc-image"
-SDNC_A1_CONTROLLER_REMOTE_IMAGE_TAG="2.1.0-STAGING-latest"
+# Policy Agent base image and tags
+POLICY_AGENT_IMAGE_BASE="o-ran-sc/nonrtric-policy-agent"
+POLICY_AGENT_IMAGE_TAG_LOCAL="2.2.0-SNAPSHOT"
+POLICY_AGENT_IMAGE_TAG_REMOTE_SNAPSHOT="2.2.0-SNAPSHOT"
+POLICY_AGENT_IMAGE_TAG_REMOTE="2.2.0"
+POLICY_AGENT_IMAGE_TAG_REMOTE_RELEASE="2.2.0"
+
+# ECS image and tags
+ECS_IMAGE_BASE="o-ran-sc/nonrtric-enrichment-coordinator-service"
+ECS_IMAGE_TAG_LOCAL="1.1.0-SNAPSHOT"
+ECS_IMAGE_TAG_REMOTE_SNAPSHOT="1.1.0-SNAPSHOT"
+ECS_IMAGE_TAG_REMOTE="1.1.0"
+ECS_IMAGE_TAG_REMOTE_RELEASE="1.1.0"
+
+
+# Control Panel image and tags
+CONTROL_PANEL_IMAGE_BASE="o-ran-sc/nonrtric-controlpanel"
+CONTROL_PANEL_IMAGE_TAG_LOCAL="2.2.0-SNAPSHOT"
+CONTROL_PANEL_IMAGE_TAG_REMOTE_SNAPSHOT="2.2.0-SNAPSHOT"
+CONTROL_PANEL_IMAGE_TAG_REMOTE="2.2.0"
+CONTROL_PANEL_IMAGE_TAG_REMOTE_RELEASE="2.2.0"
+
+
+# SDNC A1 Controller image and tags
+SDNC_A1_CONTROLLER_IMAGE_BASE="o-ran-sc/nonrtric-a1-controller"
+SDNC_A1_CONTROLLER_IMAGE_TAG_LOCAL="2.1.0-SNAPSHOT"
+SDNC_A1_CONTROLLER_IMAGE_TAG_REMOTE_SNAPSHOT="2.1.0-SNAPSHOT"
+SDNC_A1_CONTROLLER_IMAGE_TAG_REMOTE="2.1.0"
+SDNC_A1_CONTROLLER_IMAGE_TAG_REMOTE_RELEASE="2.1.0"
 
 
 #SDNC DB remote image and tag
-SDNC_DB_REMOTE_IMAGE=$NEXUS_PROXY_REPO"mysql/mysql-server"
-SDNC_DB_REMOTE_IMAGE_TAG="5.6"
-#No local image for DB, remote image always used
+SDNC_DB_IMAGE_BASE="mysql/mysql-server"
+SDNC_DB_IMAGE_TAG_REMOTE_PROXY="5.6"
+#No local image for SSDNC DB, remote image always used
 
-# Near RT RIC Simulator local image and tag
-RIC_SIM_LOCAL_IMAGE="o-ran-sc/a1-simulator"
-RIC_SIM_LOCAL_IMAGE_TAG="latest"
-# Near RT RIC Simulator remote image and tag
-RIC_SIM_REMOTE_IMAGE="nexus3.o-ran-sc.org:10004/o-ran-sc/a1-simulator"
-RIC_SIM_REMOTE_IMAGE_TAG="2.1.0"
+
+# RAPP Catalogue image and tags
+RAPP_CAT_IMAGE_BASE="o-ran-sc/nonrtric-r-app-catalogue"
+RAPP_CAT_IMAGE_TAG_LOCAL="1.1.0-SNAPSHOT"
+RAPP_CAT_IMAGE_TAG_REMOTE_SNAPSHOT="1.1.0-SNAPSHOT"
+RAPP_CAT_IMAGE_TAG_REMOTE="1.1.0"
+RAPP_CAT_IMAGE_TAG_REMOTE_RELEASE="1.1.0"
+
+
+# Near RT RIC Simulator image and tags
+RIC_SIM_IMAGE_BASE="o-ran-sc/a1-simulator"
+RIC_SIM_IMAGE_TAG_LOCAL="latest"
+RIC_SIM_IMAGE_TAG_REMOTE_SNAPSHOT="2.1.0-SNAPSHOT"
+RIC_SIM_IMAGE_TAG_REMOTE="2.1.0"
+RIC_SIM_IMAGE_TAG_REMOTE_RELEASE="2.1.0"
 
 
 #Consul remote image and tag
-CONSUL_REMOTE_IMAGE=$NEXUS_PROXY_REPO"consul"
-CONSUL_REMOTE_IMAGE_TAG="1.7.2"
+CONSUL_IMAGE_BASE="consul"
+CONSUL_IMAGE_TAG_REMOTE_PROXY="1.7.2"
 #No local image for Consul, remote image always used
 
 
 #CBS remote image and tag
-CBS_REMOTE_IMAGE="nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding.app-app"
-CBS_REMOTE_IMAGE_TAG="2.3.0"
+CBS_IMAGE_BASE="onap/org.onap.dcaegen2.platform.configbinding.app-app"
+CBS_IMAGE_TAG_REMOTE_RELEASE_ONAP="2.3.0"
 #No local image for CBS, remote image always used
 
 
 #MR stub image and tag
-MRSTUB_LOCAL_IMAGE="mrstub"
-MRSTUB_LOCAL_IMAGE_TAG="latest"
+MRSTUB_IMAGE_BASE="mrstub"
+MRSTUB_IMAGE_TAG_LOCAL="latest"
 #No remote image for MR stub, local image always used
 
+
 #Callback receiver image and tag
-CR_LOCAL_IMAGE="callback-receiver"
-CR_LOCAL_IMAGE_TAG="latest"
+CR_IMAGE_BASE="callback-receiver"
+CR_IMAGE_TAG_LOCAL="latest"
 #No remote image for CR, local image always used
 
+
 #Producer stub image and tag
-PROD_STUB_LOCAL_IMAGE="producer-stub"
-PROD_STUB_LOCAL_IMAGE_TAG="latest"
+PROD_STUB_IMAGE_BASE="producer-stub"
+PROD_STUB_IMAGE_TAG_LOCAL="latest"
 #No remote image for producer stub, local image always used
 
+
+# List of app short names produced by the project
+PROJECT_IMAGES_APP_NAMES="PA ECS CP SDNC RC RICSIM"
+
+# List of app short names which images pulled from ORAN
+ORAN_IMAGES_APP_NAMES=""  # Not used
+
+# List of app short names which images pulled from ONAP
+ONAP_IMAGES_APP_NAMES="CBS"
+
+
+########################################
+# Detailed settings per app
+########################################
+
 # Common env var for auto-test. Vars used by docker-compose need to be exported
 export DOCKER_SIM_NWNAME="nonrtric-docker-net"                  # Name of docker private network
 
@@ -164,28 +225,38 @@
 export SDNC_EXTERNAL_SECURE_PORT=8443                           # SNDC A1 Controller container external securee port (host -> container)
 export SDNC_INTERNAL_SECURE_PORT=8443                           # SNDC A1 Controller container internal secure port (container -> container)
 export SDNC_DB_APP_NAME="sdnc-db"                               # Name of the SDNC DB container
-export SDNC_A1_TRUSTSTORE_PASSWORD="a1adapter"                  # SDNC truststore password
+export SDNC_A1_TRUSTSTORE_PASSWORD=""                           # SDNC truststore password
 SDNC_USER="admin"                                               # SDNC username
 SDNC_PWD="Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U"          # SNDC PWD
 SDNC_API_URL="/restconf/operations/A1-ADAPTER-API:"             # Base url path for SNDC API
 SDNC_ALIVE_URL="/apidoc/explorer/"                              # Base url path for SNDC API docs (for alive check)
 SDNC_KARAF_LOG="/opt/opendaylight/data/log/karaf.log"           # Path to karaf log
 
+export RAPP_CAT_EXTERNAL_PORT=8680                             # RAPP Catalogue container external port (host -> container)
+export RAPP_CAT_INTERNAL_PORT=8080                             # RAPP Catalogue container internal port (container -> container)
+export RAPP_CAT_EXTERNAL_SECURE_PORT=8633                      # RAPP Catalogue container external secure port (host -> container)
+export RAPP_CAT_INTERNAL_SECURE_PORT=8433                      # RAPP Catalogue container internal secure port (container -> container)
+export RAPP_CAT_APP_NAME="rapp-catalogue"                      # Name for the RAPP Catalogue
+
 
 export CONTROL_PANEL_APP_NAME="control-panel"                   # Name of the Control Panel container
 export CONTROL_PANEL_EXTERNAL_PORT=8080                         # Control Panel container external port (host -> container)
 export CONTROL_PANEL_INTERNAL_PORT=8080                         # Control Panel container external port (host -> container)
 CONTROL_PANEL_LOGPATH="/logs/nonrtric-controlpanel.log"         # Path the application log in the Control Panel container
 
+
+########################################
+# Setting for common curl-base function
+########################################
+
 UUID=""                                                         # UUID used as prefix to the policy id to simulate a real UUID
-                                                                # Testscript need to set the UUID to use other this empty prefix is used
+                                                                # Testscript need to set the UUID otherwise this empty prefix is used
 
 RESTBASE="http://localhost:"$POLICY_AGENT_EXTERNAL_PORT         # Base url to the Agent NB REST interface
 RESTBASE_SECURE="https://localhost:"$POLICY_AGENT_EXTERNAL_SECURE_PORT # Base url to the secure Agent NB REST interface
 DMAAPBASE="http://localhost:"$MR_EXTERNAL_PORT                  # Base url to the Dmaap adapter, http
 DMAAPBASE_SECURE="https://localhost:"$MR_EXTERNAL_SECURE_PORT   # Base url to the Dmaap adapter, https
 ADAPTER=$RESTBASE                                               # Adapter holds the address the agent R-APP interface (REST OR DMAAP)
-                                                                # The values of this var is swiched between the two base url when needed
                                                                 # The values of this var is swiched between the four base url when needed
 
 ECS_RESTBASE="http://localhost:"$ECS_EXTERNAL_PORT              # Base url to the ECS NB REST interface
@@ -198,4 +269,8 @@
 CR_RESTBASE="http://localhost:"$CR_EXTERNAL_PORT                # Base url to the Callback receiver REST interface
 CR_RESTBASE_SECURE="https://localhost:"$CR_EXTERNAL_SECURE_PORT # Base url to the secure Callback receiver REST interface
 CR_ADAPTER=$CR_RESTBASE                                         # Adapter holds the address the CR admin interface (REST only)
-                                                                # The values of this var is swiched between the two base url when needed
\ No newline at end of file
+                                                                # The values of this var is swiched between the two base url when needed
+
+RC_RESTBASE="http://localhost:"$RAPP_CAT_EXTERNAL_PORT          # Base url to the RAPP Catalogue REST interface
+RC_RESTBASE_SECURE="https://localhost:"$RAPP_CAT_EXTERNAL_SECURE_PORT # Base url to the secure RAPP Catalogue REST interface
+RC_ADAPTER=$RC_RESTBASE                                         # Adapter holds the address the RAPP Catalogue interface
\ No newline at end of file
diff --git a/test/common/testcase_common.sh b/test/common/testcase_common.sh
index f2783f3..cef8188 100755
--- a/test/common/testcase_common.sh
+++ b/test/common/testcase_common.sh
@@ -17,8 +17,44 @@
 #  ============LICENSE_END=================================================
 #
 
-# This is a script that contains all the functions needed for auto test
-# Arg: local|remote|remote-remove [auto-clean] [--stop-at-error] [--ricsim-prefix <prefix> ] [ --env-file <environment-filename> ] [--use-local-image <app-nam> [<app-name>]*]
+# This is a script that contains all the common functions needed for auto test.
+# Specific test function are defined in scripts  XXXX_functions.sh
+
+
+# List of short names for all supported apps, including simulators etc
+APP_SHORT_NAMES="PA RICSIM SDNC CP ECS RC CBS CONSUL RC MRSTUB CR PRODSTUB"
+
+__print_args() {
+	echo "Args: remote|remote-remove --env-file <environment-filename> [release] [auto-clean] [--stop-at-error] "
+	echo "      [--ricsim-prefix <prefix> ] [--use-local-image <app-nam>+]  [--use-snapshot-image <app-nam>+]"
+	echo "      [--use-staging-image <app-nam>+] [--use-release-image <app-nam>+]"
+}
+
+if [ $# -eq 1 ] && [ "$1" == "help" ]; then
+
+	if [ ! -z "$TC_ONELINE_DESCR" ]; then
+		echo "Test script description:"
+		echo $TC_ONELINE_DESCR
+		echo ""
+	fi
+	__print_args
+	echo ""
+	echo "remote                -  Use images from remote repositories. Can be overridden for individual images using the '--use_xxx' flags"
+	echo "remote-remove         -  Same as 'remote' but will also try to pull fresh images from remote repositories"
+	echo "--env-file            -  The script will use the supplied file to read environment variables from"
+	echo "release               -  If this flag is given the script will use release version of the images"
+	echo "auto-clean            -  If the function 'auto_clean_containers' is present in the end of the test script then all containers will be stopped and removed. If 'auto-clean' is not given then the function has no effect."
+    echo "--stop-at-error       -  The script will stop when the first failed test or configuration"
+	echo "--ricsim-prefix       -  The a1 simulator will use the supplied string as container prefix instead of 'ricsim'"
+	echo "--use-local-image     -  The script will use local images for the supplied apps, space separated list of app short names"
+	echo "--use-snapshot-image  -  The script will use images from the nexus snapshot repo for the supplied apps, space separated list of app short names"
+	echo "--use-staging-image   -  The script will use images from the nexus staging repo for the supplied apps, space separated list of app short names"
+	echo "--use-release-image   -  The script will use images from the nexus release repo for the supplied apps, space separated list of app short names"
+	echo ""
+	echo "List of app short names supported: "$APP_SHORT_NAMES
+	exit 0
+fi
+
 
 
 # Create a test case id, ATC (Auto Test Case), from the name of the test case script.
@@ -80,15 +116,29 @@
 # Var to hold 'auto' in case containers shall be stopped when test case ends
 AUTO_CLEAN=""
 
-# Var to hold the app names to use local image for when running 'remote' or 'remote-remove'
+# Var to hold the app names to use local images for
 USE_LOCAL_IMAGES=""
 
-# List of available apps to override with local image
-AVAILABLE_LOCAL_IMAGES_OVERRIDE="PA ECS CP SDNC RICSIM RC"
+# Var to hold the app names to use remote snapshot images for
+USE_SNAPSHOT_IMAGES=""
+
+# Var to hold the app names to use remote staging images for
+USE_STAGING_IMAGES=""
+
+# Var to hold the app names to use remote release images for
+USE_RELEASE_IMAGES=""
+
+# List of available apps to override with local or remote staging/snapshot/release image
+AVAILABLE_IMAGES_OVERRIDE="PA ECS CP SDNC RICSIM RC"
 
 # Use this var (STOP_AT_ERROR=1 in the test script) for debugging/trouble shooting to take all logs and exit at first FAIL test case
 STOP_AT_ERROR=0
 
+# The default value "DEV" indicate that development image tags (SNAPSHOT) and nexus repos (nexus port 10002) are used.
+# The value "RELEASE" indicate that relase image tag and nexus repos (nexus port) are used
+# Applies only to images defined in the test-env files with image names and tags defined as XXXX_RELEASE
+IMAGE_CATEGORY="DEV"
+
 # Function to indent cmd output with one space
 indent1() { sed 's/^/ /'; }
 
@@ -265,12 +315,16 @@
 
 START_ARG=$1
 paramerror=0
+paramerror_str=""
 if [ $# -lt 1 ]; then
 	paramerror=1
 fi
 if [ $paramerror -eq 0 ]; then
-	if [ "$1" != "remote" ] && [ "$1" != "remote-remove" ] && [ "$1" != "local" ]; then
+	if [ "$1" != "remote" ] && [ "$1" != "remote-remove" ]; then
 		paramerror=1
+		if [ -z "$paramerror_str" ]; then
+			paramerror_str="First arg shall be 'remote' or 'remote-remove'"
+		fi
 	else
 		shift;
 	fi
@@ -279,6 +333,14 @@
 while [ $paramerror -eq 0 ] && [ $foundparm -eq 0 ]; do
 	foundparm=1
 	if [ $paramerror -eq 0 ]; then
+		if [ "$1" == "release" ]; then
+			IMAGE_CATEGORY="RELEASE"
+			echo "Option set - Release image tags used for applicable images "
+			shift;
+			foundparm=0
+		fi
+	fi
+	if [ $paramerror -eq 0 ]; then
 		if [ "$1" == "auto-clean" ]; then
 			AUTO_CLEAN="auto"
 			echo "Option set - Auto clean at end of test script"
@@ -300,6 +362,9 @@
 			RIC_SIM_PREFIX=$1
 			if [ -z "$1" ]; then
 				paramerror=1
+				if [ -z "$paramerror_str" ]; then
+					paramerror_str="No prefix found for flag: '--ricsim-prefix'"
+				fi
 			else
 				echo "Option set - Overriding RIC_SIM_PREFIX with: "$1
 				shift;
@@ -313,6 +378,9 @@
 			TEST_ENV_VAR_FILE=$1
 			if [ -z "$1" ]; then
 				paramerror=1
+				if [ -z "$paramerror_str" ]; then
+					paramerror_str="No env file found for flag: '--env-file'"
+				fi
 			else
 				echo "Option set - Reading test env from: "$1
 				shift;
@@ -326,16 +394,97 @@
 			shift
 			while [ $# -gt 0 ] && [[ "$1" != "--"* ]]; do
 				USE_LOCAL_IMAGES=$USE_LOCAL_IMAGES" "$1
-				if [[ "$AVAILABLE_LOCAL_IMAGES_OVERRIDE" != *"$1"* ]]; then
+				if [[ "$AVAILABLE_IMAGES_OVERRIDE" != *"$1"* ]]; then
 					paramerror=1
+					if [ -z "$paramerror_str" ]; then
+						paramerror_str="App name $1 is not available for local override for flag: '--use-local-image'"
+					fi
 				fi
 				shift;
 			done
 			foundparm=0
 			if [ -z "$USE_LOCAL_IMAGES" ]; then
 				paramerror=1
+				if [ -z "$paramerror_str" ]; then
+					paramerror_str="No app name found for flag: '--use-local-image'"
+				fi
 			else
-				echo "Option set - Override remote images for app(s):"$USE_LOCAL_IMAGES
+				echo "Option set - Overriding with local images for app(s):"$USE_LOCAL_IMAGES
+			fi
+		fi
+	fi
+	if [ $paramerror -eq 0 ]; then
+		if [ "$1" == "--use-snapshot-image" ]; then
+			USE_SNAPSHOT_IMAGES=""
+			shift
+			while [ $# -gt 0 ] && [[ "$1" != "--"* ]]; do
+				USE_SNAPSHOT_IMAGES=$USE_SNAPSHOT_IMAGES" "$1
+				if [[ "$AVAILABLE_IMAGES_OVERRIDE" != *"$1"* ]]; then
+					paramerror=1
+					if [ -z "$paramerror_str" ]; then
+						paramerror_str="App name $1 is not available for snapshot override for flag: '--use-snapshot-image'"
+					fi
+				fi
+				shift;
+			done
+			foundparm=0
+			if [ -z "$USE_SNAPSHOT_IMAGES" ]; then
+				paramerror=1
+				if [ -z "$paramerror_str" ]; then
+					paramerror_str="No app name found for flag: '--use-snapshot-image'"
+				fi
+			else
+				echo "Option set - Overriding with snapshot images for app(s):"$USE_SNAPSHOT_IMAGES
+			fi
+		fi
+	fi
+	if [ $paramerror -eq 0 ]; then
+		if [ "$1" == "--use-staging-image" ]; then
+			USE_STAGING_IMAGES=""
+			shift
+			while [ $# -gt 0 ] && [[ "$1" != "--"* ]]; do
+				USE_STAGING_IMAGES=$USE_STAGING_IMAGES" "$1
+				if [[ "$AVAILABLE_IMAGES_OVERRIDE" != *"$1"* ]]; then
+					paramerror=1
+					if [ -z "$paramerror_str" ]; then
+						paramerror_str="App name $1 is not available for staging override for flag: '--use-staging-image'"
+					fi
+				fi
+				shift;
+			done
+			foundparm=0
+			if [ -z "$USE_STAGING_IMAGES" ]; then
+				paramerror=1
+				if [ -z "$paramerror_str" ]; then
+					paramerror_str="No app name found for flag: '--use-staging-image'"
+				fi
+			else
+				echo "Option set - Overriding with staging images for app(s):"$USE_STAGING_IMAGES
+			fi
+		fi
+	fi
+	if [ $paramerror -eq 0 ]; then
+		if [ "$1" == "--use-release-image" ]; then
+			USE_RELEASE_IMAGES=""
+			shift
+			while [ $# -gt 0 ] && [[ "$1" != "--"* ]]; do
+				USE_RELEASE_IMAGES=$USE_RELEASE_IMAGES" "$1
+				if [[ "$AVAILABLE_IMAGES_OVERRIDE" != *"$1"* ]]; then
+					paramerror=1
+					if [ -z "$paramerror_str" ]; then
+						paramerror_str="App name $1 is not available for release override for flag: '--use-release-image'"
+					fi
+				fi
+				shift;
+			done
+			foundparm=0
+			if [ -z "$USE_RELEASE_IMAGES" ]; then
+				paramerror=1
+				if [ -z "$paramerror_str" ]; then
+					paramerror_str="No app name found for flag: '--use-release-image'"
+				fi
+			else
+				echo "Option set - Overriding with release images for app(s):"$USE_RELEASE_IMAGES
 			fi
 		fi
 	fi
@@ -345,10 +494,14 @@
 #Still params left?
 if [ $paramerror -eq 0 ] && [ $# -gt 0 ]; then
 	paramerror=1
+	if [ -z "$paramerror_str" ]; then
+		paramerror_str="Unknown parameter(s): "$@
+	fi
 fi
 
 if [ $paramerror -eq 1 ]; then
-	echo -e $RED"Expected arg: local|remote|remote-remove [auto-clean] [--stop-at-error] [--ricsim-prefix <prefix> ] [ --env-file <environment-filename> ] [--use-local-image <app-nam> [<app-name>]*]"$ERED
+	echo -e $RED"Incorrect arg list: "$paramerror_str$ERED
+	__print_args
 	exit 1
 fi
 
@@ -358,12 +511,13 @@
 	. $TEST_ENV_VAR_FILE
 
 	if [ -z "$TEST_ENV_PROFILE" ] || [ -z "$SUPPORTED_PROFILES" ]; then
-		echo -e $YELLOW"This test case may no work with selected test env file. TEST_ENV_PROFILE is missing in test_env file or SUPPORTED_PROFILES is missing in test case file"$EYELLOW
+		echo -e $YELLOW"This test case may not work with selected test env file. TEST_ENV_PROFILE is missing in test_env file or SUPPORTED_PROFILES is missing in test case file"$EYELLOW
 	else
 		if [[ "$SUPPORTED_PROFILES" == *"$TEST_ENV_PROFILE"* ]]; then
 			echo -e $GREEN"Test case support the selected test env file"$EGREEN
 		else
 			echo -e $RED"Test case does not support the selected test env file"$ERED
+			echo "Profile: "$TEST_ENV_PROFILE"     Supported profiles: "$SUPPORTED_PROFILES
 			echo -e $RED"Exiting...."$ERED
 			exit 1
 		fi
@@ -376,6 +530,12 @@
 	exit 1
 fi
 
+if [ -z "$PROJECT_IMAGES_APP_NAMES" ]; then
+	echo -e $RED"Var PROJECT_IMAGES_APP_NAMES must be defined in: "$TEST_ENV_VAR_FILE$ERED$ERED
+	exit 1
+fi
+
+
 #Vars for A1 interface version and container count
 G1_A1_VERSION=""
 G2_A1_VERSION=""
@@ -422,13 +582,13 @@
 IMAGE_ERR=0
 #Create a file with image info for later printing as a table
 image_list_file="./tmp/.image-list"
-echo -e " Container\tImage\ttag" > $image_list_file
+echo -e " Container\tImage\ttag\ttag-switch" > $image_list_file
 
 # Check if image env var is set and if so export the env var with image to use (used by docker compose files)
-# arg: <image name> <script start-arg> <target-variable-name> <image-variable-name> <image-tag-variable-name> <app-short-name>
-__check_image_var() {
+# arg: <image name> <target-variable-name> <image-variable-name> <image-tag-variable-name> <tag-suffix> <app-short-name>
+__check_and_create_image_var() {
 	if [ $# -ne 6 ]; then
-		echo "Expected arg: <image name> <script start-arg> <target-variable-name> <image-variable-name> <image-tag-variable-name> <app-short-name>"
+		echo "Expected arg: <image name> <target-variable-name> <image-variable-name> <image-tag-variable-name> <tag-suffix> <app-short-name>"
 		((IMAGE_ERR++))
 		return
 	fi
@@ -440,42 +600,50 @@
 	fi
 	tmp=${1}"\t"
 	#Create var from the input var names
-	image="${!4}"
-	tag="${!5}"
+	image="${!3}"
+	tmptag=$4"_"$5
+	tag="${!tmptag}"
 
 	if [ -z $image ]; then
-	 	echo -e $RED"\$"$4" not set in $TEST_ENV_VAR_FILE"$ERED
-	 	((IMAGE_ERR++))
+		echo -e $RED"\$"$3" not set in $TEST_ENV_VAR_FILE"$ERED
+		((IMAGE_ERR++))
 		echo ""
 		tmp=$tmp"<no-image>\t"
 	else
+		#Add repo depending on image type
+		if [ "$5" == "REMOTE_RELEASE" ]; then
+			image=$NEXUS_RELEASE_REPO$image
+		fi
+		if [ "$5" == "REMOTE" ]; then
+			image=$NEXUS_STAGING_REPO$image
+		fi
+		if [ "$5" == "REMOTE_SNAPSHOT" ]; then
+			image=$NEXUS_SNAPSHOT_REPO$image
+		fi
+		if [ "$5" == "REMOTE_PROXY" ]; then
+			image=$NEXUS_PROXY_REPO$image
+		fi
+		if [ "$5" == "REMOTE_RELEASE_ONAP" ]; then
+			image=$NEXUS_RELEASE_REPO_ONAP$image
+		fi
+		if [ "$5" == "REMOTE_RELEASE_ORAN" ]; then
+			image=$NEXUS_RELEASE_REPO_ORAN$image
+		fi
+		#No nexus repo added for local images, tag: LOCAL
 		tmp=$tmp$image"\t"
 	fi
 	if [ -z $tag ]; then
-	 	echo -e $RED"\$"$5" not set in $TEST_ENV_VAR_FILE"$ERED
-	 	((IMAGE_ERR++))
+		echo -e $RED"\$"$tmptag" not set in $TEST_ENV_VAR_FILE"$ERED
+		((IMAGE_ERR++))
 		echo ""
 		tmp=$tmp"<no-tag>\t"
 	else
 		tmp=$tmp$tag
 	fi
+	tmp=$tmp"\t"$5
 	echo -e "$tmp" >> $image_list_file
 	#Export the env var
-	export "${3}"=$image":"$tag
-
-	#echo " Configured image for ${1} (script start arg=${2}): "$image":"$tag
-}
-
-
-#Check if app local image shall override remote image
-# Possible IDs for local image override: PA, CP, SDNC, RICSIM, ECS
-__check_image_local_override() {
-	for im in $USE_LOCAL_IMAGES; do
-		if [ "$1" == "$im" ]; then
-			return 1
-		fi
-	done
-	return 0
+	export "${2}"=$image":"$tag
 }
 
 # Check if app uses image included in this test run
@@ -490,93 +658,142 @@
 	return 1
 }
 
+__check_image_local_override() {
+	for im in $USE_LOCAL_IMAGES; do
+		if [ "$1" == "$im" ]; then
+			return 1
+		fi
+	done
+	return 0
+}
+
+# Check if app uses image override
+# Returns the image/tag suffix LOCAL for local image or REMOTE/REMOTE_RELEASE/REMOTE_SNAPSHOT for staging/release/snapshot image
+__check_image_override() {
+
+	for im in $ORAN_IMAGES_APP_NAMES; do
+		if [ "$1" == "$im" ]; then
+			echo "REMOTE_RELEASE_ORAN"
+			return 0
+		fi
+	done
+
+	for im in $ONAP_IMAGES_APP_NAMES; do
+		if [ "$1" == "$im" ]; then
+			echo "REMOTE_RELEASE_ONAP"
+			return 0
+		fi
+	done
+
+	found=0
+	for im in $PROJECT_IMAGES_APP_NAMES; do
+		if [ "$1" == "$im" ]; then
+			found=1
+		fi
+	done
+
+	if [ $found -eq 0 ]; then
+		echo "REMOTE_PROXY"
+		return 0
+	fi
+
+	suffix=""
+	if [ $IMAGE_CATEGORY == "RELEASE" ]; then
+		suffix="REMOTE_RELEASE"
+	fi
+	if [ $IMAGE_CATEGORY == "DEV" ]; then
+		suffix="REMOTE"
+	fi
+	CTR=0
+	for im in $USE_STAGING_IMAGES; do
+		if [ "$1" == "$im" ]; then
+			suffix="REMOTE"
+			((CTR++))
+		fi
+	done
+	for im in $USE_RELEASE_IMAGES; do
+		if [ "$1" == "$im" ]; then
+			suffix="REMOTE_RELEASE"
+			((CTR++))
+		fi
+	done
+	for im in $USE_SNAPSHOT_IMAGES; do
+		if [ "$1" == "$im" ]; then
+			suffix="REMOTE_SNAPSHOT"
+			((CTR++))
+		fi
+	done
+	for im in $USE_LOCAL_IMAGES; do
+		if [ "$1" == "$im" ]; then
+			suffix="LOCAL"
+			((CTR++))
+		fi
+	done
+	echo $suffix
+	if [ $CTR -gt 1 ]; then
+		exit 1
+	fi
+	return 0
+}
+
 # Check that image env setting are available
 echo ""
 
-if [ $START_ARG == "local" ]; then
-
-	#Local agent image
-	__check_image_var " Policy Agent" $START_ARG "POLICY_AGENT_IMAGE" "POLICY_AGENT_LOCAL_IMAGE" "POLICY_AGENT_LOCAL_IMAGE_TAG" PA
-
-	#Local Control Panel image
-	__check_image_var " Control Panel" $START_ARG "CONTROL_PANEL_IMAGE" "CONTROL_PANEL_LOCAL_IMAGE" "CONTROL_PANEL_LOCAL_IMAGE_TAG" CP
-
-	#Local SNDC image
-	__check_image_var " SDNC A1 Controller" $START_ARG "SDNC_A1_CONTROLLER_IMAGE" "SDNC_A1_CONTROLLER_LOCAL_IMAGE" "SDNC_A1_CONTROLLER_LOCAL_IMAGE_TAG" SDNC
-
-	#Local ric sim image
-	__check_image_var " RIC Simulator" $START_ARG "RIC_SIM_IMAGE" "RIC_SIM_LOCAL_IMAGE" "RIC_SIM_LOCAL_IMAGE_TAG" RICSIM
-
-elif [ $START_ARG == "remote" ] || [ $START_ARG == "remote-remove" ]; then
-
-	__check_image_local_override 'PA'
-	if [ $? -eq 0 ]; then
-		#Remote agent image
-		__check_image_var " Policy Agent" $START_ARG "POLICY_AGENT_IMAGE" "POLICY_AGENT_REMOTE_IMAGE" "POLICY_AGENT_REMOTE_IMAGE_TAG" PA
-	else
-		#Local agent image
-		__check_image_var " Policy Agent" $START_ARG "POLICY_AGENT_IMAGE" "POLICY_AGENT_LOCAL_IMAGE" "POLICY_AGENT_LOCAL_IMAGE_TAG" PA
-	fi
-
-	__check_image_local_override 'CP'
-	if [ $? -eq 0 ]; then
-		#Remote Control Panel image
-		__check_image_var " Control Panel" $START_ARG "CONTROL_PANEL_IMAGE" "CONTROL_PANEL_REMOTE_IMAGE" "CONTROL_PANEL_REMOTE_IMAGE_TAG" CP
-	else
-		#Local Control Panel image
-		__check_image_var " Control Panel" $START_ARG "CONTROL_PANEL_IMAGE" "CONTROL_PANEL_LOCAL_IMAGE" "CONTROL_PANEL_LOCAL_IMAGE_TAG" CP
-	fi
-
-	__check_image_local_override 'SDNC'
-	if [ $? -eq 0 ]; then
-		#Remote SDNC image
-		__check_image_var " SDNC A1 Controller" $START_ARG "SDNC_A1_CONTROLLER_IMAGE" "SDNC_A1_CONTROLLER_REMOTE_IMAGE" "SDNC_A1_CONTROLLER_REMOTE_IMAGE_TAG" SDNC
-	else
-		#Local SNDC image
-		__check_image_var " SDNC A1 Controller" $START_ARG "SDNC_A1_CONTROLLER_IMAGE" "SDNC_A1_CONTROLLER_LOCAL_IMAGE" "SDNC_A1_CONTROLLER_LOCAL_IMAGE_TAG" SDNC
-	fi
-
-	__check_image_local_override 'RICSIM'
-	if [ $? -eq 0 ]; then
-		#Remote ric sim image
-		__check_image_var " RIC Simulator" $START_ARG "RIC_SIM_IMAGE" "RIC_SIM_REMOTE_IMAGE" "RIC_SIM_REMOTE_IMAGE_TAG" RICSIM
-	else
-		#Local ric sim image
-		__check_image_var " RIC Simulator" $START_ARG "RIC_SIM_IMAGE" "RIC_SIM_LOCAL_IMAGE" "RIC_SIM_LOCAL_IMAGE_TAG" RICSIM
-	fi
-
-	__check_image_local_override 'ECS'
-	if [ $? -eq 0 ]; then
-		#Remote ecs image
-		__check_image_var " ECS" $START_ARG "ECS_IMAGE" "ECS_REMOTE_IMAGE" "ECS_REMOTE_IMAGE_TAG" ECS
-	else
-		#Local ecs image
-		__check_image_var " ECS" $START_ARG "ECS_IMAGE" "ECS_LOCAL_IMAGE" "ECS_LOCAL_IMAGE_TAG" ECS
-	fi
-
-		__check_image_local_override 'RC'
-	if [ $? -eq 0 ]; then
-		#Remote ecs image
-		__check_image_var " RC" $START_ARG "RAPP_CAT_IMAGE" "RAPP_CAT_REMOTE_IMAGE" "RAPP_CAT_REMOTE_IMAGE_TAG" RC
-	else
-		#Local ecs image
-		__check_image_var " RC" $START_ARG "RAPP_CAT_IMAGE" "RAPP_CAT_LOCAL_IMAGE" "RAPP_CAT_LOCAL_IMAGE_TAG" RC
-	fi
-
-else
-	#Should never get here....
-	echo "Unknow args: "$@
-	exit 1
+#Agent image
+IMAGE_SUFFIX=$(__check_image_override 'PA')
+if [ $? -ne 0 ]; then
+	echo -e $RED"Image setting from cmd line not consistent for PA."$ERED
+	((IMAGE_ERR++))
 fi
+__check_and_create_image_var " Policy Agent" "POLICY_AGENT_IMAGE" "POLICY_AGENT_IMAGE_BASE" "POLICY_AGENT_IMAGE_TAG" $IMAGE_SUFFIX PA
 
+#Remote Control Panel image
+IMAGE_SUFFIX=$(__check_image_override 'CP')
+if [ $? -ne 0 ]; then
+	echo -e $RED"Image setting from cmd line not consistent for CP."$ERED
+	((IMAGE_ERR++))
+fi
+__check_and_create_image_var " Control Panel" "CONTROL_PANEL_IMAGE" "CONTROL_PANEL_IMAGE_BASE" "CONTROL_PANEL_IMAGE_TAG" $IMAGE_SUFFIX CP
+
+#Remote SDNC image
+IMAGE_SUFFIX=$(__check_image_override 'SDNC')
+if [ $? -ne 0 ]; then
+	echo -e $RED"Image setting from cmd line not consistent for SDNC."$ERED
+	((IMAGE_ERR++))
+fi
+__check_and_create_image_var " SDNC A1 Controller" "SDNC_A1_CONTROLLER_IMAGE" "SDNC_A1_CONTROLLER_IMAGE_BASE" "SDNC_A1_CONTROLLER_IMAGE_TAG" $IMAGE_SUFFIX SDNC
+
+#Remote ric sim image
+IMAGE_SUFFIX=$(__check_image_override 'RICSIM')
+if [ $? -ne 0 ]; then
+	echo -e $RED"Image setting from cmd line not consistent for RICSIM."$ERED
+	((IMAGE_ERR++))
+fi
+__check_and_create_image_var " RIC Simulator" "RIC_SIM_IMAGE" "RIC_SIM_IMAGE_BASE" "RIC_SIM_IMAGE_TAG" $IMAGE_SUFFIX RICSIM
+
+#Remote ecs image
+IMAGE_SUFFIX=$(__check_image_override 'ECS')
+if [ $? -ne 0 ]; then
+	echo -e $RED"Image setting from cmd line not consistent for ECS."$EREDs
+	((IMAGE_ERR++))
+fi
+__check_and_create_image_var " ECS" "ECS_IMAGE" "ECS_IMAGE_BASE" "ECS_IMAGE_TAG" $IMAGE_SUFFIX ECS
+
+#Remote rc image
+IMAGE_SUFFIX=$(__check_image_override 'RC')
+if [ $? -ne 0 ]; then
+	echo -e $RED"Image setting from cmd line not consistent for RC."$ERED
+	((IMAGE_ERR++))
+fi
+__check_and_create_image_var " RC" "RAPP_CAT_IMAGE" "RAPP_CAT_IMAGE_BASE" "RAPP_CAT_IMAGE_TAG" $IMAGE_SUFFIX RC
 
 # These images are not built as part of this project official images, just check that env vars are set correctly
-__check_image_var " Message Router" $START_ARG "MRSTUB_IMAGE" "MRSTUB_LOCAL_IMAGE" "MRSTUB_LOCAL_IMAGE_TAG" MR
-__check_image_var " Callback Receiver" $START_ARG "CR_IMAGE" "CR_LOCAL_IMAGE" "CR_LOCAL_IMAGE_TAG" CR
-__check_image_var " Producer stub" $START_ARG "PROD_STUB_IMAGE" "PROD_STUB_LOCAL_IMAGE" "PROD_STUB_LOCAL_IMAGE_TAG" PRODSTUB
-__check_image_var " Consul" $START_ARG "CONSUL_IMAGE" "CONSUL_REMOTE_IMAGE" "CONSUL_REMOTE_IMAGE_TAG" CONSUL
-__check_image_var " CBS" $START_ARG "CBS_IMAGE" "CBS_REMOTE_IMAGE" "CBS_REMOTE_IMAGE_TAG" CBS
-__check_image_var " SDNC DB" $START_ARG "SDNC_DB_IMAGE" "SDNC_DB_REMOTE_IMAGE" "SDNC_DB_REMOTE_IMAGE_TAG" SDNC #Uses sdnc app name
+__check_and_create_image_var " Message Router"    "MRSTUB_IMAGE"    "MRSTUB_IMAGE_BASE"    "MRSTUB_IMAGE_TAG"    LOCAL               MR
+__check_and_create_image_var " Callback Receiver" "CR_IMAGE"        "CR_IMAGE_BASE"        "CR_IMAGE_TAG"        LOCAL               CR
+__check_and_create_image_var " Producer stub"     "PROD_STUB_IMAGE" "PROD_STUB_IMAGE_BASE" "PROD_STUB_IMAGE_TAG" LOCAL               PRODSTUB
+__check_and_create_image_var " Consul"            "CONSUL_IMAGE"    "CONSUL_IMAGE_BASE"    "CONSUL_IMAGE_TAG"    REMOTE_PROXY        CONSUL
+__check_and_create_image_var " CBS"               "CBS_IMAGE"       "CBS_IMAGE_BASE"       "CBS_IMAGE_TAG"       REMOTE_RELEASE_ONAP CBS
+__check_and_create_image_var " SDNC DB"           "SDNC_DB_IMAGE"   "SDNC_DB_IMAGE_BASE"   "SDNC_DB_IMAGE_TAG"   REMOTE_PROXY        SDNC #Uses sdnc app name
 
 #Errors in image setting - exit
 if [ $IMAGE_ERR -ne 0 ]; then
@@ -656,35 +873,52 @@
 				fi
 			fi
 			echo -e "  Attempt to stop and remove container(s), if running - "$GREEN"stopped removed"$EGREEN
-			echo -ne "  Removing image - ${SAMELINE}"
-			tmp="$(docker images -q ${4})" &> /dev/null
-			if [ $? -eq 0 ] && [ ! -z "$tmp" ]; then
-				docker rmi --force $4 &> ./tmp/.dockererr
-				if [ $? -ne 0 ]; then
-					((IMAGE_ERR++))
-					echo ""
-					echo -e $RED"  Image could not be removed - try manual removal of the image"$ERED
-					cat ./tmp/.dockererr
-					return 1
-				fi
-				echo -e "  Removing image - "$GREEN"removed"$EGREEN
-			else
-				echo -e "  Removing image - "$GREEN"image not in repository"$EGREEN
-			fi
+			# echo -ne "  Removing image - ${SAMELINE}"
+			# tmp="$(docker images -q ${4})" &> /dev/null
+			# if [ $? -eq 0 ] && [ ! -z "$tmp" ]; then
+			# 	docker rmi --force $4 &> ./tmp/.dockererr
+			# 	if [ $? -ne 0 ]; then
+			# 		((IMAGE_ERR++))
+			# 		echo ""
+			# 		echo -e $RED"  Image could not be removed - try manual removal of the image"$ERED
+			# 		cat ./tmp/.dockererr
+			# 		return 1
+			# 	fi
+			# 	echo -e "  Removing image - "$GREEN"removed"$EGREEN
+			# else
+			# 	echo -e "  Removing image - "$GREEN"image not in repository"$EGREEN
+			# fi
 			tmp_im=""
 		fi
 		if [ -z "$tmp_im" ]; then
 			echo -ne "  Pulling image${SAMELINE}"
-			docker pull $4	&> ./tmp/.dockererr
-			tmp_im=$(docker images ${4} | grep -v REPOSITORY)
-			if [ -z "$tmp_im" ]; then
+			# docker pull $4	&> ./tmp/.dockererr
+			# tmp_im=$(docker images ${4} | grep -v REPOSITORY)
+			# if [ -z "$tmp_im" ]; then
+			# 	echo ""
+			# 	echo -e "  Pulling image -$RED could not be pulled"$ERED
+			# 	((IMAGE_ERR++))
+			# 	cat ./tmp/.dockererr
+			# 	return 1
+			# fi
+			# echo -e "  Pulling image -$GREEN Pulled $EGREEN"
+			out=$(docker pull $4)
+			if [ $? -ne 0 ]; then
 				echo ""
 				echo -e "  Pulling image -$RED could not be pulled"$ERED
 				((IMAGE_ERR++))
-				cat ./tmp/.dockererr
+				echo $out > ./tmp/.dockererr
+				echo $out
 				return 1
 			fi
-			echo -e "  Pulling image -$GREEN Pulled $EGREEN"
+			echo $out > ./tmp/.dockererr
+			if [[ $out == *"up to date"* ]]; then
+				echo -e "  Pulling image -$GREEN Image is up to date $EGREEN"
+			elif [[ $out == *"Downloaded newer image"* ]]; then
+				echo -e "  Pulling image -$GREEN Newer image pulled $EGREEN"
+			else
+				echo -e "  Pulling image -$GREEN Pulled $EGREEN"
+			fi
 		else
 			echo -e "  Pulling image -$GREEN OK $EGREEN(exists in local repository)"
 		fi
@@ -789,6 +1023,10 @@
 	echo "#################################################################################################"
 	echo -e $RED"One or more images could not be pulled or containers using the images could not be stopped/removed"$ERED
 	echo -e $RED"Or local image, overriding remote image, does not exist"$ERED
+	if [ $IMAGE_CATEGORY == "DEV" ]; then
+		echo -e $RED"Note that SNAPSHOT images may be purged from nexus after a certain period."$ERED
+		echo -e $RED"In that case, switch to use a released image instead."$ERED
+	fi
 	echo "#################################################################################################"
 	echo ""
 	exit 1
@@ -803,8 +1041,8 @@
 if [ $? -eq 0 ]; then
 	cd $curdir
 	cd ../mrstub
-	echo " Building mrstub image: $MRSTUB_LOCAL_IMAGE:$MRSTUB_LOCAL_IMAGE_TAG"
-	docker build  --build-arg NEXUS_PROXY_REPO=$NEXUS_PROXY_REPO -t $MRSTUB_LOCAL_IMAGE . &> .dockererr
+	echo " Building mrstub image: $MRSTUB_IMAGE:$MRSTUB_IMAGE_TAG_LOCAL"
+	docker build  --build-arg NEXUS_PROXY_REPO=$NEXUS_PROXY_REPO -t $MRSTUB_IMAGE . &> .dockererr
 	if [ $? -eq 0 ]; then
 		echo -e  $GREEN" Build Ok"$EGREEN
 	else
@@ -822,8 +1060,8 @@
 __check_included_image 'CR'
 if [ $? -eq 0 ]; then
 	cd ../cr
-	echo " Building Callback Receiver image: $CR_LOCAL_IMAGE:$CR_IMAGE_TAG"
-	docker build  --build-arg NEXUS_PROXY_REPO=$NEXUS_PROXY_REPO -t $CR_LOCAL_IMAGE . &> .dockererr
+	echo " Building Callback Receiver image: $CR_IMAGE:$CR_IMAGE_TAG_LOCAL"
+	docker build  --build-arg NEXUS_PROXY_REPO=$NEXUS_PROXY_REPO -t $CR_IMAGE . &> .dockererr
 	if [ $? -eq 0 ]; then
 		echo -e  $GREEN" Build Ok"$EGREEN
 	else
@@ -841,8 +1079,8 @@
 __check_included_image 'PRODSTUB'
 if [ $? -eq 0 ]; then
 	cd ../prodstub
-	echo " Building Producer stub image: $PROD_STUB_LOCAL_IMAGE:$PROD_STUB_LOCAL_IMAGE_TAG"
-	docker build  --build-arg NEXUS_PROXY_REPO=$NEXUS_PROXY_REPO -t $PROD_STUB_LOCAL_IMAGE . &> .dockererr
+	echo " Building Producer stub image: $PROD_STUB_IMAGE:$PROD_STUB_IMAGE_TAG_LOCAL"
+	docker build  --build-arg NEXUS_PROXY_REPO=$NEXUS_PROXY_REPO -t $PROD_STUB_IMAGE . &> .dockererr
 	if [ $? -eq 0 ]; then
 		echo -e  $GREEN" Build Ok"$EGREEN
 	else
@@ -895,7 +1133,7 @@
 fi
 __check_included_image 'PRODSTUB'
 if [ $? -eq 0 ]; then
-	echo -e " Produccer stub\t$(docker images --format $format_string $PROD_STUB_IMAGE)" >>   $docker_tmp_file
+	echo -e " Producer stub\t$(docker images --format $format_string $PROD_STUB_IMAGE)" >>   $docker_tmp_file
 fi
 __check_included_image 'CONSUL'
 if [ $? -eq 0 ]; then
