[openstack-marconi/master-next: 2/2] WIP

Jon Bernard jbernard at fedoraproject.org
Tue Apr 29 20:05:09 UTC 2014


commit 4d630a4c72860598480e9ce3365ebfe6a8a671e7
Author: Jon Bernard <jbernard at tuxion.com>
Date:   Tue Apr 29 15:59:18 2014 -0400

    WIP

 0001-Remove-runtime-dependency-on-PBR.patch |    8 +-
 marconi-dist.conf                           |    5 +
 openstack-marconi.spec                      |  111 ++++++++++++++++++---------
 3 files changed, 85 insertions(+), 39 deletions(-)
---
diff --git a/0001-Remove-runtime-dependency-on-PBR.patch b/0001-Remove-runtime-dependency-on-PBR.patch
index 0d6b054..1ef743b 100644
--- a/0001-Remove-runtime-dependency-on-PBR.patch
+++ b/0001-Remove-runtime-dependency-on-PBR.patch
@@ -1,4 +1,4 @@
-From 92d70932aab250d5b7fd264b690a79b2f5a655ac Mon Sep 17 00:00:00 2001
+From d399e9886d3edd9a8030ba903236d774179c9571 Mon Sep 17 00:00:00 2001
 From: Jon Bernard <jbernard at tuxion.com>
 Date: Tue, 22 Apr 2014 13:16:29 -0400
 Subject: [PATCH] Remove runtime dependency on PBR
@@ -8,7 +8,7 @@ Subject: [PATCH] Remove runtime dependency on PBR
  1 file changed, 24 insertions(+), 3 deletions(-)
 
 diff --git a/marconi/version.py b/marconi/version.py
-index a3acf95..ebc4d9e 100644
+index a3acf95..af59049 100644
 --- a/marconi/version.py
 +++ b/marconi/version.py
 @@ -13,11 +13,32 @@
@@ -24,8 +24,8 @@ index a3acf95..ebc4d9e 100644
  
 -version_info = pbr.version.VersionInfo('marconi')
 +class VersionInfo(object):
-+    release = "REDHATMARCONIRELEASE"
-+    version = "REDHATMARCONIVERSION"
++    release = "REDHATRELEASE"
++    version = "REDHATVERSION"
 +
 +    def version_string(self):
 +        return self.version
diff --git a/marconi-dist.conf b/marconi-dist.conf
new file mode 100644
index 0000000..b50423a
--- /dev/null
+++ b/marconi-dist.conf
@@ -0,0 +1,5 @@
+[DEFAULT]
+log_file = /var/log/marconi/marconi.log
+
+[drivers]
+storage=sqlite
diff --git a/openstack-marconi.spec b/openstack-marconi.spec
index d3bf092..1e8b4ff 100644
--- a/openstack-marconi.spec
+++ b/openstack-marconi.spec
@@ -1,14 +1,19 @@
-Name:             openstack-marconi
+%define project marconi
+
+Name:             openstack-%{project}
 Version:          2014.1
-Release:          1%{?dist}.1
-Summary:          OpenStack Message Queuing Service
+Release:          1%{?dist}.2
+Summary:          OpenStack Message Queuing Service (%{project})
 
 Group:            Applications/System
 License:          ASL 2.0
 URL:              https://wiki.openstack.org/wiki/Marconi
-Source0:          https://launchpad.net/marconi/icehouse/%{version}/+download/marconi-%{version}.tar.gz
-Source1:          openstack-marconi.service
-Source2:          openstack-marconi.logrotate
+Source0:          https://launchpad.net/%{project}/icehouse/%{version}/+download/%{project}-%{version}.tar.gz
+
+Source1:          %{project}-dist.conf
+
+Source10:         %{name}.service
+Source11:         %{name}.logrotate
 
 #
 # patches_base=2014.1
@@ -52,42 +57,65 @@ portfolio, supporting point-to-point, producer-consumer, publisher-subscriber
 models.  Marconi is designed to perform and scale in a multi-tenant environment.
 
 %prep
-%setup -q -n marconi-%{version}
+%setup -q -n %{project}-%{version}
 
 %patch0001 -p1
 
-sed -i s/REDHATMARCONIVERSION/%{version}/ marconi/version.py
-sed -i s/REDHATMARCONIRELEASE/%{release}/ marconi/version.py
+sed -i 's/REDHATVERSION/%{version}/; s/REDHATRELEASE/%{release}/' %{project}/version.py
 
+# Remove the requirements file so that pbr hooks don't add it
+# to distutils requires_dist config
 rm -rf {test-,}requirements.txt
 
 %build
 %{__python2} setup.py build
 
