diff --git a/test/auto-test/FTC1100.sh b/test/auto-test/FTC1100.sh
index d312caa..fe59d45 100755
--- a/test/auto-test/FTC1100.sh
+++ b/test/auto-test/FTC1100.sh
@@ -18,13 +18,13 @@
 #
 
 
-TC_ONELINE_DESCR="ECS full intefaces walkthrough"
+TC_ONELINE_DESCR="ECS full interfaces walkthrough"
 
 #App names to include in the test when running docker, space separated list
-DOCKER_INCLUDED_IMAGES="ECS PRODSTUB CR RICSIM CP"
+DOCKER_INCLUDED_IMAGES="ECS PRODSTUB CR RICSIM CP HTTPPROXY"
 
 #App names to include in the test when running kubernetes, space separated list
-KUBE_INCLUDED_IMAGES=" PRODSTUB CR ECS RICSIM CP "
+KUBE_INCLUDED_IMAGES=" PRODSTUB CR ECS RICSIM CP HTTPPROXY"
 #Prestarted app (not started by script) to include in the test when running kubernetes, space separated list
 KUBE_PRESTARTED_IMAGES=" "
 
@@ -40,6 +40,7 @@
 . ../common/control_panel_api_functions.sh
 . ../common/controller_api_functions.sh
 . ../common/ricsimulator_api_functions.sh
+. ../common/http_proxy_api_functions.sh
 
 #### TEST BEGIN ####
 
@@ -55,7 +56,9 @@
 
 use_cr_https
 
-start_ecs $SIM_GROUP/$ECS_COMPOSE_DIR/application.yaml
+#start_http_proxy  #Uncomment this cmd to run with proxy
+
+start_ecs NOPROXY $SIM_GROUP/$ECS_COMPOSE_DIR/application.yaml  #Change NOPROXY to PROXY to run with http proxy
 
 if [ $RUNMODE == "KUBE" ]; then
     ecs_api_admin_reset
@@ -191,7 +194,11 @@
     ecs_api_a1_delete_job 404 test-job
 fi
 
-ecs_api_edp_get_producer_jobs 404 test-prod
+if [ $ECS_VERSION == "V1-1" ]; then
+    ecs_api_edp_get_producer_jobs 404 test-prod
+else
+    ecs_api_edp_get_producer_jobs_2 404 test-prod
+fi
 
 if [ $ECS_VERSION == "V1-2" ]; then
     ecs_api_edp_get_type_2 404 test-type
@@ -270,8 +277,11 @@
 
     ecs_api_a1_get_job_status 404 test-job
 fi
-
-ecs_api_edp_get_producer_jobs 200 prod-a EMPTY
+if [ $ECS_VERSION == "V1-1" ]; then
+    ecs_api_edp_get_producer_jobs 200 prod-a EMPTY
+else
+    ecs_api_edp_get_producer_jobs_2 200 prod-a EMPTY
+fi
 
 ## Create a job for prod-a
 ## job1 - prod-a
@@ -282,7 +292,11 @@
 fi
 
 # Check the job data in the producer
-prodstub_check_jobdata 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ecs/job-template.json
+if [ $ECS_VERSION == "V1-1" ]; then
+    prodstub_check_jobdata 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ecs/job-template.json
+else
+    prodstub_check_jobdata_2 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ecs/job-template.json
+fi
 
 ecs_api_a1_get_job_ids 200 type1 NOWNER job1
 ecs_api_a1_get_job_ids 200 type1 ricsim_g3_1 job1
@@ -303,7 +317,11 @@
 
 prodstub_equal create/prod-a/job1 1
 
-ecs_api_edp_get_producer_jobs 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ecs/job-template.json
+if [ $ECS_VERSION == "V1-1" ]; then
+    ecs_api_edp_get_producer_jobs 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ecs/job-template.json
+else
+    ecs_api_edp_get_producer_jobs_2 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ecs/job-template.json
+fi
 
 ## Create a second job for prod-a
 ## job2 - prod-a
@@ -314,8 +332,11 @@
 fi
 
 # Check the job data in the producer
-prodstub_check_jobdata 200 prod-a job2 type1 $TARGET2 ricsim_g3_2 testdata/ecs/job-template.json
-
+if [ $ECS_VERSION == "V1-1" ]; then
+    prodstub_check_jobdata 200 prod-a job2 type1 $TARGET2 ricsim_g3_2 testdata/ecs/job-template.json
+else
+    prodstub_check_jobdata_2 200 prod-a job2 type1 $TARGET2 ricsim_g3_2 testdata/ecs/job-template.json
+fi
 ecs_api_a1_get_job_ids 200 type1 NOWNER job1 job2
 ecs_api_a1_get_job_ids 200 type1 ricsim_g3_1 job1
 ecs_api_a1_get_job_ids 200 type1 ricsim_g3_2 job2
@@ -335,7 +356,11 @@
 
 prodstub_equal create/prod-a/job2 1
 
-ecs_api_edp_get_producer_jobs 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ecs/job-template.json job2 type1 $TARGET2 ricsim_g3_2 testdata/ecs/job-template.json
+if [ $ECS_VERSION == "V1-1" ]; then
+    ecs_api_edp_get_producer_jobs 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ecs/job-template.json job2 type1 $TARGET2 ricsim_g3_2 testdata/ecs/job-template.json
+else
+    ecs_api_edp_get_producer_jobs_2 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ecs/job-template.json job2 type1 $TARGET2 ricsim_g3_2 testdata/ecs/job-template.json
+fi
 
 ## Setup prod-b
 if [ $ECS_VERSION == "V1-1" ]; then
@@ -391,7 +416,11 @@
 prodstub_equal create/prod-b/job3 1
 
 # Check the job data in the producer
-prodstub_check_jobdata 200 prod-b job3 type2 $TARGET3 ricsim_g3_3 testdata/ecs/job-template.json
+if [ $ECS_VERSION == "V1-1" ]; then
+    prodstub_check_jobdata 200 prod-b job3 type2 $TARGET3 ricsim_g3_3 testdata/ecs/job-template.json
+else
+    prodstub_check_jobdata_2 200 prod-b job3 type2 $TARGET3 ricsim_g3_3 testdata/ecs/job-template.json
+fi
 
 ecs_api_a1_get_job_ids 200 type1 NOWNER job1 job2
 ecs_api_a1_get_job_ids 200 type2 NOWNER job3
@@ -409,9 +438,13 @@
     ecs_api_a1_get_job_status 200 job3 ENABLED
 fi
 
