[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