reorg to use common/tosca/ directory for shared TOSCA files, update of opencloud service-profile
unified config into common/Makedefs, included common/Makefile
strip last path component to get directory
clarify container target names, dependency fixes on service dir
fix test-standalone
converted other configs, added .DEFAULT_GOAL's
immediately set paths, run docker under sudo
port and cleanup fixes
fixes after testing cord-pod
follow log files, fix typo metronetwork/xos.yaml

Change-Id: I3e28d10ffd37a22c4a2927288924db453ed6ec44
diff --git a/frontend/Makefile b/frontend/Makefile
index ed34f2f..c3bbc69 100644
--- a/frontend/Makefile
+++ b/frontend/Makefile
@@ -1,106 +1,26 @@
-include ../common/Makedefs
+# frontend/Makefile
 
-MYIP:=$(shell hostname -i)
-CONFIG_DIR:=$(shell pwd)
-DOCKER_COMPOSE_YML=./onboarding-docker-compose/docker-compose.yml
-BOOTSTRAP_YML=./docker-compose-bootstrap.yml
-DOCKER_PROJECT=frontend
-BOOTSTRAP_PROJECT=frontendbs
-XOS_BOOTSTRAP_PORT=9998
-XOS_UI_PORT=9999
-ADMIN_USERNAME=padmin@vicci.org
-ADMIN_PASSWORD=letmein
-RUN_TOSCA_BOOTSTRAP=python ../common/run_tosca.py $(XOS_BOOTSTRAP_PORT) $(ADMIN_USERNAME) $(ADMIN_PASSWORD)
-RUN_TOSCA=python ../common/run_tosca.py $(XOS_UI_PORT) $(ADMIN_USERNAME) $(ADMIN_PASSWORD)
+CONFIG_DIR         := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
+COMMON_DIR         := $(abspath ../common )
 
-frontend: prereqs dirs download_xos download_services bootstrap onboarding frontendconfig
+.DEFAULT_GOAL      := frontend
 
-prereqs:
-	sudo make -f ../common/Makefile.prereqs
+DOCKER_PROJECT     ?= frontend
+BOOTSTRAP_PROJECT  ?= frontendbs
 
-dirs:
-	# if this directory doesn't exist, then docker-compose will create it with root permission
-	mkdir -p key_import
-	mkdir -p onboarding-docker-compose
+XOS_BOOTSTRAP_PORT ?= 9998
+XOS_UI_PORT        ?= 9999
 
-download_xos:
-	make -f ../common/Makefile.services xos_core
+# Include common functions
+include $(COMMON_DIR)/Makefile
 
-download_services:
-	make -f ../common/Makefile.services
-
-update_services:
-	make -f ../common/Makefile.services update
-
-update_xos:
-	make -f ../common/Makefile.services update_xos
-
-bootstrap:
-	@echo "[BOOTSTRAP]"
-	sudo rm -f onboarding-docker-compose/docker-compose.yml
-	sudo CONFIG_DIR=$(CONFIG_DIR) docker-compose -p $(BOOTSTRAP_PROJECT) -f $(BOOTSTRAP_YML) up -d
-	bash ../common/wait_for_xos_port.sh $(XOS_BOOTSTRAP_PORT)
-	sudo docker-compose -p $(BOOTSTRAP_PROJECT) -f $(BOOTSTRAP_YML) run xos_bootstrap_ui python /opt/xos/tosca/run.py none - < ../common/fixtures.yaml
-	sudo docker-compose -p $(BOOTSTRAP_PROJECT) -f $(BOOTSTRAP_YML) run xos_bootstrap_ui python /opt/xos/tosca/run.py none - < ../common/mydeployment.yaml
-	$(RUN_TOSCA_BOOTSTRAP) xos.yaml
+frontend: prereqs config_dirs xos_download cord_services bootstrap onboarding frontendconfig
 
 onboarding:
 	@echo "[ONBOARDING]"
 	# on-board any services here
