SEBA-247 alarm-generator docker container

Change-Id: I4c49819529f7201aae9362b0d70b65afeeeef42d
diff --git a/Makefile b/Makefile
index f717a09..1c4d762 100644
--- a/Makefile
+++ b/Makefile
@@ -83,6 +83,7 @@
 	tester \
 	config-push \
 	j2 \
+	alarm-generator \
 	test_runner
 
 # The following list was scavanged from the compose / stack files as well as
@@ -148,7 +149,7 @@
 
 FETCH_IMAGE_LIST = $(shell echo $(FETCH_BUILD_IMAGE_LIST) $(FETCH_COMPOSE_IMAGE_LIST) $(FETCH_K8S_IMAGE_LIST) | tr ' ' '\n' | sort -u)
 
-.PHONY: $(DIRS) $(DIRS_CLEAN) $(DIRS_FLAKE8) flake8 base voltha ofagent netconf shovel onos dashd cli portainer grafana nginx consul envoy go-builder envoyd tools opennms logstash unum ponsim start stop tag push pull
+.PHONY: $(DIRS) $(DIRS_CLEAN) $(DIRS_FLAKE8) flake8 base voltha ofagent netconf shovel onos dashd cli alarm-generator portainer grafana nginx consul envoy go-builder envoyd tools opennms logstash unum ponsim start stop tag push pull
 
 # This should to be the first and default target in this Makefile
 help:
@@ -185,6 +186,7 @@
 	@echo "unum         : Build the unum docker container"
 	@echo "ponsim       : Build the ponsim docker container"
 	@echo "j2           : Build the Jinja2 template container"
+        @echo "alarm-generator : Build the alarm-generator container"
 	@echo "test_runner  : Build a container from which tests are run"
 	@echo "start        : Start VOLTHA on the current system"
 	@echo "stop         : Stop VOLTHA on the current system"
@@ -233,7 +235,7 @@
 
 prod-containers: base voltha ofagent netconf shovel onos dashd cli grafana consul tools envoy fluentd unum j2
 
-containers: base voltha ofagent netconf shovel onos tester config-push dashd cli portainer grafana nginx consul tools envoy fluentd unum ponsim j2 test_runner
+containers: base voltha ofagent netconf shovel onos tester config-push dashd cli portainer grafana nginx consul tools envoy fluentd unum ponsim j2 alarm-generator test_runner
 
 base:
 	docker build $(DOCKER_BUILD_ARGS) -t ${REGISTRY}${REPOSITORY}voltha-base:${TAG} -f docker/Dockerfile.base .
@@ -349,6 +351,13 @@
 j2:
 	docker build $(DOCKER_BUILD_ARGS) -t ${REGISTRY}${REPOSITORY}voltha-j2:${TAG} -f docker/Dockerfile.j2 docker
 
+alarm-generator:
+ifneq ($(VOLTHA_BUILD),docker)
+	docker build $(DOCKER_BUILD_ARGS) -t ${REGISTRY}${REPOSITORY}voltha-alarm-generator:${TAG} -f docker/Dockerfile.alarm-generator .
+else
+	docker build $(DOCKER_BUILD_ARGS) -t ${REGISTRY}${REPOSITORY}voltha-alarm-generator:${TAG} -f docker/Dockerfile.alarm-generator_d .
+endif
+
 test_runner:
 ifeq ($(VOLTHA_BUILD),docker)
 	docker build $(DOCKER_BUILD_ARGS) -t ${REGISTRY}${REPOSITORY}voltha-test_runner:${TAG} -f docker/Dockerfile.test_runner .
diff --git a/docker/Dockerfile.alarm-generator b/docker/Dockerfile.alarm-generator
new file mode 100644
index 0000000..933bc89
--- /dev/null
+++ b/docker/Dockerfile.alarm-generator
@@ -0,0 +1,34 @@
+# Copyright 2016 the original author or authors.
+#
+# 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.
+ARG TAG=latest
+ARG REGISTRY=
+ARG REPOSITORY=
+
+FROM ${REGISTRY}${REPOSITORY}voltha-base:${TAG}
+
+MAINTAINER Voltha Community <info@opennetworking.org>
+
+# Bundle app source
+RUN mkdir /alarm-generator && touch /alarm-generator/__init__.py
+ENV PYTHONPATH=/alarm-generator
+COPY common /alarm-generator/common
+COPY alarm-generator alarm-generator/alarm-generator
+COPY voltha /alarm-generator/voltha
+RUN useradd -b /home -d /home/voltha voltha -s /bin/bash
+RUN mkdir /home/voltha
+RUN chown voltha.voltha /home/voltha
+RUN echo "export VISIBLE=now" >> /etc/profile
+
+# Exposing process and default entry point
+ENTRYPOINT ["/usr/bin/dumb-init", "python", "/alarm-generator/alarm-generator/main.py"]
diff --git a/docker/Dockerfile.alarm-generator_d b/docker/Dockerfile.alarm-generator_d
new file mode 100644
index 0000000..eaad62a
--- /dev/null
+++ b/docker/Dockerfile.alarm-generator_d
@@ -0,0 +1,38 @@
+# Copyright 2016 the original author or authors.
+#
+# 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.
+ARG TAG=latest
+ARG REGISTRY=
+ARG REPOSITORY=
+
+FROM ${REGISTRY}${REPOSITORY}voltha-protos:${TAG} as protos
+FROM ${REGISTRY}${REPOSITORY}voltha-base:${TAG}
+
+MAINTAINER Voltha Community <info@opennetworking.org>
+
+# Bundle app source
+RUN mkdir /alarm-generator && touch /alarm-generator/__init__.py
+ENV PYTHONPATH=/alarm-generator
+COPY common /alarm-generator/common
+COPY alarm-generator alarm-generator/alarm-generator
+COPY voltha /alarm-generator/voltha
+COPY --from=protos /protos/voltha /alarm-generator/voltha/protos
+COPY --from=protos /protos/google/api /alarm-generator/voltha/protos/third_party/google/api
+COPY --from=protos /protos/asfvolt16_olt /alarm-generator/voltha/adapters/asfvolt16_olt/protos
+RUN useradd -b /home -d /home/voltha voltha -s /bin/bash
+RUN mkdir /home/voltha
+RUN chown voltha.voltha /home/voltha
+RUN echo "export VISIBLE=now" >> /etc/profile
+
+# Exposing process and default entry point
+ENTRYPOINT ["/usr/bin/dumb-init", "python", "/alarm-generator/alarm-generator/main.py"]