From 258d6ae3f3c8976fff9235dd229dff58cf1eb0f9 Mon Sep 17 00:00:00 2001
From: Ryan Hallisey <rhallise@redhat.com>
Date: Thu, 25 Jun 2015 20:13:52 -0400
Subject: [PATCH] Allow /dev/pts proper permissions so cinder and libvirt work

We need to mount /dev both Libvirt and Cinder containers and
/dev/pts is not correctly mounted.  The /dev/pts recieves no
permissions from the host so it becomes inacessable.
We need to change the permissions of /dev/pts in the container
to 666.

Change-Id: Id197a766adc3aecb24e6b10aa84f51c23124b488
Closes-bug: #1468951
---
 docker/common/cinder-app/cinder-backup/start.sh  | 9 +++++++++
 docker/common/cinder-app/cinder-volume/start.sh  | 9 +++++++++
 docker/common/nova-compute/nova-compute/start.sh | 9 +++++++++
 docker/common/nova-compute/nova-libvirt/start.sh | 9 +++++++++
 tools/genenv                                     | 8 --------
 5 files changed, 36 insertions(+), 8 deletions(-)

diff --git a/docker/common/cinder-app/cinder-backup/start.sh b/docker/common/cinder-app/cinder-backup/start.sh
index 5dff79b356..3227ddab29 100755
--- a/docker/common/cinder-app/cinder-backup/start.sh
+++ b/docker/common/cinder-app/cinder-backup/start.sh
@@ -32,5 +32,14 @@ crudini --set $cfg \
         backup_name_template \
         "${CINDER_BACKUP_NAME_TEMPLATE}"
 
+# https://bugs.launchpad.net/kolla/+bug/1461635
+# Cinder requires mounting /dev in the cinder-volume, nova-compute,
+# and libvirt containers.  If /dev/pts/ptmx does not have proper permissions
+# on the host, then libvirt will fail to boot an instance.
+# This is a bug in Docker where it is not correctly mounting /dev/pts
+# Tech Debt tracker: https://bugs.launchpad.net/kolla/+bug/1468962
+# **Temporary fix**
+chmod 666 /dev/pts/ptmx
+
 echo "Starting cinder-backup"
 exec /usr/bin/cinder-backup --config-file $cfg
diff --git a/docker/common/cinder-app/cinder-volume/start.sh b/docker/common/cinder-app/cinder-volume/start.sh
index db29e75deb..26a0f6dcf3 100755
--- a/docker/common/cinder-app/cinder-volume/start.sh
+++ b/docker/common/cinder-app/cinder-volume/start.sh
@@ -71,5 +71,14 @@ sed -i 's/udev_sync = 1/udev_sync = 0/' /etc/lvm/lvm.conf
 sed -i 's/udev_rules = 1/udev_rules = 0/' /etc/lvm/lvm.conf
 sed -i 's/use_lvmetad = 1/use_lvmetad = 0/' /etc/lvm/lvm.conf
 
+# https://bugs.launchpad.net/kolla/+bug/1461635
+# Cinder requires mounting /dev in the cinder-volume, nova-compute,
+# and libvirt containers.  If /dev/pts/ptmx does not have proper permissions
+# on the host, then libvirt will fail to boot an instance.
+# This is a bug in Docker where it is not correctly mounting /dev/pts
+# Tech Debt tracker: https://bugs.launchpad.net/kolla/+bug/1468962
+# **Temporary fix**
+chmod 666 /dev/pts/ptmx
+
 echo "Starting cinder-volume"
 exec /usr/bin/cinder-volume --config-file /etc/cinder/cinder.conf
diff --git a/docker/common/nova-compute/nova-compute/start.sh b/docker/common/nova-compute/nova-compute/start.sh
index ce3d0c0c37..ac7f781f4d 100755
--- a/docker/common/nova-compute/nova-compute/start.sh
+++ b/docker/common/nova-compute/nova-compute/start.sh
@@ -6,5 +6,14 @@ set -e
 
 sleep 6
 
+# https://bugs.launchpad.net/kolla/+bug/1461635
+# Cinder requires mounting /dev in the cinder-volume, nova-compute,
+# and libvirt containers.  If /dev/pts/ptmx does not have proper permissions
+# on the host, then libvirt will fail to boot an instance.
+# This is a bug in Docker where it is not correctly mounting /dev/pts
+# Tech Debt tracker: https://bugs.launchpad.net/kolla/+bug/1468962
+# **Temporary fix**
+chmod 666 /dev/pts/ptmx
+
 echo "Starting nova-compute."
 exec /usr/bin/nova-compute --config-file /etc/nova/nova.conf
diff --git a/docker/common/nova-compute/nova-libvirt/start.sh b/docker/common/nova-compute/nova-libvirt/start.sh
index bdbe882b8d..1f2ddbed8e 100755
--- a/docker/common/nova-compute/nova-libvirt/start.sh
+++ b/docker/common/nova-compute/nova-libvirt/start.sh
@@ -18,5 +18,14 @@ if [[ -c /dev/kvm ]]; then
     chown root:kvm /dev/kvm
 fi
 
+# https://bugs.launchpad.net/kolla/+bug/1461635
+# Cinder requires mounting /dev in the cinder-volume, nova-compute,
+# and libvirt containers.  If /dev/pts/ptmx does not have proper permissions
+# on the host, then libvirt will fail to boot an instance.
+# This is a bug in Docker where it is not correctly mounting /dev/pts
+# Tech Debt tracker: https://bugs.launchpad.net/kolla/+bug/1468962
+# **Temporary fix**
+chmod 666 /dev/pts/ptmx
+
 echo "Starting libvirtd."
 exec /usr/sbin/libvirtd
diff --git a/tools/genenv b/tools/genenv
index eec306bbdf..535d7356cc 100755
--- a/tools/genenv
+++ b/tools/genenv
@@ -392,11 +392,3 @@ EOF
 echo Please customize your FLAT_INTERFACE to a different network then your
 echo main network. The FLAT_INTERFACE is used for inter-VM communication.
 echo the FLAT_INTERFACE should not have an IP address assigned.
-# https://bugs.launchpad.net/kolla/+bug/1461635
-echo
-echo Cinder requires mounting /dev in the cinder-volume, nova-compute,
-echo and libvirt containers.  If /dev/pts/ptmx does not have proper permissions
-echo on the host, then libvirt will fail to boot an instance.
-echo This is a bug in Docker where it is not correctly mounting /dev/pts
-echo **Temporary fix**
-echo chmod 666 /dev/pts/ptmx
-- 
GitLab