From 4218a3bb5bc8daaf45e5c6522e6f949d49fec513 Mon Sep 17 00:00:00 2001
From: Larry Rensing <lr699s@att.com>
Date: Fri, 12 Aug 2016 13:27:27 +0000
Subject: [PATCH] Add support for building vmtp container

Add needed library packages and Dockerfile to build vmtp container.

Co-Authored-By: Larry Rensing <lr699s@att.com>
Partially implements: bp vmtp-container

Change-Id: I54340947f3bdf61d3e4f54884fed90ac318124ff
---
 docker/openstack-base/Dockerfile.j2           |  3 +++
 docker/vmtp/Dockerfile.j2                     | 25 +++++++++++++++++++
 docker/vmtp/vmtp_sudoers                      |  1 +
 .../notes/add-vmtp-7d6aef3125a38dbe.yaml      |  3 +++
 tests/test_build.py                           |  3 +++
 5 files changed, 35 insertions(+)
 create mode 100644 docker/vmtp/Dockerfile.j2
 create mode 100644 docker/vmtp/vmtp_sudoers
 create mode 100644 releasenotes/notes/add-vmtp-7d6aef3125a38dbe.yaml

diff --git a/docker/openstack-base/Dockerfile.j2 b/docker/openstack-base/Dockerfile.j2
index 41b3099456..9b58097864 100644
--- a/docker/openstack-base/Dockerfile.j2
+++ b/docker/openstack-base/Dockerfile.j2
@@ -195,6 +195,7 @@ RUN {{ macros.install_packages(openstack_base_packages | customizable("packages"
             'libffi-devel',
             'libxml2-devel',
             'libxslt-devel',
+            'libyaml-devel',
             'MariaDB-devel',
             'openldap-devel',
             'openssl-devel',
@@ -212,7 +213,9 @@ RUN {{ macros.install_packages(openstack_base_packages | customizable("packages"
             'libmariadbclient-dev',
             'libxslt1-dev',
             'libffi-dev',
+            'libxml2-dev',
             'libyaml-dev',
+            'libz-dev',
             'pkg-config',
             'git'
         ] %}
diff --git a/docker/vmtp/Dockerfile.j2 b/docker/vmtp/Dockerfile.j2
new file mode 100644
index 0000000000..b286ac03e5
--- /dev/null
+++ b/docker/vmtp/Dockerfile.j2
@@ -0,0 +1,25 @@
+FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }}
+MAINTAINER {{ maintainer }}
+
+{% if install_type == 'binary' %}
+
+RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
+    && /bin/false
+
+{% elif install_type == 'source' %}
+
+RUN pip install vmtp \
+    && useradd --user-group vmtp
+
+{% endif %}
+
+COPY vmtp_sudoers /etc/sudoers.d/kolla_vmtp_sudoers
+RUN chmod 750 /etc/sudoers.d \
+    && chmod 440 /etc/sudoers.d \
+    && usermod -a -G kolla vmtp
+
+{% block vmtp_footer %}{% endblock %}
+{% block footer %}{% endblock %}
+{{ include_footer }}
+
+USER vmtp
diff --git a/docker/vmtp/vmtp_sudoers b/docker/vmtp/vmtp_sudoers
new file mode 100644
index 0000000000..fb3a27affc
--- /dev/null
+++ b/docker/vmtp/vmtp_sudoers
@@ -0,0 +1 @@
+%kolla ALL=(root) NOPASSWD: /usr/bin/chown -R vmtp\: /var/lib/vmtp, /bin/chown -R vmtp\: /var/lib/vmtp
diff --git a/releasenotes/notes/add-vmtp-7d6aef3125a38dbe.yaml b/releasenotes/notes/add-vmtp-7d6aef3125a38dbe.yaml
new file mode 100644
index 0000000000..34884a4268
--- /dev/null
+++ b/releasenotes/notes/add-vmtp-7d6aef3125a38dbe.yaml
@@ -0,0 +1,3 @@
+---
+features:
+  - Add vmtp support to docker container.
diff --git a/tests/test_build.py b/tests/test_build.py
index 77cc87c883..76fabc48f3 100644
--- a/tests/test_build.py
+++ b/tests/test_build.py
@@ -70,6 +70,7 @@ class BuildTestCentosBinary(BuildTest, base.BaseTestCase):
     excluded_images = ["kuryr",
                        "neutron-networking-sfc-agent",
                        "senlin-base",
+                       "vmtp",
                        "watcher-base"
                        ]
 
@@ -91,6 +92,7 @@ class BuildTestCentosSource(BuildTest, base.BaseTestCase):
 
 class BuildTestUbuntuBinary(BuildTest, base.BaseTestCase):
     excluded_images = ["neutron-networking-sfc-agent",
+                       "vmtp",
                        "zaqar"
                        ]
 
@@ -113,6 +115,7 @@ class BuildTestOracleLinuxBinary(BuildTest, base.BaseTestCase):
     excluded_images = ["kuryr",
                        "neutron-networking-sfc-agent",
                        "senlin-base",
+                       "vmtp",
                        "watcher-base"
                        ]