Test: XOS onos integration rewrite.
Also use the existing dockerfile/makefile from xos project to build the xos related containers.

Change-Id: I8f26d0f4fe12da0698ca895186fdeb0ef0e3860a
diff --git a/src/test/setup/xos/Dockerfile b/src/test/setup/xos/Dockerfile
new file mode 100644
index 0000000..e19b40c
--- /dev/null
+++ b/src/test/setup/xos/Dockerfile
@@ -0,0 +1,36 @@
+FROM xosproject/xos-base
+
+# Include certificates from Openstack
+ADD local_certs.crt /usr/local/share/ca-certificates/local_certs.crt
+RUN update-ca-certificates
+
+# Install and boostrap XOS and Tosca
+ENV XOS_GIT_REPO https://github.com/opencord/xos.git
+ENV XOS_GIT_BRANCH master
+
+RUN git clone $XOS_GIT_REPO -b $XOS_GIT_BRANCH /tmp/xos && \
+    mv /tmp/xos/xos /opt/ && \
+    chmod +x /opt/xos/tools/xos-manage && \
+    /opt/xos/tools/xos-manage genkeys
+
+# ng-xos-lib download
+
+ENV NG_XOS_LIB_URL https://github.com/opencord/ng-xos-lib.git
+ENV NG_XOS_LIB_VERSION 1.0.0
+
+RUN git clone $NG_XOS_LIB_URL /tmp/ng-xos-lib 
+RUN cd /tmp/ng-xos-lib && git checkout tags/$NG_XOS_LIB_VERSION
+RUN cp /tmp/ng-xos-lib/dist/ngXosHelpers.min.js /opt/xos/core/xoslib/static/vendor/ 
+RUN cp /tmp/ng-xos-lib/dist/ngXosVendor.min.js /opt/xos/core/xoslib/static/vendor/
+
+EXPOSE 8000
+
+# Set environment variables
+ENV HOME /root
+
+# Define working directory
+WORKDIR /opt/xos
+
+# Define default command
+CMD python /opt/xos/manage.py runserver 0.0.0.0:8000 --insecure --makemigrations
+
diff --git a/src/test/setup/xos/Dockerfile.base b/src/test/setup/xos/Dockerfile.base
new file mode 100644
index 0000000..a511986
--- /dev/null
+++ b/src/test/setup/xos/Dockerfile.base
@@ -0,0 +1,84 @@
+# Dockerfile.base
+# This image isn't used, but installs the prereqs for the other XOS images
+
+FROM ubuntu:14.04.5
+MAINTAINER Zack Williams <zdw@cs.arizona.edu>
+
+# Install apt packages
+RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y \
+    apt-transport-https \
+    curl \
+    gcc \
+    geoip-database \
+    git \
+    graphviz \
+    graphviz-dev \
+    libcurl4-gnutls-dev \
+    libffi-dev \
+    libgeoip1 \
+    libpq-dev \
+    libxslt1-dev \
+    libxslt1.1 \
+    libyaml-dev \
+    m4 \
+    openssh-client \
+    pkg-config \
+    python-dev \
+    python-pip \
+    rsync \
+    software-properties-common \
+    supervisor \
+    unzip \
+    wget \
+ && rm -rf /var/lib/apt/lists/* \
+ && mkdir /var/xos \
+ && pip freeze > /var/xos/pip_freeze_apt_`date -u +%Y%m%dT%H%M%S`
+
+# Install python packages with pip
+COPY pip_requirements.txt /tmp/pip_requirements.txt
+
+RUN pip install --no-deps -r /tmp/pip_requirements.txt \
+ && pip freeze > /var/xos/pip_freeze_pip_up_`date -u +%Y%m%dT%H%M%S`
+
+# Copy over ansible hosts
+COPY ansible-hosts /etc/ansible/hosts
+
+# Install jQuery
+ENV JQUERY_DL_URL http://code.jquery.com/jquery-1.12.4.min.js
+ENV JQUERY_SHA256 668b046d12db350ccba6728890476b3efee53b2f42dbb84743e5e9f1ae0cc404
+
+RUN curl -fLsS $JQUERY_DL_URL -o jquery.min.js && \
+    echo "$JQUERY_SHA256  jquery.min.js" | sha256sum -c - && \
+    mv jquery.min.js /usr/local/lib/python2.7/dist-packages/suit/static/suit/js/
+
+# Install jQueryUI
+ENV JQUERYUI_DL_URL https://jqueryui.com/resources/download/jquery-ui-1.11.4.zip
+ENV JQUERYUI_SHA256 503e4c0f109bf627aff87a424edc760608ec15e4a6e37f217a083ca682543e32
+
+RUN curl -fLsS $JQUERYUI_DL_URL -o jquery-ui.zip && \
+    echo "$JQUERYUI_SHA256  jquery-ui.zip" | sha256sum -c - && \
+    unzip jquery-ui.zip && \
+    mv jquery-ui-*/jquery-ui.min.js /usr/local/lib/python2.7/dist-packages/suit/static/suit/js/ && \
+    rm -rf jquery-ui.zip jquery-ui-*
+
+ENV JQUERYUI_THEMES_DL_URL http://jqueryui.com/resources/download/jquery-ui-themes-1.11.4.zip
+ENV JQUERYUI_THEMES_SHA256 df2b9cb084095ea24129a6a54587a1d9d7ae4bcd68bf5ea2957eb3d4d18fe884
+
+RUN curl -fLsS $JQUERYUI_THEMES_DL_URL -o jquery-ui-themes.zip && \
+    echo "$JQUERYUI_THEMES_SHA256  jquery-ui-themes.zip" | sha256sum -c - && \
+    unzip jquery-ui-themes.zip && \
+    mv jquery-ui-themes-*/themes/smoothness/jquery-ui.min.css /usr/local/lib/python2.7/dist-packages/suit/static/suit/css/ && \
+    rm -rf jquery-ui-themes.zip jquery-ui-themes-*
+
+# Install heat-translator for TOSCA support
+ENV HT_REPO_URL https://github.com/openstack/heat-translator.git
+ENV HT_REF a951b93c16e54046ed2d233d814860181c772e30
+
+RUN git clone $HT_REPO_URL /tmp/heat-translator && \
+    cd /tmp/heat-translator && \
+    git checkout $HT_REF && \
+    mkdir -p /opt/tosca && \
+    mv /tmp/heat-translator/translator /opt/tosca/translator && \
+    echo > /opt/tosca/translator/__init__.py && \
+    rm -rf /tmp/heat-translator
+
diff --git a/src/test/setup/xos/Dockerfile.devel b/src/test/setup/xos/Dockerfile.devel
new file mode 100644
index 0000000..21b4452
--- /dev/null
+++ b/src/test/setup/xos/Dockerfile.devel
@@ -0,0 +1,40 @@
+FROM xosproject/xos-base
+
+ARG XOS_GIT_COMMIT_HASH=unknown
+ARG XOS_GIT_COMMIT_DATE=unknown
+
+LABEL XOS_GIT_COMMIT_HASH=$XOS_GIT_COMMIT_HASH
+LABEL XOS_GIT_COMMIT_DATE=$XOS_GIT_COMMIT_DATE
+
+# Include certificates from Openstack
+ADD containers/xos/local_certs.crt /usr/local/share/ca-certificates/local_certs.crt
+RUN update-ca-certificates
+
+# Install XOS
+ADD xos /opt/xos
+
+# ng-xos-lib download
+ENV NG_XOS_LIB_URL https://github.com/opencord/ng-xos-lib.git
+ENV NG_XOS_LIB_VERSION 1.0.0
+
+RUN git clone $NG_XOS_LIB_URL /tmp/ng-xos-lib \
+ && cd /tmp/ng-xos-lib  \
+ && git checkout tags/$NG_XOS_LIB_VERSION \
+ && cp /tmp/ng-xos-lib/dist/ngXosHelpers.min.js /opt/xos/core/xoslib/static/vendor/ \
+ && cp /tmp/ng-xos-lib/dist/ngXosVendor.min.js /opt/xos/core/xoslib/static/vendor/
+
+RUN chmod +x /opt/xos/tools/xos-manage \
+ && sync \
+ && /opt/xos/tools/xos-manage genkeys
+
+EXPOSE 8000
+
+# Set environment variables
+ENV HOME /root
+
+# Define working directory
+WORKDIR /opt/xos
+
+# Define default command
+CMD python /opt/xos/manage.py runserver 0.0.0.0:8000 --insecure --makemigrations
+
diff --git a/src/test/setup/xos/Dockerfile.test b/src/test/setup/xos/Dockerfile.test
new file mode 100644
index 0000000..3d74883
--- /dev/null
+++ b/src/test/setup/xos/Dockerfile.test
@@ -0,0 +1,20 @@
+FROM xosproject/xos
+
+# install nodejs
+COPY containers/xos/nodesource.gpg.key /tmp/nodesource.gpg.key
+
+RUN apt-key add /tmp/nodesource.gpg.key \
+ && echo "deb https://deb.nodesource.com/node_4.x trusty main" \
+    > /etc/apt/sources.list.d/nodesource.list
+
+RUN apt-get update \
+ && apt-get install -y --force-yes \
+    nodejs \
+ && rm -rf /var/lib/apt/lists/*
+
+RUN node -v
+
+RUN pip install selenium
+
+RUN npm install -g phantomjs
+
diff --git a/src/test/setup/xos/Makefile b/src/test/setup/xos/Makefile
new file mode 100644
index 0000000..d7be421
--- /dev/null
+++ b/src/test/setup/xos/Makefile
@@ -0,0 +1,76 @@
+# Docker container Makefile for XOS
+#
+# Targets:
+#
+#  `base`   - XOS prerequistie files, no XOS code, builds xosproject/xos-base
+#  `build`  - base + XOS code, git pulled in Dockerfile from main repo,
+#             builds xosproject/xos
+#  `custom` - base + XOS code, git pulled in Dockerfile from selectable repo,
+#             builds xosproject/xos
+#  `devel`  - base + XOS code from local directory, builds xosproject/xos
+#  `test`   - xosproject/xos + nodejs testing frameworks, builds
+#             xosproject/xos-test
+#
+
+NO_DOCKER_CACHE    ?= false
+
+CONTAINER_NAME     ?= xos-server
+IMAGE_NAME         ?= xosproject/xos
+
+XOS_GIT_REPO       ?= https://github.com/opencord/xos.git
+XOS_GIT_BRANCH     ?= master
+
+XOS_GIT_COMMIT_HASH     ?= $(shell git log --pretty=format:'%H' -n 1 || echo -n "unknown" )
+XOS_GIT_COMMIT_DATE     ?= $(shell git log --pretty=format:'%ad' -n 1 || echo -n "unknown" )
+
+TOSCA_CONFIG_PATH  ?= /opt/xos/configurations/opencloud/opencloud.yaml
+
+BUILD_ARGS =
+ifdef http_proxy
+BUILD_ARGS += --build-arg http_proxy=${http_proxy}
+endif
+ifdef https_proxy
+BUILD_ARGS += --build-arg https_proxy=${https_proxy}
+endif
+
+base:
+	sudo docker build --no-cache=${NO_DOCKER_CACHE} --rm \
+	-f Dockerfile.base -t xosproject/xos-base ${BUILD_ARGS} .
+
+build:
+	sudo docker build --no-cache=${NO_DOCKER_CACHE} --rm \
+	-f Dockerfile -t ${IMAGE_NAME} ${BUILD_ARGS} .
+
+custom:
+	docker build --no-cache=${NO_DOCKER_CACHE} --rm \
+	--build-arg XOS_GIT_REPO=${XOS_GIT_REPO} \
+	--build-arg XOS_GIT_BRANCH=${XOS_GIT_BRANCH} \
+	-f Dockerfile -t ${IMAGE_NAME} ${BUILD_ARGS} .
+
+devel:
+	sudo docker build --no-cache=${NO_DOCKER_CACHE} --rm \
+	--build-arg XOS_GIT_COMMIT_HASH="${XOS_GIT_COMMIT_HASH}" \
+	--build-arg XOS_GIT_COMMIT_DATE="${XOS_GIT_COMMIT_DATE}" \
+	-f Dockerfile.devel -t ${IMAGE_NAME} ${BUILD_ARGS} ../..
+
+test:
+	sudo docker build --no-cache=${NO_DOCKER_CACHE} --rm \
+	-f Dockerfile.test -t xosproject/xos-test ${BUILD_ARGS} ../..
+
+run:
+	sudo docker run -d --name ${CONTAINER_NAME} -p 80:8000 \
+	${IMAGE_NAME}
+
+runtosca:
+	sudo docker exec -it ${CONTAINER_NAME} \
+  /usr/bin/python /opt/xos/tosca/run.py padmin@vicci.org ${TOSCA_CONFIG_PATH}
+
+stop:
+	sudo docker stop ${CONTAINER_NAME}
+
+rm:
+	sudo docker rm ${CONTAINER_NAME}
+
+rmi:
+	sudo docker rmi `docker images | grep "^<none>" | awk '{print $$3}'`
+
diff --git a/src/test/setup/xos/ansible-hosts b/src/test/setup/xos/ansible-hosts
new file mode 100644
index 0000000..0dd74f1
--- /dev/null
+++ b/src/test/setup/xos/ansible-hosts
@@ -0,0 +1,2 @@
+[localhost]
+127.0.0.1
diff --git a/src/test/setup/xos/initdb b/src/test/setup/xos/initdb
new file mode 100755
index 0000000..b90a570
--- /dev/null
+++ b/src/test/setup/xos/initdb
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+IMAGE_NAME=xosproject/xos
+CONTAINER_NAME=xos_build_helper_$$
+DB_HOST=$(wget http://ipinfo.io/ip -qO -)
+
+# configure db host
+docker run -it --name=$CONTAINER_NAME $IMAGE_NAME sed -i '0,/host/{s/host=localhost/host='$DB_HOST'/}' /opt/xos/xos_configuration/xos_common_config
+docker commit $CONTAINER_NAME $IMAGE_NAME
+docker rm $CONTAINER_NAME
+
+# init db schema
+docker run -it --name=$CONTAINER_NAME $IMAGE_NAME /opt/xos/tools/xos-manage makemigrations
+# run overrides the CMD specifed in the Dockerfile, so we re-set the CMD in the final commit"
+docker commit --change="CMD python /opt/xos/manage.py runserver 0.0.0.0:8000 --insecure" $CONTAINER_NAME $IMAGE_NAME
+docker rm $CONTAINER_NAME
diff --git a/src/test/setup/xos/local_certs.crt b/src/test/setup/xos/local_certs.crt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/test/setup/xos/local_certs.crt
diff --git a/src/test/setup/xos/nodesource.gpg.key b/src/test/setup/xos/nodesource.gpg.key
new file mode 100644
index 0000000..1dc1d10
--- /dev/null
+++ b/src/test/setup/xos/nodesource.gpg.key
@@ -0,0 +1,52 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1
+Comment: GPGTools - https://gpgtools.org
+
+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
+=CLGF
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/src/test/setup/xos/pip_requirements.txt b/src/test/setup/xos/pip_requirements.txt
new file mode 100644
index 0000000..ae66fbe
--- /dev/null
+++ b/src/test/setup/xos/pip_requirements.txt
@@ -0,0 +1,135 @@
+pytz==2016.6.1
+Babel==2.3.4
+Django==1.8.14
+Jinja2==2.8
+Markdown==2.6.6
+MarkupSafe==0.23
+Paste==2.0.3
+PasteDeploy==1.5.2
+PyYAML==3.12
+Routes==2.3.1
+WebOb==1.6.1
+amqp==1.4.9
+ansible==2.1.1.0
+anyjson==0.3.3
+appdirs==1.4.0
+argparse==1.2.1
+ca-certs-locater==1.0
+cachetools==1.1.6
+cffi==1.7.0
+chardet==2.0.1
+cliff==2.2.0
+cmd2==0.6.8
+colorama==0.2.5
+contextlib2==0.5.4
+coreapi==1.32.3
+debtcollector==1.8.0
+decorator==4.0.10
+django-bitfield==1.8.0
+django-crispy-forms==1.6.0
+django-encrypted-fields==1.1.2
+django-extensions==1.7.3
+django-filter==0.14.0
+django-ipware==1.1.5
+django-rest-swagger==2.0.5
+django-suit==0.3a3
+django-timezones==0.2
+djangorestframework==3.3.3
+dnslib==0.9.6
+dogpile.cache==0.6.2
+enum34==1.1.6
+eventlet==0.19.0
+fasteners==0.14.1
+funcsigs==1.0.2
+functools32==3.2.3-2
+futures==3.0.5
+futurist==0.18.0
+google-api-python-client==1.5.3
+greenlet==0.4.10
+html5lib==0.999
+httplib2==0.9.2
+idna==2.1
+ipaddress==1.0.16
+iso8601==0.1.11
+itypes==1.1.0
+jsonpatch==1.14
+jsonpointer==1.10
+jsonschema==2.5.1
+keystoneauth1==2.12.1
+kombu==3.0.35
+lxml==3.6.4
+meld3==0.6.10
+monotonic==1.2
+msgpack-python==0.4.8
+munch==2.0.4
+ndg-httpsclient==0.4.2
+netaddr==0.7.18
+netifaces==0.10.5
+oauth2client==3.0.0
+openapi-codec==1.0.0
+openstacksdk==0.9.4
+os-client-config==1.21.0
+osc-lib==1.1.0
+oslo.concurrency==3.14.0
+oslo.config==3.17.0
+oslo.context==2.9.0
+oslo.i18n==3.9.0
+oslo.log==3.16.0
+oslo.messaging==5.10.0
+oslo.middleware==3.19.0
+oslo.serialization==2.13.0
+oslo.service==1.16.0
+oslo.utils==3.16.0
+osprofiler==1.4.0
+paramiko==2.0.2
+pbr==1.10.0
+pika==0.10.0
+pika-pool==0.1.3
+positional==1.1.1
+prettytable==0.7.2
+psycopg2==2.6.2
+pyOpenSSL==16.1.0
+pyasn1==0.1.9
+pyasn1-modules==0.0.8
+pycparser==2.14
+pycrypto==2.6.1
+pycurl==7.43.0
+pygraphviz==1.3.1
+pyinotify==0.9.6
+pyparsing==2.1.8
+python-cinderclient==1.8.0
+python-dateutil==2.5.3
+python-designateclient==2.3.0
+python-gflags==3.0.6
+python-glanceclient==2.5.0
+python-heatclient==1.4.0
+python-ironicclient==1.6.0
+python-keyczar==0.716
+python-keystoneclient==3.5.0
+python-logstash==0.4.6
+python-magnumclient==2.3.0
+python-mistralclient==2.1.0
+python-neutronclient==5.1.0
+python-novaclient==5.1.0
+python-openstackclient==3.1.0
+python-swiftclient==3.0.0
+python-troveclient==2.5.0
+repoze.lru==0.6
+requests==2.11.1
+requestsexceptions==1.1.3
+retrying==1.3.3
+rfc3986==0.4.1
+rsa==3.4.2
+shade==1.9.0
+simplejson==3.8.2
+six==1.10.0
+stevedore==1.17.1
+supervisor==3.0b2
+unicodecsv==0.14.1
+uritemplate==0.6
+urllib3==1.7.1
+warlock==1.2.0
+wheel==0.24.0
+wrapt==1.10.8
+wsgiref==0.1.2
+redis==2.10.5