From cfa5b36e533b355ce8e475c28f65f93454778a98 Mon Sep 17 00:00:00 2001
From: Martin Falatic <mfalatic@cisco.com>
Date: Mon, 25 Jul 2016 12:53:12 -0700
Subject: [PATCH] Customizations for ceilometer

This patchset contains customization of Dockerfile of ceilometer containers

Change-Id: Iee8db7e105fbd8c3d5c947dd3b7c5e0ca7c49b78
Partially-implements: blueprint third-party-plugin-support
---
 .../ceilometer/ceilometer-api/Dockerfile.j2   | 19 +++++++------
 .../ceilometer/ceilometer-base/Dockerfile.j2  | 26 +++++++++---------
 .../ceilometer-central/Dockerfile.j2          | 19 +++++++------
 .../ceilometer-collector/Dockerfile.j2        | 19 +++++++------
 .../ceilometer-compute/Dockerfile.j2          | 27 ++++++++++---------
 .../ceilometer-notification/Dockerfile.j2     | 19 +++++++------
 6 files changed, 64 insertions(+), 65 deletions(-)

diff --git a/docker/ceilometer/ceilometer-api/Dockerfile.j2 b/docker/ceilometer/ceilometer-api/Dockerfile.j2
index 9d363498f1..e80f3f7cf9 100644
--- a/docker/ceilometer/ceilometer-api/Dockerfile.j2
+++ b/docker/ceilometer/ceilometer-api/Dockerfile.j2
@@ -1,25 +1,24 @@
 FROM {{ namespace }}/{{ image_prefix }}ceilometer-base:{{ tag }}
 MAINTAINER {{ maintainer }}
 
+{% import "macros.j2" as macros with context %}
+
 {% if install_type == 'binary' %}
     {% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
-
-RUN yum -y install \
-        openstack-ceilometer-api \
-    && yum clean all
-
+        {% set ceilometer_api_packages = ['openstack-ceilometer-api'] %}
     {% elif base_distro in ['ubuntu'] %}
-
-RUN apt-get -y install --no-install-recommends \
-        ceilometer-api \
-    && apt-get clean
-
+        {% set ceilometer_api_packages = ['ceilometer-api'] %}
     {% endif %}
+
+RUN {{ macros.install_packages(ceilometer_api_packages | customizable("packages")) }}
+
 {% endif %}
 
 COPY extend_start.sh /usr/local/bin/kolla_ceilometer_extend_start
 RUN chmod 755 /usr/local/bin/kolla_ceilometer_extend_start
 
+{% block ceilometer_api_footer %}{% endblock %}
+{% block footer %}{% endblock %}
 {{ include_footer }}
 
 USER ceilometer
diff --git a/docker/ceilometer/ceilometer-base/Dockerfile.j2 b/docker/ceilometer/ceilometer-base/Dockerfile.j2
index 717739b340..3e105906d8 100644
--- a/docker/ceilometer/ceilometer-base/Dockerfile.j2
+++ b/docker/ceilometer/ceilometer-base/Dockerfile.j2
@@ -1,24 +1,24 @@
 FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }}
 MAINTAINER {{ maintainer }}
 