-ecs_api_edp_get_producer_jobs 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ecs/job-template.json job2 type1 $TARGET2 ricsim_g3_2 testdata/ecs/job-template.json
-ecs_api_edp_get_producer_jobs 200 prod-b job3 type2 $TARGET3 ricsim_g3_3 testdata/ecs/job-template.json
-
+if [ $ECS_VERSION == "V1-1" ]; then
+    ecs_api_edp_get_producer_jobs 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ecs/job-template.json job2 type1 $TARGET2 ricsim_g3_2 testdata/ecs/job-template.json
+    ecs_api_edp_get_producer_jobs 200 prod-b job3 type2 $TARGET3 ricsim_g3_3 testdata/ecs/job-template.json
+else
+    ecs_api_edp_get_producer_jobs_2 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ecs/job-template.json job2 type1 $TARGET2 ricsim_g3_2 testdata/ecs/job-template.json
+    ecs_api_edp_get_producer_jobs_2 200 prod-b job3 type2 $TARGET3 ricsim_g3_3 testdata/ecs/job-template.json
+fi
 
 ## Setup prod-c (no types)
 if [ $ECS_VERSION == "V1-1" ]; then
@@ -507,7 +540,11 @@
     ecs_api_a1_get_job_status 200 job3 ENABLED
 fi
 
-prodstub_check_jobdata 200 prod-b job3 type2 $TARGET3 ricsim_g3_3 testdata/ecs/job-template2.json
+if [ $ECS_VERSION == "V1-1" ]; then
+    prodstub_check_jobdata 200 prod-b job3 type2 $TARGET3 ricsim_g3_3 testdata/ecs/job-template2.json
+else
+    prodstub_check_jobdata_2 200 prod-b job3 type2 $TARGET3 ricsim_g3_3 testdata/ecs/job-template2.json
+fi
 
 ecs_api_a1_get_job_ids 200 NOTYPE NOWNER job1 job2 job3
 if [ $ECS_VERSION == "V1-1" ]; then
@@ -564,8 +601,11 @@
 cr_equal received_callbacks?id=job3-status 2
 cr_api_check_all_ecs_events 200 job3-status ENABLED
 
-prodstub_check_jobdata 200 prod-b job3 type2 $TARGET3 ricsim_g3_3 testdata/ecs/job-template2.json
-
+if [ $ECS_VERSION == "V1-1" ]; then
+    prodstub_check_jobdata 200 prod-b job3 type2 $TARGET3 ricsim_g3_3 testdata/ecs/job-template2.json
+else
+    prodstub_check_jobdata_2 200 prod-b job3 type2 $TARGET3 ricsim_g3_3 testdata/ecs/job-template2.json
+fi
 
 ## Setup prod-d
 if [ $ECS_VERSION == "V1-1" ]; then
@@ -583,7 +623,11 @@
     ecs_api_a1_put_job 201 job8 type4 $TARGET8 ricsim_g3_4 $STATUS8 testdata/ecs/job-template.json
 fi
 
-prodstub_check_jobdata 200 prod-d job8 type4 $TARGET8 ricsim_g3_4 testdata/ecs/job-template.json
+if [ $ECS_VERSION == "V1-1" ]; then
+    prodstub_check_jobdata 200 prod-d job8 type4 $TARGET8 ricsim_g3_4 testdata/ecs/job-template.json
+else
+    prodstub_check_jobdata_2 200 prod-d job8 type4 $TARGET8 ricsim_g3_4 testdata/ecs/job-template.json
+fi
 
 prodstub_equal create/prod-d/job8 1
 prodstub_equal delete/prod-d/job8 0
@@ -673,7 +717,11 @@
     ecs_api_a1_put_job 201 job10 type6 $TARGET10 ricsim_g3_4 $STATUS10 testdata/ecs/job-template.json
 fi
 
-prodstub_check_jobdata 200 prod-e job10 type6 $TARGET10 ricsim_g3_4 testdata/ecs/job-template.json
+if [ $ECS_VERSION == "V1-1" ]; then
+    prodstub_check_jobdata 200 prod-e job10 type6 $TARGET10 ricsim_g3_4 testdata/ecs/job-template.json
+else
+    prodstub_check_jobdata_2 200 prod-e job10 type6 $TARGET10 ricsim_g3_4 testdata/ecs/job-template.json
+fi
 
 prodstub_equal create/prod-e/job10 1
 prodstub_equal delete/prod-e/job10 0
@@ -696,7 +744,11 @@
 
 ecs_api_a1_get_job_ids 200 type6 NOWNER job10
 
-prodstub_check_jobdata 200 prod-f job10 type6 $TARGET10 ricsim_g3_4 testdata/ecs/job-template.json
+if [ $ECS_VERSION == "V1-1" ]; then
+    prodstub_check_jobdata 200 prod-f job10 type6 $TARGET10 ricsim_g3_4 testdata/ecs/job-template.json
+else
+    prodstub_check_jobdata_2 200 prod-f job10 type6 $TARGET10 ricsim_g3_4 testdata/ecs/job-template.json
+fi
 
 prodstub_equal create/prod-f/job10 1
 prodstub_equal delete/prod-f/job10 0
@@ -919,7 +971,11 @@
 #Wait for job to be updated
 sleep_wait 120
 
-prodstub_check_jobdata 200 prod-f job10 type6 $TARGET10 ricsim_g3_4 testdata/ecs/job-template2.json
+if [ $ECS_VERSION == "V1-1" ]; then
+    prodstub_check_jobdata 200 prod-f job10 type6 $TARGET10 ricsim_g3_4 testdata/ecs/job-template2.json
+else
+    prodstub_check_jobdata_2 200 prod-f job10 type6 $TARGET10 ricsim_g3_4 testdata/ecs/job-template2.json
+fi
 
 prodstub_arm_producer 200 prod-f 400
 
diff --git a/test/auto-test/FTC1800.sh b/test/auto-test/FTC1800.sh
index 90ea3b5..70f9f53 100755
--- a/test/auto-test/FTC1800.sh
+++ b/test/auto-test/FTC1800.sh
@@ -18,7 +18,7 @@
 #
 
 
-TC_ONELINE_DESCR="ECS Create 10000 jobs and restart, test job persisency"
+TC_ONELINE_DESCR="ECS Create 10000 jobs and restart, test job persistency"
 
 #App names to include in the test when running docker, space separated list
 DOCKER_INCLUDED_IMAGES="ECS PRODSTUB CR CP"
@@ -50,7 +50,7 @@
 
 use_prod_stub_http
 
-start_ecs $SIM_GROUP/$ECS_COMPOSE_DIR/application.yaml
+start_ecs NOPROXY $SIM_GROUP/$ECS_COMPOSE_DIR/application.yaml
 
 start_prod_stub
 
@@ -353,22 +353,46 @@
 for ((i=1; i<=$NUM_JOBS; i++))
 do
     if [ $(($i%5)) -eq 0 ]; then
-        prodstub_check_jobdata 200 prod-a job$i type1 $TARGET ric1 testdata/ecs/job-template.json
-        prodstub_check_jobdata 200 prod-b job$i type1 $TARGET ric1 testdata/ecs/job-template.json
-        prodstub_check_jobdata 200 prod-c job$i type1 $TARGET ric1 testdata/ecs/job-template.json
+        if [ $ECS_VERSION == "V1-1" ]; then
+            prodstub_check_jobdata 200 prod-a job$i type1 $TARGET ric1 testdata/ecs/job-template.json
+            prodstub_check_jobdata 200 prod-b job$i type1 $TARGET ric1 testdata/ecs/job-template.json
+            prodstub_check_jobdata 200 prod-c job$i type1 $TARGET ric1 testdata/ecs/job-template.json
+        else
+            prodstub_check_jobdata_2 200 prod-a job$i type1 $TARGET ric1 testdata/ecs/job-template.json
+            prodstub_check_jobdata_2 200 prod-b job$i type1 $TARGET ric1 testdata/ecs/job-template.json
+            prodstub_check_jobdata_2 200 prod-c job$i type1 $TARGET ric1 testdata/ecs/job-template.json
+        fi
+
     fi
     if [ $(($i%5)) -eq 1 ]; then