-	bash ../common/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) xos
-	bash ../common/wait_for_xos_port.sh $(XOS_UI_PORT)
-
-frontendconfig:
-	@echo "[FRONTENDCONFIG]"
-	$(RUN_TOSCA) sample.yaml
-
-local_containers: prereqs download_xos
-	make -f ../common/Makefile.containers xos_devel synchronizer onboarding_synchronizer
-
-rebuild:
-	bash ../common/rebuild.sh $(XOS_BOOTSTRAP_PORT)
-	bash ../common/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) xos
-
-stop:
-	test ! -s $(DOCKER_COMPOSE_YML) || sudo docker-compose -p $(DOCKER_PROJECT) -f $(DOCKER_COMPOSE_YML) stop
-	sudo docker-compose -p $(BOOTSTRAP_PROJECT) -f $(BOOTSTRAP_YML) stop
-
-showlogs:
-	sudo docker-compose -p $(DOCKER_PROJECT) -f $(DOCKER_COMPOSE_YML) logs
-
-showlogs_bootstrap:
-	sudo docker-compose -p $(BOOTSTRAP_PROJECT) -f $(BOOTSTRAP_YML) logs
-
-rm: stop
-	test ! -s $(DOCKER_COMPOSE_YML) || sudo docker-compose -p $(DOCKER_PROJECT) -f $(DOCKER_COMPOSE_YML) rm -f
-	sudo docker-compose -p $(BOOTSTRAP_PROJECT) -f $(BOOTSTRAP_YML) rm -f
-	[ -n "$(shell docker images -f \"dangling=true\" -q)" ] && docker rmi $(shell docker images -f "dangling=true" -q) || true
-
-ps:
-	sudo docker-compose ps
-
-enter-ui:
-	sudo docker exec -ti frontend_xos_ui_1 bash
-
-enter-bootstrap-ui:
-	sudo docker exec -ti frontendbs_xos_bootstrap_ui_1 bash
-
-enter-db:
-	sudo docker exec -ti frontendbs_xos_db_1 bash
-
-django-restart:
-	sudo docker exec frontend_xos_ui_1 touch /opt/xos/xos/settings.py
-
-clean-config-folder:
-	sudo docker exec frontend_xos_ui_1 rm -f /opt/xos/xos_configuration/xos_mcord_config
-	sudo docker exec frontend_xos_ui_1 rm -f /opt/xos/xos_configuration/xos_cord_config
-
-mock-cord-pod: onboard-cord-pod
-	$(RUN_TOSCA) ../cord-pod/mgmt-net.yaml
-	$(RUN_TOSCA) mocks/onos.yaml
-	$(RUN_TOSCA) ../cord-pod/cord-services.yaml
-	$(RUN_TOSCA) ../cord-pod/cord-test-subscriber.yaml
-	$(RUN_TOSCA) ../cord-pod/cord-volt-devices.yaml
+	bash $(COMMON_DIR)/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) xos
+	bash $(COMMON_DIR)/wait_for_xos_port.sh $(XOS_UI_PORT)
 
 onboard-cord-pod:
 	sudo bash -c "echo somekey > key_import/vsg_rsa"
@@ -109,7 +29,7 @@
 	sudo bash -c "echo somekey > key_import/volt_rsa.pub"
 	sudo bash -c "echo somekey > key_import/onos_rsa"
 	sudo bash -c "echo somekey > key_import/onos_rsa.pub"
-	$(RUN_TOSCA_BOOTSTRAP) ../common/disable-onboarding.yaml
+	$(RUN_TOSCA_BOOTSTRAP) $(COMMON_DIR)/tosca/disable-onboarding.yaml
 	$(RUN_TOSCA_BOOTSTRAP) $(SERVICE_DIR)/vrouter/xos/vrouter-onboard.yaml
 	$(RUN_TOSCA_BOOTSTRAP) $(SERVICE_DIR)/olt/xos/volt-onboard.yaml
 	$(RUN_TOSCA_BOOTSTRAP) $(SERVICE_DIR)/vsg/xos/vsg-onboard.yaml
@@ -117,54 +37,70 @@
 	$(RUN_TOSCA_BOOTSTRAP) $(SERVICE_DIR)/fabric/xos/fabric-onboard.yaml
 	$(RUN_TOSCA_BOOTSTRAP) $(SERVICE_DIR)/vtr/xos/vtr-onboard.yaml
 	$(RUN_TOSCA_BOOTSTRAP) xos-cord-branding.yaml
-	$(RUN_TOSCA_BOOTSTRAP) ../common/enable-onboarding.yaml
-	bash ../common/wait_for_onboarding_ready.sh 9998 services/vrouter
-	bash ../common/wait_for_onboarding_ready.sh 9998 services/volt
-	bash ../common/wait_for_onboarding_ready.sh 9998 services/vsg
-	bash ../common/wait_for_onboarding_ready.sh 9998 services/onos
-	bash ../common/wait_for_onboarding_ready.sh 9998 services/fabric
-	bash ../common/wait_for_onboarding_ready.sh 9998 services/vtr
-	bash ../common/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) xos
-	bash ../common/wait_for_xos_port.sh $(XOS_UI_PORT)
+	$(RUN_TOSCA_BOOTSTRAP) $(COMMON_DIR)/tosca/enable-onboarding.yaml
+	bash $(COMMON_DIR)/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) services/vrouter
+	bash $(COMMON_DIR)/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) services/volt
+	bash $(COMMON_DIR)/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) services/vsg
+	bash $(COMMON_DIR)/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) services/onos
+	bash $(COMMON_DIR)/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) services/fabric
+	bash $(COMMON_DIR)/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) services/vtr
+	bash $(COMMON_DIR)/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) xos
+	bash $(COMMON_DIR)/wait_for_xos_port.sh $(XOS_UI_PORT)
+
+frontendconfig: sample.yaml
+	@echo "[FRONTENDCONFIG]"
+	$(RUN_TOSCA) sample.yaml
+
+mock-cord-pod: onboard-cord-pod
+	$(RUN_TOSCA) $(COMMON_DIR)/tosca/mgmt-net.yaml
+	$(RUN_TOSCA) mocks/onos.yaml
+	$(RUN_TOSCA) ../cord-pod/cord-services.yaml
+	$(RUN_TOSCA) ../cord-pod/cord-test-subscriber.yaml
+	$(RUN_TOSCA) ../cord-pod/cord-volt-devices.yaml
 
 mock-mcord:
 	# check this