+{% import "macros.j2" as macros with context %}
+
 {% if install_type == 'binary' %}
     {% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
-
-RUN yum -y install \
-        openstack-ceilometer-common \
-        python-tooz \
-        python-oslo-db \
-    && yum clean all
-
+        {% set ceilometer_base_packages = [
+            'openstack-ceilometer-common',
+            'python-tooz',
+            'python-oslo-db'
+         ] %}
     {% elif base_distro in ['ubuntu'] %}
-
-RUN apt-get -y install --no-install-recommends \
-        ceilometer-common \
-        python-pymongo \
-    && apt-get clean
-
+        {% set ceilometer_base_packages = [
+            'ceilometer-common',
+            'python-pymongo'
+         ] %}
     {% endif %}
 
+RUN {{ macros.install_packages(ceilometer_base_packages | customizable("packages")) }}
+
 {% elif install_type == 'source' %}
 
 ADD ceilometer-base-archive /ceilometer-base-source
diff --git a/docker/ceilometer/ceilometer-central/Dockerfile.j2 b/docker/ceilometer/ceilometer-central/Dockerfile.j2
index e2c37afa77..26d4436971 100644
--- a/docker/ceilometer/ceilometer-central/Dockerfile.j2
+++ b/docker/ceilometer/ceilometer-central/Dockerfile.j2
@@ -1,22 +1,21 @@
 FROM {{ namespace }}/{{ image_prefix }}ceilometer-base:{{ tag }}
 MAINTAINER {{ maintainer }}
 
+{% import "macros.j2" as macros with context %}
+
 {% if install_type == 'binary' %}
     {% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
-
-RUN yum -y install \
-        openstack-ceilometer-central \
-    && yum clean all
-
+        {% set ceilometer_central_packages = ['openstack-ceilometer-central'] %}
     {% elif base_distro in ['ubuntu'] %}
-
-RUN apt-get -y install --no-install-recommends \
-        ceilometer-agent-central \
-    && apt-get clean
-
+        {% set ceilometer_central_packages = ['ceilometer-agent-central'] %}
     {% endif %}
+
+RUN {{ macros.install_packages(ceilometer_central_packages | customizable("packages")) }}
+
 {% endif %}
 
+{% block ceilometer_central_footer %}{% endblock %}
+{% block footer %}{% endblock %}
 {{ include_footer }}
 
 USER ceilometer
diff --git a/docker/ceilometer/ceilometer-collector/Dockerfile.j2 b/docker/ceilometer/ceilometer-collector/Dockerfile.j2
index d67b2b1806..e5f53f55e1 100644
--- a/docker/ceilometer/ceilometer-collector/Dockerfile.j2
+++ b/docker/ceilometer/ceilometer-collector/Dockerfile.j2
@@ -1,22 +1,21 @@
 FROM {{ namespace }}/{{ image_prefix }}ceilometer-base:{{ tag }}
 MAINTAINER {{ maintainer }}
 
+{% import "macros.j2" as macros with context %}
+
 {% if install_type == 'binary' %}
     {% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
-
-RUN yum -y install \
-        openstack-ceilometer-collector \
-    && yum clean all
-
+        {% set ceilometer_collector_packages = ['openstack-ceilometer-collector'] %}
     {% elif base_distro in ['ubuntu'] %}
-
-RUN apt-get -y install --no-install-recommends \
-        ceilometer-collector \
-    && apt-get clean
-
+        {% set ceilometer_collector_packages = ['ceilometer-collector'] %}
     {% endif %}
+
+RUN {{ macros.install_packages(ceilometer_collector_packages | customizable("packages")) }}
+
 {% endif %}
 
+{% block ceilometer_collector_footer %}{% endblock %}
+{% block footer %}{% endblock %}
 {{ include_footer }}
 
 USER ceilometer
diff --git a/docker/ceilometer/ceilometer-compute/Dockerfile.j2 b/docker/ceilometer/ceilometer-compute/Dockerfile.j2
index 96f0ff80bc..0bdd061452 100644
--- a/docker/ceilometer/ceilometer-compute/Dockerfile.j2
+++ b/docker/ceilometer/ceilometer-compute/Dockerfile.j2
@@ -1,22 +1,23 @@
 FROM {{ namespace }}/{{ image_prefix }}ceilometer-base:{{ tag }}
 MAINTAINER {{ maintainer }}
 
+{% import "macros.j2" as macros with context %}
+
 {% if install_type == 'binary' %}
     {% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
-
-RUN yum -y install \
-        openstack-ceilometer-compute \
-        python-ceilometerclient \
-    && yum clean all
-
+        {% set ceilometer_compute_packages = [
+            'openstack-ceilometer-compute',
+            'python-ceilometerclient'
+         ] %}
     {% elif base_distro in ['ubuntu', 'debian'] %}
-
-RUN apt-get -y install --no-install-recommends \
-        ceilometer-agent-compute \
-        python-ceilometerclient \
-    && apt-get clean
-
+        {% set ceilometer_compute_packages = [
+            'ceilometer-agent-compute',
+            'python-ceilometerclient'
+         ] %}
     {% endif %}
+
+RUN {{ macros.install_packages(ceilometer_compute_packages | customizable("packages")) }}
+
 {% elif install_type == 'source' %}
     {% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
 
@@ -36,6 +37,8 @@ RUN /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements
 
 {% endif %}
 
+{% block ceilometer_compute_footer %}{% endblock %}
+{% block footer %}{% endblock %}
 {{ include_footer }}
 
 # NOTE(huikang): non-root user does not work with libvirt.sock.
diff --git a/docker/ceilometer/ceilometer-notification/Dockerfile.j2 b/docker/ceilometer/ceilometer-notification/Dockerfile.j2
index 8896dc562c..dabeeafa82 100644
--- a/docker/ceilometer/ceilometer-notification/Dockerfile.j2
+++ b/docker/ceilometer/ceilometer-notification/Dockerfile.j2
@@ -1,22 +1,21 @@
 FROM {{ namespace }}/{{ image_prefix }}ceilometer-base:{{ tag }}
 MAINTAINER {{ maintainer }}
 
+{% import "macros.j2" as macros with context %}
+
 {% if install_type == 'binary' %}
     {% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
-
-RUN yum -y install \
-        openstack-ceilometer-notification \
-  && yum clean all
-
+        {% set ceilometer_notification_packages = ['openstack-ceilometer-notification'] %}
     {% elif base_distro in ['ubuntu'] %}
-
-RUN apt-get -y install --no-install-recommends \
-        ceilometer-agent-notification \
-    && apt-get clean
-
+        {% set ceilometer_notification_packages = ['ceilometer-agent-notification'] %}
     {% endif %}
+
+RUN {{ macros.install_packages(ceilometer_notification_packages | customizable("packages")) }}
+
 {% endif %}
 
+{% block ceilometer_notification_footer %}{% endblock %}
+{% block footer %}{% endblock %}
 {{ include_footer }}
 
 USER ceilometer