-        prodstub_check_jobdata 200 prod-b job$i type2 $TARGET ric1 testdata/ecs/job-template.json
-        prodstub_check_jobdata 200 prod-c job$i type2 $TARGET ric1 testdata/ecs/job-template.json
+        if [ $ECS_VERSION == "V1-1" ]; then
+            prodstub_check_jobdata 200 prod-b job$i type2 $TARGET ric1 testdata/ecs/job-template.json
+            prodstub_check_jobdata 200 prod-c job$i type2 $TARGET ric1 testdata/ecs/job-template.json
+        else
+            prodstub_check_jobdata_2 200 prod-b job$i type2 $TARGET ric1 testdata/ecs/job-template.json
+            prodstub_check_jobdata_2 200 prod-c job$i type2 $TARGET ric1 testdata/ecs/job-template.json
+        fi
     fi
     if [ $(($i%5)) -eq 2 ]; then
-        prodstub_check_jobdata 200 prod-c job$i type3 $TARGET ric1 testdata/ecs/job-template.json
+        if [ $ECS_VERSION == "V1-1" ]; then
+            prodstub_check_jobdata 200 prod-c job$i type3 $TARGET ric1 testdata/ecs/job-template.json
+        else
+            prodstub_check_jobdata_2 200 prod-c job$i type3 $TARGET ric1 testdata/ecs/job-template.json
+        fi
     fi
     if [ $(($i%5)) -eq 3 ]; then
-        prodstub_check_jobdata 200 prod-d job$i type4 $TARGET ric1 testdata/ecs/job-template.json
+        if [ $ECS_VERSION == "V1-1" ]; then
+            prodstub_check_jobdata 200 prod-d job$i type4 $TARGET ric1 testdata/ecs/job-template.json
+        else
+            prodstub_check_jobdata_2 200 prod-d job$i type4 $TARGET ric1 testdata/ecs/job-template.json
+        fi
     fi
     if [ $(($i%5)) -eq 4 ]; then
-        prodstub_check_jobdata 200 prod-d job$i type5 $TARGET ric1 testdata/ecs/job-template.json
+        if [ $ECS_VERSION == "V1-1" ]; then
+            prodstub_check_jobdata 200 prod-d job$i type5 $TARGET ric1 testdata/ecs/job-template.json
+        else
+            prodstub_check_jobdata_2 200 prod-d job$i type5 $TARGET ric1 testdata/ecs/job-template.json
+        fi
     fi
 done
 
diff --git a/test/auto-test/FTC310.sh b/test/auto-test/FTC310.sh
index dd79b33..941f26b 100755
--- a/test/auto-test/FTC310.sh
+++ b/test/auto-test/FTC310.sh
@@ -35,6 +35,7 @@
 . ../common/mr_api_functions.sh
 . ../common/control_panel_api_functions.sh
 . ../common/controller_api_functions.sh
+. ../common/consul_cbs_functions.sh
 
 #### TEST BEGIN ####
 
@@ -50,7 +51,7 @@
     # Clean container and start all needed containers #
     clean_environment
 
-    start_policy_agent
+    start_policy_agent NOPROXY $SIM_GROUP/$POLICY_AGENT_COMPOSE_DIR/application.yaml
 
     set_agent_trace
 
diff --git a/test/auto-test/FTC800.sh b/test/auto-test/FTC800.sh
index 0be6be8..4d1d54a 100755
--- a/test/auto-test/FTC800.sh
+++ b/test/auto-test/FTC800.sh
@@ -39,6 +39,7 @@
 . ../common/mr_api_functions.sh
 . ../common/control_panel_api_functions.sh
 . ../common/controller_api_functions.sh
+. ../common/consul_cbs_functions.sh
 
 #### TEST BEGIN ####
 
diff --git a/test/auto-test/FTC810.sh b/test/auto-test/FTC810.sh
index a92106e..c10cab2 100755
--- a/test/auto-test/FTC810.sh
+++ b/test/auto-test/FTC810.sh
@@ -39,6 +39,7 @@
 . ../common/mr_api_functions.sh
 . ../common/control_panel_api_functions.sh
 . ../common/controller_api_functions.sh
+. ../common/consul_cbs_functions.sh
 
 #### TEST BEGIN ####
 
diff --git a/test/auto-test/FTC850.sh b/test/auto-test/FTC850.sh
index 82e50f1..d50dc51 100755
--- a/test/auto-test/FTC850.sh
+++ b/test/auto-test/FTC850.sh
@@ -38,6 +38,8 @@
 . ../common/mr_api_functions.sh
 . ../common/control_panel_api_functions.sh
 . ../common/controller_api_functions.sh
+. ../common/consul_cbs_functions.sh
+. ../common/cr_api_functions.sh
 
 #### TEST BEGIN ####
 
diff --git a/test/auto-test/FTC900.sh b/test/auto-test/FTC900.sh
index b3e4d29..d2656c4 100755
--- a/test/auto-test/FTC900.sh
+++ b/test/auto-test/FTC900.sh
@@ -38,6 +38,7 @@
 . ../common/mr_api_functions.sh
 . ../common/control_panel_api_functions.sh
 . ../common/controller_api_functions.sh
+. ../common/consul_cbs_functions.sh
 
 #### TEST BEGIN ####
 
diff --git a/test/auto-test/FTC_HELM-RECEPIE.sh b/test/auto-test/FTC_HELM-RECIPE.sh
similarity index 92%
rename from test/auto-test/FTC_HELM-RECEPIE.sh
rename to test/auto-test/FTC_HELM-RECIPE.sh
index a9f5e5e..8c13e65 100755
--- a/test/auto-test/FTC_HELM-RECEPIE.sh
+++ b/test/auto-test/FTC_HELM-RECIPE.sh
@@ -52,7 +52,11 @@
 use_simulator_https
 use_ecs_rest_https
 use_prod_stub_https
-use_rapp_catalogue_http
+if [ $ECS_VERSION == "V1-1" ]; then
+    use_rapp_catalogue_http # https not yet supported
+else
+    use_rapp_catalogue_https
+fi
 
 echo -e "$RED CHECK WHY RC HTTPS DOES NOT WORK $ERED"
 
@@ -92,7 +96,7 @@
 
 start_prod_stub
 
-start_ecs
+start_ecs NOPROXY
 
 set_ecs_trace
 
@@ -274,8 +278,11 @@
 fi
 
 # Check the job data in the producer
