Initial commit to run the CLI in its own docker container. Currently
the cli is started with the -L option when the user logs into the
container using ssh. More flexibility will be added in future updates.
This update addresses https://jira.opencord.org/browse/CORD-1106

Change-Id: Id104e6fe01202af7073ade45a9c2cea0bdbcc4ae
diff --git a/Makefile b/Makefile
index d41de1a..28502c1 100644
--- a/Makefile
+++ b/Makefile
@@ -105,6 +105,9 @@
 dashd:
 	docker build -t cord/dashd -f docker/Dockerfile.dashd .
 
+vcli:
+	docker build -t cord/vcli -f docker/Dockerfile.cli .
+
 onos:
 	docker build -t cord/onos -f docker/Dockerfile.onos docker
 
diff --git a/cli/setup.sh b/cli/setup.sh
new file mode 100755
index 0000000..d800ee9
--- /dev/null
+++ b/cli/setup.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+echo "export DOCKER_HOST_IP=$DOCKER_HOST_IP" > /home/voltha/.bashrc
+echo "export PYTHONPATH=/cli" >> /home/voltha/.bashrc
+echo "export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" >> /home/voltha/.bashrc
+echo "export DOCKER_HOST_IP=$DOCKER_HOST_IP" > /home/voltha/.bash_profile
+echo "export PYTHONPATH=/cli" >> /home/voltha/.bash_profile
+echo "export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" >> /home/voltha/.bash_profile
+echo '/cli/cli/main.py -L -C $DOCKER_HOST_IP:8500' >> /home/voltha/.bash_profile
+echo "logout" >> /home/voltha/.bash_profile
+chown voltha.voltha /home/voltha/.bash_profile
+/usr/sbin/sshd -D
+
diff --git a/compose/docker-compose-system-test.yml b/compose/docker-compose-system-test.yml
index 84a8dd2..88d2591 100644
--- a/compose/docker-compose-system-test.yml
+++ b/compose/docker-compose-system-test.yml
@@ -146,6 +146,18 @@
     - default
     - ponmgmt
 
+  #
+  # Voltha cli container
+  #
+  vcli:
+    image: cord/vcli
+    environment:
+      DOCKER_HOST_IP: "${DOCKER_HOST_IP}"
+    ports:
+    - "5022:22"
+    depends_on:
+    - voltha
+
 #############################################
 # Item below this line will soon be removed.#
 #############################################
diff --git a/docker/Dockerfile.cli b/docker/Dockerfile.cli
new file mode 100755
index 0000000..95d5617
--- /dev/null
+++ b/docker/Dockerfile.cli
@@ -0,0 +1,49 @@
+#!/usr/bin/env python
+#
+# 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.
+#
+
+FROM cord/voltha-base
+
+MAINTAINER Sergio Slobodrian <sslobodr@ciena.com>
+
+# Bundle app source
+RUN mkdir /cli && touch /cli/__init__.py
+ENV PYTHONPATH=/cli
+COPY common /cli/common
+COPY cli /cli/cli
+COPY voltha /cli/voltha
+RUN useradd -b /home -d /home/voltha voltha -s /bin/bash
+RUN mkdir /home/voltha
+RUN chown voltha.voltha /home/voltha
+RUN echo "voltha:admin" | chpasswd
+RUN apt-get update && apt-get install -y openssh-server
+RUN apt-get update && apt-get install -y openssh-server
+RUN mkdir /var/run/sshd
+RUN echo 'root:screencast' | chpasswd
+RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
+
+# SSH login fix. Otherwise user is kicked off after login
+RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
+
+ENV NOTVISIBLE "in users profile"
+RUN echo "export VISIBLE=now" >> /etc/profile
+
+EXPOSE 22
+
+# Exposing process and default entry point
+ENTRYPOINT ["/usr/bin/dumb-init", "--"]
+
+CMD ["/cli/cli/setup.sh"]