-# set default driver to sqlite
-openstack-config --set etc/marconi.conf.sample drivers storage sqlite
+# Programmatically update defaults in sample configs
+
+#  First we ensure all values are commented in appropriate format.
+#  Since icehouse, there was an uncommented keystone_authtoken section
+#  at the end of the file which mimics but also conflicted with our
+#  distro editing that had been done for many releases.
+sed -i '/^[^#[]/{s/^/#/; s/ //g}; /^#[^ ]/s/ = /=/' etc/%{project}.conf.sample etc/logging.conf.sample
+
+#  TODO: Make this more robust
+#  Note it only edits the first occurance, so assumes a section ordering in sample
+#  and also doesn't support multi-valued variables like dhcpbridge_flagfile.
+while read name eq value; do
+  test "$name" && test "$value" || continue
+  sed -i "0,/^# *$name=/{s!^# *$name=.*!#$name=$value!}" etc/%{project}.conf.sample
+done < %{SOURCE1}
 
 %install
 %{__python2} setup.py install -O1 --skip-build --root %{buildroot}
 
-# config files
-install -p -D -m 640 etc/marconi.conf.sample %{buildroot}%{_sysconfdir}/marconi/marconi.conf
-install -p -D -m 640 etc/logging.conf.sample %{buildroot}%{_sysconfdir}/marconi/logging.conf
+# Setup directories
+install -d -m 755 %{buildroot}%{_unitdir}
+install -d -m 755 %{buildroot}%{_datadir}/%{project}
+install -d -m 755 %{buildroot}%{_sharedstatedir}/%{project}
+install -d -m 755 %{buildroot}%{_localstatedir}/log/%{project}
+
+# Install config files
+install -p -D -m 644 %{SOURCE1} %{buildroot}%{_datadir}/%{project}/%{project}-dist.conf
+install -d -m 755 %{buildroot}%{_sysconfdir}/%{project}
 
-# initscripts
-install -p -D -m 644 %{SOURCE1} %{buildroot}%{_unitdir}/openstack-marconi.service
+install -p -D -m 640 etc/%{project}.conf.sample %{buildroot}%{_sysconfdir}/%{project}/%{project}.conf
+install -p -D -m 640 etc/logging.conf.sample    %{buildroot}%{_sysconfdir}/%{project}/logging.conf
 
-# log directory
-install -d -m 755 %{buildroot}%{_localstatedir}/log/marconi
+# Install logrotate
+install -p -D -m 644 %{SOURCE11} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
 
-# log ratation
-install -p -D -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/openstack-marconi
+# Install initscripts
+install -p -m 644 %{SOURCE10} %{buildroot}%{_unitdir}
 
 %pre
-getent group marconi >/dev/null || groupadd -r marconi
-getent passwd marconi >/dev/null || \
-    useradd -r -g marconi -d %{_sharedstatedir}/marconi -s /sbin/nologin \
-    -c "OpenStack Marconi Daemon" marconi
+USERNAME=%{project}
+GROUPNAME=$USERNAME
+HOMEDIR=%{_sharedstatedir}/$USERNAME
+getent group $GROUPNAME >/dev/null || groupadd -r $GROUPNAME
+getent passwd $USERNAME >/dev/null || \
+  useradd -r -g $GROUPNAME -G $GROUPNAME -d $HOMEDIR -s /sbin/nologin \
+    -c "OpenStack Marconi Daemon" $USERNAME
 exit 0
 
 %post
@@ -100,19 +128,32 @@ exit 0
 %systemd_postun_with_restart openstack-marconi.service
 
 %files
-%doc README.rst
-%{_bindir}/marconi-server
-%{python2_sitelib}/marconi
-%{python2_sitelib}/marconi-%{version}*.egg-info
-%{_unitdir}/openstack-marconi.service
-
-%dir %{_sysconfdir}/marconi
-%config(noreplace) %attr(-, root, marconi) %{_sysconfdir}/marconi/marconi.conf
-%config(noreplace) %attr(-, root, marconi) %{_sysconfdir}/marconi/logging.conf
-%config(noreplace) %attr(-, root, marconi) %{_sysconfdir}/logrotate.d/openstack-marconi
-%dir %attr(0750, marconi, marconi) %{_localstatedir}/log/marconi
+%doc LICENSE README.rst
+
+%dir %{_sysconfdir}/%{project}
+%config(noreplace) %attr(0640, root, %{project}) %{_sysconfdir}/%{project}/%{project}.conf
+%config(noreplace) %attr(0640, root, %{project}) %{_sysconfdir}/%{project}/logging.conf
+%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
+
+%dir %attr(0755, %{project}, root) %{_localstatedir}/log/%{project}
+
+%{_bindir}/%{project}-server
+
+%{_datarootdir}/%{project}
+
+%defattr(-, %{project}, %{project}, -)
+%dir %{_sharedstatedir}/%{project}
+
+%defattr(-,root,root,-)
+%{_unitdir}/%{name}.service
+%{python_sitelib}/%{project}
+%{python_sitelib}/%{project}-%{version}*.egg-info
 
 %changelog
+* Tue Apr 29 2014 Jon Bernard <jobernar at redhat.com> - 2014.1-2
+- Added dist config file overrides
+- Various cleanups
+
 * Tue Apr 22 2014 Jon Bernard <jobernar at redhat.com> - 2014.1-1.1
 - Add missing runtime dependency on python-posix_ipc
 - Remove runtime dependency on PBR


More information about the scm-commits mailing list