[openstack-nova] support fully transparent handling of the new ini config file

Pádraig Brady pbrady at fedoraproject.org
Tue Mar 6 09:35:32 UTC 2012


commit 0db031184e2597206fe0425f076e8872ce4616ea
Author: Pádraig Brady <P at draigBrady.com>
Date:   Tue Mar 6 09:00:26 2012 +0000

    support fully transparent handling of the new ini config file
    
    This includes a patch from upstream that defers to ini format
    if the config file doesn't start with '--'.
    
    This allows us to remove the nova-manage format detection hack,
    and the --flagfile=/dev/null hacks from the service files.

 ...-new-style-config-to-be-used-for-flagfile.patch |   58 ++++++++++++++++++++
 ...manage-to-auto-support-the-new-cfg-format.patch |   36 ------------
 openstack-nova-ajax-console-proxy.service          |    2 +-
 openstack-nova-api.service                         |    2 +-
 openstack-nova-cert.service                        |    2 +-
 openstack-nova-compute.service                     |    2 +-
 openstack-nova-direct-api.service                  |    2 +-
 openstack-nova-network.service                     |    2 +-
 openstack-nova-objectstore.service                 |    2 +-
 openstack-nova-scheduler.service                   |    2 +-
 openstack-nova-vncproxy.service                    |    2 +-
 openstack-nova-volume.service                      |    2 +-
 openstack-nova.spec                                |    3 +-
 13 files changed, 70 insertions(+), 47 deletions(-)