-	$(RUN_TOSCA) ../cord-pod/mgmt-net.yaml
+	$(RUN_TOSCA) $(COMMON_DIR)/tosca/mgmt-net.yaml
 	$(RUN_TOSCA) mocks/mcord.yaml
-	sudo docker exec frontend_xos_ui_1 cp /opt/xos/configurations/mcord/xos_mcord_config /opt/xos/xos_configuration/
-	sudo docker exec frontend_xos_ui_1 touch /opt/xos/xos/settings.py
+	sudo docker exec $(DOCKER_PROJECT)_xos_ui_1 cp /opt/xos/configurations/mcord/xos_mcord_config /opt/xos/xos_configuration/
+	sudo docker exec $(DOCKER_PROJECT)_xos_ui_1 touch /opt/xos/xos/settings.py
 
-exampleservice:
+exampleservice: $(SERVICE_DIR)/exampleservice
 	mkdir -p key_import
 	# fake keys are fine
 	sudo bash -c "echo somekey > key_import/exampleservice_rsa"
 	sudo bash -c "echo somekey > key_import/exampleservice_rsa.pub"
 	$(RUN_TOSCA_BOOTSTRAP) $(SERVICE_DIR)/exampleservice/xos/exampleservice-onboard.yaml
-	bash ../common/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) services/exampleservice
-	bash ../common/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) xos
-	bash ../common/wait_for_xos_port.sh $(XOS_UI_PORT)
+	bash $(COMMON_DIR)/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) services/exampleservice
+	bash $(COMMON_DIR)/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) xos
+	bash $(COMMON_DIR)/wait_for_xos_port.sh $(XOS_UI_PORT)
 
-hypercache:
+hypercache: $(SERVICE_DIR)/hypercache
 	$(RUN_TOSCA_BOOTSTRAP) $(SERVICE_DIR)/hypercache/xos/hpc-onboard.yaml
-	bash ../common/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) services/hpc
-	bash ../common/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) xos
-	bash ../common/wait_for_xos_port.sh $(XOS_UI_PORT)
+	bash $(COMMON_DIR)/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) services/hpc
+	bash $(COMMON_DIR)/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) xos
+	bash $(COMMON_DIR)/wait_for_xos_port.sh $(XOS_UI_PORT)
 	$(RUN_TOSCA) mocks/cdn.yaml
 	$(RUN_TOSCA) ../opencloud/cdn-content.yaml
 
-dashboard:
-	$(RUN_TOSCA) ./dashboard.yaml
+dashboard: dashboard.yaml
+	$(RUN_TOSCA) $(CONFIG_DIR)/dashboard.yaml
 
 # before executing this clone the service from: https://github.com/teone/mcord-slicing-ui.git
 onboard-mcord-slicing: slicing-ui
 	# fix ports (now they are set to use the FE config ones
 	@echo "[ONBOARDING UI SERVICES]"
-	bash ../common/wait_for_onboarding_ready.sh $(XOS_UI_PORT) xos
-	$(RUN_TOSCA_BOOTSTRAP) ../common/disable-onboarding.yaml
+	bash $(COMMON_DIR)/wait_for_onboarding_ready.sh $(XOS_UI_PORT) xos
+	$(RUN_TOSCA_BOOTSTRAP) $(COMMON_DIR)/disable-onboarding.yaml
 	$(RUN_TOSCA_BOOTSTRAP) $(SERVICE_DIR)/mcord-ui-slicing/xos/mcord-slicing-onboard.yaml
-	$(RUN_TOSCA_BOOTSTRAP) ../common/enable-onboarding.yaml
-	bash ../common/wait_for_onboarding_ready.sh $(XOS_UI_PORT) xos
-	bash ../common/wait_for_xos_port.sh $(XOS_UI_PORT)
+	$(RUN_TOSCA_BOOTSTRAP) $(COMMON_DIR)/enable-onboarding.yaml
+	bash $(COMMON_DIR)/wait_for_onboarding_ready.sh $(XOS_UI_PORT) xos
+	bash $(COMMON_DIR)/wait_for_xos_port.sh $(XOS_UI_PORT)
 
 slicing-ui:
 	$(RUN_TOSCA) ./mocks/mcord-slicing-ui.yaml
+
+clean-config-folder:
+	sudo docker exec $(DOCKER_PROJECT)_xos_ui_1 rm -f /opt/xos/xos_configuration/xos_mcord_config
+	sudo docker exec $(DOCKER_PROJECT)_xos_ui_1 rm -f /opt/xos/xos_configuration/xos_cord_config
+