-prodstub_check_jobdata 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ecs/job-template.json
-
+if [ $ECS_VERSION == "V1-1" ]; then
+    prodstub_check_jobdata 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ecs/job-template.json
+else
+    prodstub_check_jobdata_2 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ecs/job-template.json
+fi
 
 ## Create a second job for prod-a
 ## job2 - prod-a
@@ -286,8 +293,11 @@
 fi
 
 # Check the job data in the producer
-prodstub_check_jobdata 200 prod-a job2 type1 $TARGET2 ricsim_g3_2 testdata/ecs/job-template.json
-
+if [ $ECS_VERSION == "V1-1" ]; then
+    prodstub_check_jobdata 200 prod-a job2 type1 $TARGET2 ricsim_g3_2 testdata/ecs/job-template.json
+else
+    prodstub_check_jobdata_2 200 prod-a job2 type1 $TARGET2 ricsim_g3_2 testdata/ecs/job-template.json
+fi
 
 echo "ADD EVENT/STATUS CHECK"
 
diff --git a/test/auto-test/PM_EI_DEMO.sh b/test/auto-test/PM_EI_DEMO.sh
index 324d892..9c27fda 100755
--- a/test/auto-test/PM_EI_DEMO.sh
+++ b/test/auto-test/PM_EI_DEMO.sh
@@ -56,7 +56,12 @@
 use_simulator_https
 use_ecs_rest_https
 use_prod_stub_https
-use_rapp_catalogue_http # https not yet supported
+if [ $ECS_VERSION == "V1-1" ]; then
+    use_rapp_catalogue_http # https not yet supported
+else
+    use_rapp_catalogue_https
+fi
+
 
 if [ "$PMS_VERSION" == "V2" ]; then
     notificationurl=$CR_SERVICE_PATH"/test"
@@ -69,13 +74,15 @@
 
 STD_NUM_RICS=2
 
+#start_http_proxy  #Remove the comment on this line, comment out 'start_sdnc' and change SDNC to NOSDNC a few lines below to run with proxy
+
 start_ric_simulators $RIC_SIM_PREFIX"_g3" $STD_NUM_RICS STD_2.0.0
 
 start_mr #Just to prevent errors in the agent log...
 
 start_control_panel $SIM_GROUP/$CONTROL_PANEL_COMPOSE_DIR/application.properties
 
-start_sdnc
+start_sdnc    # Comment this line to run PMS with proxy
 
 start_policy_agent PROXY $SIM_GROUP/$POLICY_AGENT_COMPOSE_DIR/application.yaml
 
@@ -83,7 +90,7 @@
     start_consul_cbs
 fi
 
-prepare_consul_config      SDNC  ".consul_config.json"
+prepare_consul_config      SDNC  ".consul_config.json"   #Change to NOSDNC if running PMS with  proxy
 
 if [ $RUNMODE == "KUBE" ]; then
     agent_load_config                       ".consul_config.json"
@@ -95,7 +102,7 @@
 
 start_prod_stub
 
-start_ecs $SIM_GROUP/$ECS_COMPOSE_DIR/application.yaml
+start_ecs PROXY $SIM_GROUP/$ECS_COMPOSE_DIR/application.yaml
 
 start_rapp_catalogue
 
@@ -214,7 +221,11 @@
 fi
 
 # Check the job data in the producer
-prodstub_check_jobdata 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ecs/job-template.json
+if [ $ECS_VERSION == "V1-1" ]; then
+    prodstub_check_jobdata 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ecs/job-template.json
+else
+    prodstub_check_jobdata_2 200 prod-a job1 type1 $TARGET1 ricsim_g3_1 testdata/ecs/job-template.json
+fi
 
 
 ## Create a second job for prod-a
@@ -226,7 +237,11 @@
 fi
 
 # Check the job data in the producer
-prodstub_check_jobdata 200 prod-a job2 type1 $TARGET2 ricsim_g3_2 testdata/ecs/job-template.json
+if [ $ECS_VERSION == "V1-1" ]; then
+    prodstub_check_jobdata 200 prod-a job2 type1 $TARGET2 ricsim_g3_2 testdata/ecs/job-template.json
+else
+    prodstub_check_jobdata_2 200 prod-a job2 type1 $TARGET2 ricsim_g3_2 testdata/ecs/job-template.json
+fi
 
 check_policy_agent_logs
 check_ecs_logs
diff --git a/test/common/agent_api_functions.sh b/test/common/agent_api_functions.sh
index 1cd430e..80b49d1 100644
--- a/test/common/agent_api_functions.sh
+++ b/test/common/agent_api_functions.sh
@@ -88,7 +88,8 @@
 }
 
 # Start the policy agent
-# args: (kube only) PROXY|NOPROXY <config-file> [ <data-file>]
+# args: (docker) PROXY|NOPROXY <config-file>
+# args: (kube) PROXY|NOPROXY <config-file> [ <data-file>]
 # (Function for test scripts)
 start_policy_agent() {
 	echo -e $BOLD"Starting $POLICY_AGENT_DISPLAY_NAME"$EBOLD
@@ -143,9 +144,15 @@
 			if [ $1 == "PROXY" ]; then
 				AGENT_HTTP_PROXY_CONFIG_PORT=$HTTP_PROXY_CONFIG_PORT  #Set if proxy is started
 				AGENT_HTTP_PROXY_CONFIG_HOST_NAME=$HTTP_PROXY_CONFIG_HOST_NAME #Set if proxy is started
+				if [ $AGENT_HTTP_PROXY_CONFIG_PORT -eq 0 ] || [ -z "$AGENT_HTTP_PROXY_CONFIG_HOST_NAME" ]; then
+					echo -e $YELLOW" Warning: HTTP PROXY will not be configured, proxy app not started"$EYELLOW
+				else
+					echo " Configured with http proxy"
+				fi
 			else
 				AGENT_HTTP_PROXY_CONFIG_PORT=0
 				AGENT_HTTP_PROXY_CONFIG_HOST_NAME=""
+				echo " Configured without http proxy"
 			fi
 			export AGENT_HTTP_PROXY_CONFIG_PORT
 			export AGENT_HTTP_PROXY_CONFIG_HOST_NAME
@@ -225,9 +232,15 @@
 		if [ $1 == "PROXY" ]; then
 			AGENT_HTTP_PROXY_CONFIG_PORT=$HTTP_PROXY_CONFIG_PORT  #Set if proxy is started
 			AGENT_HTTP_PROXY_CONFIG_HOST_NAME=$HTTP_PROXY_CONFIG_HOST_NAME #Set if proxy is started
+			if [ $AGENT_HTTP_PROXY_CONFIG_PORT -eq 0 ] || [ -z "$AGENT_HTTP_PROXY_CONFIG_HOST_NAME" ]; then
+				echo -e $YELLOW" Warning: HTTP PROXY will not be configured, proxy app not started"$EYELLOW
+			else
+				echo " Configured with http proxy"
+			fi
 		else
 			AGENT_HTTP_PROXY_CONFIG_PORT=0
 			AGENT_HTTP_PROXY_CONFIG_HOST_NAME=""
+			echo " Configured without http proxy"
 		fi
 		export AGENT_HTTP_PROXY_CONFIG_PORT
 		export AGENT_HTTP_PROXY_CONFIG_HOST_NAME
@@ -819,7 +832,7 @@
 	pids=$1; shift;
 
 	#if [ $PA_ADAPTER != $RESTBASE ] && [ $PA_ADAPTER != $RESTBASE_SECURE ]; then
-	if [ $__ADAPTER_TYPE != "REST" ]; then
+	if [ $PA_ADAPTER_TYPE != "REST" ]; then
 		echo " Info - api_put_policy_parallel uses only the agent REST interface - create over dmaap in parallel is not supported"
 		echo " Info - will execute over agent REST"
 	fi
@@ -827,7 +840,7 @@
 		if [ $serv == "NOSERVICE" ]; then
 			serv=""
 		fi
-		query="/v2/policies"
+		query="$PMS_API_PREFIX/v2/policies"
 	else
 		if [ $serv == "NOSERVICE" ]; then
 			serv=""
@@ -1020,13 +1033,13 @@
 	pids=$1; shift;
 
 	#if [ $PA_ADAPTER != $RESTBASE ] && [ $PA_ADAPTER != $RESTBASE_SECURE ]; then
-	if [ $__ADAPTER_TYPE != "REST" ]; then
+	if [ $PA_ADAPTER_TYPE != "REST" ]; then
 		echo " Info - api_delete_policy_parallel uses only the agent REST interface - create over dmaap in parallel is not supported"
 		echo " Info - will execute over agent REST"
 	fi
 
 	if [ "$PMS_VERSION" == "V2" ]; then
-		query="/v2/policies/"
+		query="$PMS_API_PREFIX/v2/policies/"
 	else
 		query="/policy"
 	fi
diff --git a/test/common/ecs_api_functions.sh b/test/common/ecs_api_functions.sh
index ba451e6..e9ff1f9 100644
--- a/test/common/ecs_api_functions.sh
+++ b/test/common/ecs_api_functions.sh
@@ -88,7 +88,7 @@
 }
 
 # Start the ECS