---
diff --git a/0004-Allows-new-style-config-to-be-used-for-flagfile.patch b/0004-Allows-new-style-config-to-be-used-for-flagfile.patch
new file mode 100644
index 0000000..87ea13e
--- /dev/null
+++ b/0004-Allows-new-style-config-to-be-used-for-flagfile.patch
@@ -0,0 +1,58 @@
+From e2fb4f440b81b31fcf88dd5ea62eb6efff81d953 Mon Sep 17 00:00:00 2001
+From: Vishvananda Ishaya <vishvananda at gmail.com>
+Date: Mon, 5 Mar 2012 16:54:57 -0800
+Subject: [PATCH] Allows new style config to be used for --flagfile
+
+ * includes tests
+ * fixes bug 947549
+
+Change-Id: Ibf319ea75a2d6156c5d8f1112cd58a33e5a98fe0
+---
+ nova/compat/flagfile.py            |    4 ++++
+ nova/tests/test_compat_flagfile.py |    9 +++++++--
+ 2 files changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/nova/compat/flagfile.py b/nova/compat/flagfile.py
+index 02d571c..3b5845c 100644
+--- a/nova/compat/flagfile.py
++++ b/nova/compat/flagfile.py
+@@ -97,6 +97,10 @@ def _read_flagfile(arg, next_arg, tempdir=None):
+ 
+     args = _read_lines(flagfile)
+ 
++    if args and not args[0].startswith('--'):
++        # This is a config file, not a flagfile, so return it.
++        return ['--config-file=' + flagfile] + argp[1:]
++
+     #
+     # We're recursing here to convert any --flagfile arguments
+     # read from this flagfile into --config-file arguments
+diff --git a/nova/tests/test_compat_flagfile.py b/nova/tests/test_compat_flagfile.py
+index 1635e83..e787f37 100644
+--- a/nova/tests/test_compat_flagfile.py
++++ b/nova/tests/test_compat_flagfile.py
+@@ -18,7 +18,6 @@ import contextlib
+ import os
+ import shutil
+ import StringIO
+-import stubout
+ import textwrap
+ import tempfile
+ import unittest
+@@ -154,9 +153,15 @@ class CompatFlagfileTestCase(unittest.TestCase):
+         self._do_test_flagfile('--noverbose', 'verbose=false\n')
+ 
+     def test_flagfile_comments(self):
+-        self._do_test_flagfile('--bar=foo\n#foo\n--foo=bar\n//bar',
++        self._do_test_flagfile(' \n\n#foo\n--bar=foo\n--foo=bar\n//bar',
+                                'bar=foo\nfoo=bar\n')
+ 
++    def test_flagfile_is_config(self):
++        self.files['foo.flags'] = '\n\n#foo\n//bar\n[DEFAULT]\nbar=foo'
++        before = ['--flagfile=foo.flags']
++        after = flagfile.handle_flagfiles(before, tempdir=self.tempdir)
++        self.assertEquals(after, ['--config-file=foo.flags'])
++
+     def test_flagfile_nested(self):
+         self.files['bar.flags'] = '--foo=bar'
+ 
diff --git a/openstack-nova-ajax-console-proxy.service b/openstack-nova-ajax-console-proxy.service
index ea6f55c..1c9d699 100644
--- a/openstack-nova-ajax-console-proxy.service
+++ b/openstack-nova-ajax-console-proxy.service
@@ -5,7 +5,7 @@ After=syslog.target network.target
 [Service]
 Type=simple
 User=nova
-ExecStart=/usr/bin/nova-ajax-console-proxy --flagfile /dev/null --config-file /etc/nova/nova.conf --logfile /var/log/nova/ajax-console-proxy.log
+ExecStart=/usr/bin/nova-ajax-console-proxy --config-file /etc/nova/nova.conf --logfile /var/log/nova/ajax-console-proxy.log
 
 [Install]
 WantedBy=multi-user.target
diff --git a/openstack-nova-api.service b/openstack-nova-api.service
index 46f38ce..7e74edc 100644
--- a/openstack-nova-api.service
+++ b/openstack-nova-api.service
@@ -5,7 +5,7 @@ After=syslog.target network.target
 [Service]
 Type=simple
 User=nova
-ExecStart=/usr/bin/nova-api --flagfile /dev/null --config-file /etc/nova/nova.conf --logfile /var/log/nova/api.log
+ExecStart=/usr/bin/nova-api --config-file /etc/nova/nova.conf --logfile /var/log/nova/api.log
 
 [Install]
 WantedBy=multi-user.target
diff --git a/openstack-nova-cert.service b/openstack-nova-cert.service
index 2d7bcdd..a61f958 100644
--- a/openstack-nova-cert.service
+++ b/openstack-nova-cert.service
@@ -5,7 +5,7 @@ After=syslog.target network.target
 [Service]
 Type=simple
 User=nova
-ExecStart=/usr/bin/nova-cert --flagfile /dev/null --config-file /etc/nova/nova.conf --logfile /var/log/nova/cert.log
+ExecStart=/usr/bin/nova-cert --config-file /etc/nova/nova.conf --logfile /var/log/nova/cert.log
 
 [Install]
 WantedBy=multi-user.target
diff --git a/openstack-nova-compute.service b/openstack-nova-compute.service
index 1a29743..258475b 100644
--- a/openstack-nova-compute.service
+++ b/openstack-nova-compute.service
@@ -5,7 +5,7 @@ After=syslog.target network.target
 [Service]
 Type=simple
 User=nova
-ExecStart=/usr/bin/nova-compute --flagfile /dev/null --config-file /etc/nova/nova.conf --logfile /var/log/nova/compute.log
+ExecStart=/usr/bin/nova-compute --config-file /etc/nova/nova.conf --logfile /var/log/nova/compute.log
 
 [Install]
 WantedBy=multi-user.target
diff --git a/openstack-nova-direct-api.service b/openstack-nova-direct-api.service
index 93d24f0..531b0cd 100644
--- a/openstack-nova-direct-api.service
+++ b/openstack-nova-direct-api.service
@@ -5,7 +5,7 @@ After=syslog.target network.target
 [Service]
 Type=simple
 User=nova
-ExecStart=/usr/bin/nova-direct-api --flagfile /dev/null --config-file /etc/nova/nova.conf --logfile /var/log/nova/direct-api.log
+ExecStart=/usr/bin/nova-direct-api --config-file /etc/nova/nova.conf --logfile /var/log/nova/direct-api.log
 
 [Install]
 WantedBy=multi-user.target
diff --git a/openstack-nova-network.service b/openstack-nova-network.service
index 90f5efd..542ddb1 100644
--- a/openstack-nova-network.service
+++ b/openstack-nova-network.service
@@ -5,7 +5,7 @@ After=syslog.target network.target
 [Service]
 Type=simple
 User=nova
-ExecStart=/usr/bin/nova-network --flagfile /dev/null --config-file /etc/nova/nova.conf --logfile /var/log/nova/network.log
+ExecStart=/usr/bin/nova-network --config-file /etc/nova/nova.conf --logfile /var/log/nova/network.log
 
 [Install]
 WantedBy=multi-user.target
diff --git a/openstack-nova-objectstore.service b/openstack-nova-objectstore.service
index c69ba4b..cc24aea 100644
--- a/openstack-nova-objectstore.service
+++ b/openstack-nova-objectstore.service
@@ -5,7 +5,7 @@ After=syslog.target network.target
 [Service]
 Type=simple
 User=nova
-ExecStart=/usr/bin/nova-objectstore --flagfile /dev/null --config-file /etc/nova/nova.conf --logfile /var/log/nova/objectstore.log
+ExecStart=/usr/bin/nova-objectstore --config-file /etc/nova/nova.conf --logfile /var/log/nova/objectstore.log
 
 [Install]
 WantedBy=multi-user.target
diff --git a/openstack-nova-scheduler.service b/openstack-nova-scheduler.service
index 6edb87d..398fcc1 100644
--- a/openstack-nova-scheduler.service
+++ b/openstack-nova-scheduler.service
@@ -5,7 +5,7 @@ After=syslog.target network.target
 [Service]
 Type=simple
 User=nova
-ExecStart=/usr/bin/nova-scheduler --flagfile /dev/null --config-file /etc/nova/nova.conf --logfile /var/log/nova/scheduler.log
+ExecStart=/usr/bin/nova-scheduler --config-file /etc/nova/nova.conf --logfile /var/log/nova/scheduler.log
 
 [Install]
 WantedBy=multi-user.target
diff --git a/openstack-nova-vncproxy.service b/openstack-nova-vncproxy.service
index c6e5905..ede2030 100644
--- a/openstack-nova-vncproxy.service
+++ b/openstack-nova-vncproxy.service
@@ -5,7 +5,7 @@ After=syslog.target network.target
 [Service]
 Type=simple
 User=nova
-ExecStart=/usr/bin/nova-vncproxy --flagfile /dev/null --config-file /etc/nova/nova.conf --logfile /var/log/nova/vncproxy.log
+ExecStart=/usr/bin/nova-vncproxy --config-file /etc/nova/nova.conf --logfile /var/log/nova/vncproxy.log
 
 [Install]
 WantedBy=multi-user.target
diff --git a/openstack-nova-volume.service b/openstack-nova-volume.service
index 254d974..375a2dd 100644
--- a/openstack-nova-volume.service
+++ b/openstack-nova-volume.service
@@ -5,7 +5,7 @@ After=syslog.target network.target
 [Service]
 Type=simple
 User=nova
-ExecStart=/usr/bin/nova-volume --flagfile /dev/null --config-file /etc/nova/nova.conf --logfile /var/log/nova/volume.log
+ExecStart=/usr/bin/nova-volume --config-file /etc/nova/nova.conf --logfile /var/log/nova/volume.log
 
 [Install]
 WantedBy=multi-user.target
diff --git a/openstack-nova.spec b/openstack-nova.spec
index 3438c87..b625799 100644
--- a/openstack-nova.spec
+++ b/openstack-nova.spec
@@ -37,7 +37,7 @@ Source23:         openstack-nova-db-setup
 Patch0001: 0001-Ensure-we-don-t-access-the-net-when-building-docs.patch
 Patch0002: 0002-Add-VIF-and-interface-drivers-for-the-Linux-Bridge-p.patch
 Patch0003: 0003-Adds-soft-reboot-support-to-libvirt.patch
-Patch0004: 0004-allow-nova-manage-to-auto-support-the-new-cfg-format.patch
+Patch0004: 0004-Allows-new-style-config-to-be-used-for-flagfile.patch
 
 BuildArch:        noarch
 BuildRequires:    intltool
@@ -369,6 +369,7 @@ fi
 %changelog
 * Fri Mar  6 2012 Pádraig Brady <P at draigBrady.com> - 2012.1-0.6.e4
 - Depend on bridge-utils
+- Support fully transparent handling of the new ini config file
 
 * Fri Mar  2 2012 Pádraig Brady <P at draigBrady.com> - 2012.1-0.5.e4
 - Update to Essex milestone 4.


More information about the scm-commits mailing list