-# args: -
+# args: PROXY|NOPROXY <config-file>
 # (Function for test scripts)
 start_ecs() {
 
@@ -141,9 +141,25 @@
 			export ECS_DATA_CONFIGMAP_NAME=$ECS_APP_NAME"-data"
 			export ECS_CONTAINER_MNT_DIR
 
+			if [ $1 == "PROXY" ]; then
+				ECS_HTTP_PROXY_CONFIG_PORT=$HTTP_PROXY_CONFIG_PORT  #Set if proxy is started
+				ECS_HTTP_PROXY_CONFIG_HOST_NAME=$HTTP_PROXY_CONFIG_HOST_NAME #Set if proxy is started
+				if [ $ECS_HTTP_PROXY_CONFIG_PORT -eq 0 ] || [ -z "$ECS_HTTP_PROXY_CONFIG_HOST_NAME" ]; then
+					echo -e $YELLOW" Warning: HTTP PROXY will not be configured, proxy app not started"$EYELLOW
+				else
+					echo " Configured with http proxy"
+				fi
+			else
+				ECS_HTTP_PROXY_CONFIG_PORT=0
+				ECS_HTTP_PROXY_CONFIG_HOST_NAME=""
+				echo " Configured without http proxy"
+			fi
+			export ECS_HTTP_PROXY_CONFIG_PORT
+			export ECS_HTTP_PROXY_CONFIG_HOST_NAME
+
 			# Create config map for config
 			datafile=$PWD/tmp/$ECS_CONFIG_FILE
-			cp $1 $datafile
+			cp $2 $datafile
 			output_yaml=$PWD/tmp/ecs_cfc.yaml
 			__kube_create_configmap $ECS_CONFIG_CONFIGMAP_NAME $KUBE_NONRTRIC_NAMESPACE autotest ECS $datafile $output_yaml
 
@@ -193,7 +209,7 @@
 		cd $SIM_GROUP
 		cd ecs
 		cd $ECS_HOST_MNT_DIR
-		cd ..
+		#cd ..
 		if [ -d db ]; then
 			if [ "$(ls -A $DIR)" ]; then
 				echo -e $BOLD" Cleaning files in mounted dir: $PWD/db"$EBOLD
@@ -212,12 +228,34 @@
 		export ECS_APP_NAME_ALIAS
 		export ECS_HOST_MNT_DIR
 		export ECS_CONTAINER_MNT_DIR
+		export ECS_CONFIG_MOUNT_PATH
+		export ECS_CONFIG_FILE
 		export ECS_INTERNAL_PORT
 		export ECS_EXTERNAL_PORT
 		export ECS_INTERNAL_SECURE_PORT
 		export ECS_EXTERNAL_SECURE_PORT
 		export DOCKER_SIM_NWNAME
 
+		if [ $1 == "PROXY" ]; then
+			ECS_HTTP_PROXY_CONFIG_PORT=$HTTP_PROXY_CONFIG_PORT  #Set if proxy is started
+			ECS_HTTP_PROXY_CONFIG_HOST_NAME=$HTTP_PROXY_CONFIG_HOST_NAME #Set if proxy is started
+			if [ $ECS_HTTP_PROXY_CONFIG_PORT -eq 0 ] || [ -z "$ECS_HTTP_PROXY_CONFIG_HOST_NAME" ]; then
+				echo -e $YELLOW" Warning: HTTP PROXY will not be configured, proxy app not started"$EYELLOW
+			else
+				echo " Configured with http proxy"
+			fi
+		else
+			ECS_HTTP_PROXY_CONFIG_PORT=0
+			ECS_HTTP_PROXY_CONFIG_HOST_NAME=""
+			echo " Configured without http proxy"
+		fi
+		export ECS_HTTP_PROXY_CONFIG_PORT
+		export ECS_HTTP_PROXY_CONFIG_HOST_NAME
+
+		dest_file=$SIM_GROUP/$ECS_COMPOSE_DIR/$ECS_HOST_MNT_DIR/$ECS_CONFIG_FILE
+
+		envsubst < $2 > $dest_file
+
 		__start_container $ECS_COMPOSE_DIR NODOCKERARGS 1 $ECS_APP_NAME
 
 		__check_service_start $ECS_APP_NAME $ECS_PATH$ECS_ALIVE_URL
@@ -279,9 +317,9 @@
 # Perform curl retries when making direct call to ECS for the specified http response codes
 # Speace separated list of http response codes
 # args: [<response-code>]*
-use_agent_retries() {
+use_ecs_retries() {
 	echo -e $BOLD"Do curl retries to the ECS REST inteface for these response codes:$@"$EBOLD
-	ECS_AGENT_RETRY_CODES=$@
+	ECS_RETRY_CODES=$@
 	echo ""
 	return 0
 }
@@ -1368,7 +1406,7 @@
 }
 
 # API Test function: GET /ei-producer/v1/eiproducers/{eiProducerId}/eijobs
-# args: <response-code> <producer-id> (EMPTY | [<job-id> <type-id> <target-url> <job-owner> <template-job-file>]+)
+# args: (V1-1) <response-code> <producer-id> (EMPTY | [<job-id> <type-id> <target-url> <job-owner> <template-job-file>]+)
 # (Function for test scripts)
 ecs_api_edp_get_producer_jobs() {
 	__log_test_start $@
@@ -1431,6 +1469,69 @@
 	return 0
 }
 
+# API Test function: GET /ei-producer/v1/eiproducers/{eiProducerId}/eijobs
+# args: (V1-2) <response-code> <producer-id> (EMPTY | [<job-id> <type-id> <target-url> <job-owner> <template-job-file>]+)
+# (Function for test scripts)
+ecs_api_edp_get_producer_jobs_2() {
+	__log_test_start $@
+
+	#Valid number of parameter 2,3,7,11
+	paramError=1
+	if [ $# -eq 2 ]; then
+		paramError=0
+	fi
+	if [ $# -eq 3 ] && [ "$3" == "EMPTY" ]; then
+		paramError=0
+	fi
+	variablecount=$(($#-2))
+	if [ $# -gt 3 ] && [ $(($variablecount%5)) -eq 0 ]; then
+		paramError=0
+	fi
+	if [ $paramError -eq 1 ]; then
+		__print_err "<response-code> <producer-id> (EMPTY | [<job-id> <type-id> <target-url> <job-owner> <template-job-file>]+)" $@
+		return 1
+	fi
+
+	query="/ei-producer/v1/eiproducers/$2/eijobs"
+    res="$(__do_curl_to_api ECS GET $query)"
+    status=${res:${#res}-3}
+	if [ $status -ne $1 ]; then
+		__log_test_fail_status_code $1 $status
+		return 1
+	fi
+	if [ $# -gt 2 ]; then
+		body=${res:0:${#res}-3}
+		targetJson="["
+		if [ $# -gt 3 ]; then
+			arr=(${@:3})
+			for ((i=0; i<$(($#-3)); i=i+5)); do
+				if [ "$targetJson" != "[" ]; then
+					targetJson=$targetJson","
+				fi
+				if [ -f ${arr[$i+4]} ]; then
+					jobfile=$(cat ${arr[$i+4]})
+					jobfile=$(echo "$jobfile" | sed "s/XXXX/${arr[$i]}/g")
+				else
+					_log_test_fail_general "Job template file "${arr[$i+4]}", does not exist"
+					return 1
+				fi
+				targetJson=$targetJson"{\"ei_job_identity\":\"${arr[$i]}\",\"ei_type_identity\":\"${arr[$i+1]}\",\"target_uri\":\"${arr[$i+2]}\",\"owner\":\"${arr[$i+3]}\",\"ei_job_data\":$jobfile, \"last_updated\":\"????\"}"
+			done
+		fi
+		targetJson=$targetJson"]"
+
+		echo " TARGET JSON: $targetJson" >> $HTTPLOG
+		res=$(python3 ../common/compare_json.py "$targetJson" "$body")
+
+		if [ $res -ne 0 ]; then
+			__log_test_fail_body
+			return 1
+		fi
+	fi
+
+	__log_test_pass
+	return 0
+}
 
 ##########################################
 ####          Service status          ####
diff --git a/test/common/prodstub_api_functions.sh b/test/common/prodstub_api_functions.sh
index 4dfe06b..098e58f 100644
--- a/test/common/prodstub_api_functions.sh
+++ b/test/common/prodstub_api_functions.sh
@@ -340,6 +340,32 @@
     return $?
 }
 
+# Prodstub API: Get job data for a job and compare with a target job json
+# <response-code> <producer-id> <job-id> <type-id> <target-url> <job-owner> <template-job-file>
+# (Function for test scripts)
+prodstub_check_jobdata_2() {
+	__log_test_start $@
+	if [ $# -ne 7 ]; then
+		__print_err "<response-code> <producer-id> <job-id> <type-id> <target-url> <job-owner> <template-job-file>" $@
+		return 1
+	fi
+    if [ -f $7 ]; then
+        jobfile=$(cat $7)
+        jobfile=$(echo "$jobfile" | sed "s/XXXX/$3/g")
+    else
+        _log_test_fail_general "Template file "$7" for jobdata, does not exist"
+        return 1
+    fi
+    targetJson="{\"ei_job_identity\":\"$3\",\"ei_type_identity\":\"$4\",\"target_uri\":\"$5\",\"owner\":\"$6\", \"ei_job_data\":$jobfile,\"last_updated\":\"????\"}"
+    file="./tmp/.p.json"
+	echo "$targetJson" > $file
+
+    curlString="curl -X GET -skw %{http_code} $PROD_STUB_PATH/jobdata/$2/$3"
+
+    __execute_curl_to_prodstub TEST $1 "$curlString" $file
+    return $?
+}
+
 # Prodstub API: Delete the job data
 # <response-code> <producer-id> <job-id>
 # (Function for test scripts)
diff --git a/test/common/test_env-onap-honolulu.sh b/test/common/test_env-onap-honolulu.sh
index f3c5b51..ba79dc4 100644
--- a/test/common/test_env-onap-honolulu.sh
+++ b/test/common/test_env-onap-honolulu.sh
@@ -80,7 +80,7 @@
 
 # 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"
+ECS_IMAGE_TAG_REMOTE_RELEASE_ORAN="1.0.1"
 
 
 # Control Panel image and tag - uses cherry release
@@ -90,7 +90,7 @@
 
 # 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"
+RAPP_CAT_IMAGE_TAG_REMOTE_RELEASE_ORAN="1.0.1"
 
 
 # Near RT RIC Simulator image and tags - uses cherry release
@@ -202,7 +202,7 @@
 
 ECS_LOGPATH="/var/log/enrichment-coordinator-service/application.log" # Path the application log in the ECS container
 ECS_APP_NAME_ALIAS="enrichment-service-container"        # Alias name, name used by the control panel
-ECS_HOST_MNT_DIR="./mnt/db"                              # Mounted dir, relative to compose file, on the host
+ECS_HOST_MNT_DIR="./mnt"                                 # Mounted dir, relative to compose file, on the host
 ECS_CONTAINER_MNT_DIR="/var/enrichment-coordinator-service" # Mounted dir in the container
 ECS_ACTUATOR="/actuator/loggers/org.oransc.enrichment"   # Url for trace/debug
 ECS_CERT_MOUNT_DIR="./cert"
diff --git a/test/common/test_env-oran-cherry.sh b/test/common/test_env-oran-cherry.sh
index bc20aba..9ee0ebd 100755
--- a/test/common/test_env-oran-cherry.sh
+++ b/test/common/test_env-oran-cherry.sh
@@ -60,17 +60,17 @@
 
 # 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"
+POLICY_AGENT_IMAGE_TAG_LOCAL="2.1.1-SNAPSHOT"
+POLICY_AGENT_IMAGE_TAG_REMOTE_SNAPSHOT="2.1.1-SNAPSHOT"
+POLICY_AGENT_IMAGE_TAG_REMOTE="2.1.1"
+POLICY_AGENT_IMAGE_TAG_REMOTE_RELEASE="2.1.1"
 
 # 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"
+ECS_IMAGE_TAG_LOCAL="1.0.1-SNAPSHOT"
+ECS_IMAGE_TAG_REMOTE_SNAPSHOT="1.0.1-SNAPSHOT"
+ECS_IMAGE_TAG_REMOTE="1.0.1"
+ECS_IMAGE_TAG_REMOTE_RELEASE="1.0.1"
 
 
 # Control Panel image and tags
@@ -97,10 +97,10 @@
 
 # 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"
+RAPP_CAT_IMAGE_TAG_LOCAL="1.0.1-SNAPSHOT"
+RAPP_CAT_IMAGE_TAG_REMOTE_SNAPSHOT="1.0.1-SNAPSHOT"
+RAPP_CAT_IMAGE_TAG_REMOTE="1.0.1"
+RAPP_CAT_IMAGE_TAG_REMOTE_RELEASE="1.0.1"
 
 
 # Near RT RIC Simulator image and tags
@@ -212,7 +212,7 @@
 
 ECS_LOGPATH="/var/log/enrichment-coordinator-service/application.log" # Path the application log in the ECS container
 ECS_APP_NAME_ALIAS="enrichment-service-container"        # Alias name, name used by the control panel
-ECS_HOST_MNT_DIR="./mnt/db"                              # Mounted dir, relative to compose file, on the host
+ECS_HOST_MNT_DIR="./mnt"                                 # Mounted dir, relative to compose file, on the host
 ECS_CONTAINER_MNT_DIR="/var/enrichment-coordinator-service" # Mounted dir in the container
 ECS_ACTUATOR="/actuator/loggers/org.oransc.enrichment"   # Url for trace/debug
 ECS_CERT_MOUNT_DIR="./cert"
diff --git a/test/common/test_env-oran-dawn.sh b/test/common/test_env-oran-dawn.sh
index 8943ffd..f3baa03 100755
--- a/test/common/test_env-oran-dawn.sh
+++ b/test/common/test_env-oran-dawn.sh
@@ -74,11 +74,22 @@
 
 
 # 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"
+
+
+###########################################################
+##### Temporarily using cherry as dawn version is corrupted
+###########################################################
+# 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"
+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 - still using cherry version, no new version for dawn
@@ -193,7 +204,7 @@
 POLICY_AGENT_INTERNAL_SECURE_PORT=8433                   # Policy Agent container internal secure port (container -> container)
 POLICY_AGENT_APIS="V1 V2"                                # Supported northbound api versions
 PMS_VERSION="V2"                                         # Tested version of northbound API
-PMS_API_PREFIX=""                                        # api url prefix, only for V2
+PMS_API_PREFIX="/a1-policy"                              # api url prefix, only for V2
 
 POLICY_AGENT_APP_NAME="policymanagementservice"          # Name for Policy Agent container
 POLICY_AGENT_DISPLAY_NAME="Policy Management Service"
@@ -203,7 +214,7 @@
 POLICY_AGENT_CONFIG_KEY="policy-agent"                   # Key for consul config
 POLICY_AGENT_PKG_NAME="org.oransc.policyagent"           # Java base package name
 POLICY_AGENT_ACTUATOR="/actuator/loggers/$POLICY_AGENT_PKG_NAME" # Url for trace/debug
-POLICY_AGENT_ALIVE_URL=$PMS_API_PREFIX"/v2/status"       # Base path for alive check
+POLICY_AGENT_ALIVE_URL="$PMS_API_PREFIX/v2/status"       # Base path for alive check
 POLICY_AGENT_COMPOSE_DIR="policy_agent"                  # Dir in simulator_group for docker-compose
 POLICY_AGENT_CONFIG_MOUNT_PATH="/opt/app/policy-agent/config" # Path in container for config file
 POLICY_AGENT_DATA_MOUNT_PATH="/opt/app/policy-agent/data" # Path in container for data file
@@ -219,7 +230,7 @@
 
 ECS_LOGPATH="/var/log/enrichment-coordinator-service/application.log" # Path the application log in the ECS container
 ECS_APP_NAME_ALIAS="enrichment-service-container"        # Alias name, name used by the control panel
-ECS_HOST_MNT_DIR="./mnt/db"                              # Mounted dir, relative to compose file, on the host
+ECS_HOST_MNT_DIR="./mnt"                                 # Mounted db dir, relative to compose file, on the host
 ECS_CONTAINER_MNT_DIR="/var/enrichment-coordinator-service" # Mounted dir in the container
 ECS_ACTUATOR="/actuator/loggers/org.oransc.enrichment"   # Url for trace/debug
 ECS_CERT_MOUNT_DIR="./cert"
@@ -322,9 +333,9 @@
 RAPP_CAT_APP_NAME="rappcatalogueservice"                 # Name for the RAPP Catalogue
 RAPP_CAT_DISPLAY_NAME="RAPP Catalogue"
 RAPP_CAT_EXTERNAL_PORT=8680                              # RAPP Catalogue container external port (host -> container)
-RAPP_CAT_INTERNAL_PORT=8080                              # RAPP Catalogue container internal port (container -> container)
+RAPP_CAT_INTERNAL_PORT=8680                              # RAPP Catalogue container internal port (container -> container)
 RAPP_CAT_EXTERNAL_SECURE_PORT=8633                       # RAPP Catalogue container external secure port (host -> container)
-RAPP_CAT_INTERNAL_SECURE_PORT=8433                       # RAPP Catalogue container internal secure port (container -> container)
+RAPP_CAT_INTERNAL_SECURE_PORT=8633                       # RAPP Catalogue container internal secure port (container -> container)
 RAPP_CAT_ALIVE_URL="/services"                           # Base path for alive check
 RAPP_CAT_COMPOSE_DIR="rapp_catalogue"                    # Dir in simulator_group for docker-compose
 
diff --git a/test/cr/app/cr.py b/test/cr/app/cr.py
index fa42c20..9e04d57 100644
--- a/test/cr/app/cr.py
+++ b/test/cr/app/cr.py
@@ -23,6 +23,7 @@
 import json
 import traceback
 import logging
+import socket
 
 # Disable all logging of GET on reading counters and db
 class AjaxFilter(logging.Filter):
@@ -58,6 +59,23 @@
 SERVER_ERROR="Server error :"
 TIME_STAMP="cr-timestamp"
 
+# Remote host lookup and print host name
+def remote_host_logging(request):
+
+    if request.environ.get('HTTP_X_FORWARDED_FOR') is None:
+        host_ip=str(request.environ['REMOTE_ADDR'])
+    else:
+        host_ip=str(request.environ['HTTP_X_FORWARDED_FOR'])
+    prefix='::ffff:'
+    if (host_ip.startswith('::ffff:')):
+        host_ip=host_ip[len(prefix):]
+    try:
+        name, alias, addresslist = socket.gethostbyaddr(host_ip)
+        print("Calling host: "+str(name))
+    except Exception:
+        print("Calling host not possible to retrieve IP: "+str(host_ip))
+
+
 #I'm alive function
 @app.route('/',
     methods=['GET'])
@@ -131,6 +149,7 @@
 
     try:
         print("Received callback for id: "+id +", content-type="+request.content_type)
+        remote_host_logging(request)
         try:
             if (request.content_type == MIME_JSON):
                 data = request.data
diff --git a/test/cr/app/nginx.conf b/test/cr/app/nginx.conf
index 479d896..e1b9ff9 100644
--- a/test/cr/app/nginx.conf
+++ b/test/cr/app/nginx.conf
@@ -39,7 +39,10 @@
 
         # serve dynamic requests
         location / {
-        proxy_pass      http://localhost:2222;
+           proxy_set_header   Host                 $host;
+           proxy_set_header   X-Real-IP            $remote_addr;
+           proxy_set_header   X-Forwarded-For      $proxy_add_x_forwarded_for;
+           proxy_pass      http://localhost:2222;
         }
     }
     ##
diff --git a/test/simulator-group/ecs/application.yaml b/test/simulator-group/ecs/application.yaml
index 75b11ad..acc914c 100644
--- a/test/simulator-group/ecs/application.yaml
+++ b/test/simulator-group/ecs/application.yaml
@@ -51,4 +51,6 @@
     trust-store-used: false
     trust-store-password: policy_agent
     trust-store: /opt/app/enrichment-coordinator-service/etc/cert/truststore.jks
+    http.proxy-host: $ECS_HTTP_PROXY_CONFIG_HOST_NAME
+    http.proxy-port: $ECS_HTTP_PROXY_CONFIG_PORT
   vardata-directory: /var/enrichment-coordinator-service
\ No newline at end of file
diff --git a/test/simulator-group/ecs/docker-compose.yml b/test/simulator-group/ecs/docker-compose.yml
index 824156e..b74252a 100644
--- a/test/simulator-group/ecs/docker-compose.yml
+++ b/test/simulator-group/ecs/docker-compose.yml
@@ -27,7 +27,8 @@
         aliases:
           - ${ECS_APP_NAME_ALIAS}
     volumes:
-    - ${ECS_HOST_MNT_DIR}:${ECS_CONTAINER_MNT_DIR}
+    - ${ECS_HOST_MNT_DIR}/db:${ECS_CONTAINER_MNT_DIR}
+    - ${ECS_HOST_MNT_DIR}/$ECS_CONFIG_FILE:${ECS_CONFIG_MOUNT_PATH}/$ECS_CONFIG_FILE
     ports:
     - ${ECS_EXTERNAL_PORT}:${ECS_INTERNAL_PORT}
     - ${ECS_EXTERNAL_SECURE_PORT}:${ECS_INTERNAL_SECURE_PORT}
diff --git a/test/simulator-group/ecs/mnt/.gitignore b/test/simulator-group/ecs/mnt/.gitignore
index aa0d57e..1e82fc7 100644
--- a/test/simulator-group/ecs/mnt/.gitignore
+++ b/test/simulator-group/ecs/mnt/.gitignore
@@ -1 +1 @@
-database
+*.yaml
diff --git a/test/simulator-group/policy_agent/mnt/application.yaml b/test/simulator-group/policy_agent/mnt/application.yaml
deleted file mode 100644
index 30ec4de..0000000
--- a/test/simulator-group/policy_agent/mnt/application.yaml
+++ /dev/null
@@ -1,66 +0,0 @@
-################################################################################
-#   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.                                             #
-################################################################################
-
-spring:
-  profiles:
-    active: prod
-  main:
-    allow-bean-definition-overriding: true
-  aop:
-    auto: false
-management:
-  endpoints:
-    web:
-      exposure:
-        # Enabling of springboot actuator features. See springboot documentation.
-        include: "loggers,logfile,health,info,metrics,threaddump,heapdump"
-
-logging:
-  # Configuration of logging
-  level:
-    ROOT: ERROR
-    org.springframework: ERROR
-    org.springframework.data: ERROR
-    org.springframework.web.reactive.function.client.ExchangeFunctions: ERROR
-    org.onap.ccsdk.oran.a1policymanagementservice: INFO
-  file: /var/log/policy-agent/application.log
-
-server:
-  # Configuration of the HTTP/REST server. The parameters are defined and handeled by the springboot framework.
-  # See springboot documentation.
-  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:
-  # Location of the component configuration file. The file will only be used if the Consul database is not used;
-  # configuration from the Consul will override the file.
-  filepath: /opt/app/policy-agent/data/application_configuration.json
-  webclient:
-    # Configuration of the trust store used for the HTTP client (outgoing requests)
-    # The file location and the password for the truststore is only relevant if trust-store-used == true
-    # Note that the same keystore as for the server is used.
-    trust-store-used: false
-    trust-store-password: policy_agent
-    trust-store: /opt/app/policy-agent/etc/cert/truststore.jks
-    # Configuration of usage of HTTP Proxy for the southbound accesses.
-    # The HTTP proxy (if configured) will only be used for accessing NearRT RIC:s
-    http.proxy-host: 
-    http.proxy-port: 0
diff --git a/test/simulator-group/sim-monitor.js b/test/simulator-group/sim-monitor.js
index 56a6e6d..aabc7d7 100644
--- a/test/simulator-group/sim-monitor.js
+++ b/test/simulator-group/sim-monitor.js
@@ -941,14 +941,14 @@
           "<html>" +
           "<head>" +
             "<meta http-equiv=\"refresh\" content=\"2\">"+  //2 sec auto refresh
-            "<title>Policy Agent and simulator monitor</title>"+
+            "<title>Policy Management Service and simulator monitor</title>"+
             "</head>" +
             "<body>" +
             "<font size=\"-3\" face=\"monospace\">" +
             "<p>Change basename in url if other ric sim prefix is used</p>" +
             "<p>Change pmsprefix in url if pms with other prefix is used</p>" +
             "</font>" +
-            "<h3>Policy agent</h3>" +
+            "<h3>Policy Management Service</h3>" +
             "<font face=\"monospace\">" +
             "Status:..............................." + formatDataRow(ag1) + "<br>" +
             "Services:............................." + formatIdRowCompact(ag2) + "<br>" +
@@ -965,7 +965,7 @@
             "Fetched responses.............................." + formatDataRow(mr5) + "<br>" +
             "Current responses waiting......................" + formatDataRow(mr6) + "<br>" +
             "</font>"+
-            "<h3>Callback receiver</h3>" +
+            "<h3>Callback|Notification receiver</h3>" +
             "<font face=\"monospace\">" +
             "Callbacks received:..................." + formatDataRow(cr1) + "<br>" +
             "Callbacks fetched:...................." + formatDataRow(cr2) + "<br>" +
@@ -975,7 +975,7 @@
             "<font face=\"monospace\">" +
             "Services:............................." + formatIdRowCompact(rc_services) + "<br>" +
             "</font>" +
-            "<h3>Near-RT RIC Simulators</h3>" +
+            "<h3>Near-RT RIC | A1 Simulators</h3>" +
             "<font face=\"monospace\">"
 
             htmlStr=htmlStr+padding("Near-RT RIC Simulator name", 35,"&nbsp;")
