diff --git a/.gitignore b/.gitignore index 577463f..36e3382 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /heat-4.tar.gz /heat-5.tar.gz /heat-6.tar.gz +/heat-7.tar.gz diff --git a/heat-api-cfn.service b/heat-api-cfn.service index e00f8f2..f46cd28 100644 --- a/heat-api-cfn.service +++ b/heat-api-cfn.service @@ -6,7 +6,7 @@ Requires=syslog.target network.target heat-engine.service [Service] ExecStart=/usr/bin/heat-api-cfn Restart=on-failure -User=openstack-heat +User=heat [Install] WantedBy=multi-user.target diff --git a/heat-api-cloudwatch.service b/heat-api-cloudwatch.service index bfc0877..840f1a6 100644 --- a/heat-api-cloudwatch.service +++ b/heat-api-cloudwatch.service @@ -6,7 +6,7 @@ Requires=syslog.target network.target heat-engine.service [Service] ExecStart=/usr/bin/heat-api-cloudwatch Restart=on-failure -User=openstack-heat +User=heat [Install] WantedBy=multi-user.target diff --git a/heat-api.service b/heat-api.service new file mode 100644 index 0000000..8fb5fdb --- /dev/null +++ b/heat-api.service @@ -0,0 +1,12 @@ +[Unit] +Description=The Heat API provides an OpenStack-native ReST API to the Heat Engine for starting AWS CloudFormation templates on OpenStack. +After=syslog.target network.target heat-engine.service +Requires=syslog.target network.target heat-engine.service + +[Service] +ExecStart=/usr/bin/heat-api +Restart=on-failure +User=heat + +[Install] +WantedBy=multi-user.target diff --git a/heat-engine.service b/heat-engine.service index a5e2359..de0d986 100644 --- a/heat-engine.service +++ b/heat-engine.service @@ -6,7 +6,7 @@ Requires=syslog.target network.target qpidd.service mysqld.service openstack-key [Service] ExecStart=/usr/bin/heat-engine Restart=on-failure -User=openstack-heat +User=heat [Install] WantedBy=multi-user.target diff --git a/heat-metadata.service b/heat-metadata.service index bc4efb3..8c7cbb1 100644 --- a/heat-metadata.service +++ b/heat-metadata.service @@ -6,7 +6,7 @@ Requires=syslog.target network.target heat-engine.service [Service] ExecStart=/usr/bin/heat-metadata Restart=on-failure -User=openstack-heat +User=heat [Install] WantedBy=multi-user.target diff --git a/heat.spec b/heat.spec index 2eb93e4..4d7f64f 100644 --- a/heat.spec +++ b/heat.spec @@ -1,16 +1,17 @@ Name: heat Summary: This software provides AWS CloudFormation functionality for OpenStack Essex -Version: 6 -Release: 4%{?dist} +Version: 7 +Release: 2%{?dist} License: ASL 2.0 Group: System Environment/Base URL: http://heat-api.org Source0: https://github.com/downloads/heat-api/heat/heat-%{version}.tar.gz Source1: heat.logrotate -Source2: heat-api-cfn.service -Source3: heat-engine.service -Source4: heat-metadata.service -Source5: heat-api-cloudwatch.service +Source2: heat-api.service +Source3: heat-api-cfn.service +Source4: heat-engine.service +Source5: heat-metadata.service +Source6: heat-api-cloudwatch.service Patch0: switch-to-using-m2crypto.patch @@ -30,7 +31,7 @@ Requires: python-lxml Requires: python-memcached Requires: python-migrate Requires: python-novaclient -Requires: python-paste +Requires: python-paste-deploy Requires: python-qpid Requires: python-routes Requires: pysendfile @@ -59,6 +60,7 @@ mkdir -p %{buildroot}/var/log/heat/ install -p -D -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/logrotate.d/heat # install systemd unit files +install -p -D -m 644 %{SOURCE2} %{buildroot}%{_unitdir}/heat-api.service install -p -D -m 644 %{SOURCE2} %{buildroot}%{_unitdir}/heat-api-cfn.service install -p -D -m 644 %{SOURCE3} %{buildroot}%{_unitdir}/heat-engine.service install -p -D -m 644 %{SOURCE4} %{buildroot}%{_unitdir}/heat-metadata.service @@ -70,6 +72,8 @@ mkdir -p %{buildroot}/%{_mandir}/man1/ cp -v docs/man/man1/* %{buildroot}/%{_mandir}/man1/ rm -rf %{buildroot}/var/lib/heat/.dummy +install -p -D -m 644 %{_builddir}/%{name}-%{version}/etc/heat/heat-api.conf %{buildroot}/%{_sysconfdir}/heat +install -p -D -m 644 %{_builddir}/%{name}-%{version}/etc/heat/heat-api-paste.ini %{buildroot}/%{_sysconfdir}/heat install -p -D -m 644 %{_builddir}/%{name}-%{version}/etc/heat/heat-api-cfn.conf %{buildroot}/%{_sysconfdir}/heat install -p -D -m 644 %{_builddir}/%{name}-%{version}/etc/heat/heat-api-cfn-paste.ini %{buildroot}/%{_sysconfdir}/heat install -p -D -m 644 %{_builddir}/%{name}-%{version}/etc/heat/heat-api-cloudwatch.conf %{buildroot}/%{_sysconfdir}/heat @@ -88,47 +92,79 @@ Heat provides AWS CloudFormation and CloudWatch functionality for OpenStack. %{_mandir}/man1/*.gz %{_bindir}/* %{python_sitelib}/heat* -%dir %attr(0755,openstack-heat,root) %{_localstatedir}/log/heat -%dir %attr(0755,openstack-heat,root) %{_localstatedir}/lib/heat +%dir %attr(0755,heat,root) %{_localstatedir}/log/heat +%dir %attr(0755,heat,root) %{_localstatedir}/lib/heat %{_unitdir}/heat*.service %dir %{_sysconfdir}/heat %config(noreplace) %{_sysconfdir}/logrotate.d/heat %config(noreplace) %{_sysconfdir}/bash_completion.d/heat -%config(noreplace) %attr(-,root,openstack-heat) %{_sysconfdir}/heat/heat-api-cfn.conf -%config(noreplace) %attr(-,root,openstack-heat) %{_sysconfdir}/heat/heat-api-cfn-paste.ini -%config(noreplace) %attr(-,root,openstack-heat) %{_sysconfdir}/heat/heat-api-cloudwatch.conf -%config(noreplace) %attr(-,root,openstack-heat) %{_sysconfdir}/heat/heat-api-cloudwatch-paste.ini -%config(noreplace) %attr(-,root,openstack-heat) %{_sysconfdir}/heat/heat-engine.conf -%config(noreplace) %attr(-,root,openstack-heat) %{_sysconfdir}/heat/heat-metadata.conf -%config(noreplace) %attr(-,root,openstack-heat) %{_sysconfdir}/heat/heat-metadata-paste.ini -%config(noreplace) %attr(-,root,openstack-heat) %{_sysconfdir}/heat/boto.cfg +%config(noreplace) %attr(-,root,heat) %{_sysconfdir}/heat/heat-api.conf +%config(noreplace) %attr(-,root,heat) %{_sysconfdir}/heat/heat-api-paste.ini +%config(noreplace) %attr(-,root,heat) %{_sysconfdir}/heat/heat-api-cfn.conf +%config(noreplace) %attr(-,root,heat) %{_sysconfdir}/heat/heat-api-cfn-paste.ini +%config(noreplace) %attr(-,root,heat) %{_sysconfdir}/heat/heat-api-cloudwatch.conf +%config(noreplace) %attr(-,root,heat) %{_sysconfdir}/heat/heat-api-cloudwatch-paste.ini +%config(noreplace) %attr(-,root,heat) %{_sysconfdir}/heat/heat-engine.conf +%config(noreplace) %attr(-,root,heat) %{_sysconfdir}/heat/heat-metadata.conf +%config(noreplace) %attr(-,root,heat) %{_sysconfdir}/heat/heat-metadata-paste.ini +%config(noreplace) %attr(-,root,heat) %{_sysconfdir}/heat/boto.cfg %pre -getent group openstack-heat >/dev/null || groupadd -r openstack-heat --gid 187 -getent passwd openstack-heat >/dev/null || \ -useradd -u 187 -r -g openstack-heat -d %{_localstatedir}/lib/heat -s /sbin/nologin \ - -c "OpenStack Heat Daemon" openstack-heat +# handle rename from old installs +getent passwd 187 | cut -f1 -d: | grep -qx "openstack-heat" +if [ $? -eq 0 ]; then + usermod -l heat openstack-heat + groupmod -n heat openstack-heat +fi + +getent group heat >/dev/null || groupadd -r heat --gid 187 +getent passwd heat >/dev/null || \ +useradd -u 187 -r -g heat -d %{_localstatedir}/lib/heat -s /sbin/nologin \ + -c "OpenStack Heat Daemon" heat exit 0 %post +%systemd_post heat-api.service %systemd_post heat-api-cfn.service %systemd_post heat-engine.service %systemd_post heat-metadata.service %systemd_post heat-api-cloudwatch.service %preun +%systemd_preun heat-api.service %systemd_preun heat-api-cfn.service %systemd_preun heat-engine.service %systemd_preun heat-engine.service %systemd_preun heat-api-cloudwatch.service %postun +%systemd_postun_with_restart heat-api.service %systemd_postun_with_restart heat-api-cfn.service %systemd_postun_with_restart heat-engine-cfn.service %systemd_postun_with_restart heat-metadata.service %systemd_postun_with_restart heat-api-cloudwatch.service %changelog +* Wed May 29 2013 Jeff Peeler 7-2 +- changed require from python-paste to python-paste-deploy (rhbz#963207) +- changed UID/GID back again to heat instead of openstack-heat (rhbz#920348) + added group/user rename for old installs +- changed systemd scripts to match heat user + +* Fri Oct 26 2012 Zane Bitter 7-1 +- rebase to v7 +- add heat-api daemon (OpenStack-native API) + +* Wed Sep 26 2012 Steven Dake 6-6 +- Merge upstream commit 5208008db047d8cda231100db817c6f0e1c190a5 +- Resolves: RHBZ#860105 +- fix "heat-keystone-setup not available in heat rpm" + +* Wed Sep 26 2012 Steven Dake 6-5 +- Merge upstream commit d9f63269f1a0205811cd84487787c8c1291a952b +- Resolves: RHBZ#860726 +- fix "heat cli prints warning on each operation" + * Wed Sep 26 2012 Jeff Peeler 6-4 - switch requires to python-glanceclient diff --git a/sources b/sources index 9dcb85f..422d448 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -26223425612fb858141ee90eded9d793 heat-5.tar.gz -25de983ccef24da45c02dbc1a829a9c5 heat-6.tar.gz +85337c5b5c7e66561c8f1faf404310d6 heat-7.tar.gz diff --git a/switch-to-using-m2crypto.patch b/switch-to-using-m2crypto.patch index b83d61a..fa55d5e 100644 --- a/switch-to-using-m2crypto.patch +++ b/switch-to-using-m2crypto.patch @@ -1,4 +1,4 @@ -From 05ce67d3842b09943b21e7e72eff1849bc1b32b7 Mon Sep 17 00:00:00 2001 +From 38c97efe5c3e8e2d732f82dcf83cc74ea55dbe4e Mon Sep 17 00:00:00 2001 From: Ian Main Date: Fri, 27 Jul 2012 08:43:10 -0700 Subject: [PATCH] Switch to using M2Crypto @@ -9,12 +9,12 @@ and decryption of user authentication information. Change-Id: Ib40492d4d40a92bf0167c249b15458c89af4716e Signed-off-by: Ian Main --- - heat/engine/auth.py | 22 ++++++++++++---------- - tools/pip-requires | 2 +- + heat/engine/auth.py | 22 ++++++++++++---------- + tools/pip-requires | 2 +- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/heat/engine/auth.py b/heat/engine/auth.py -index a4be7ef..5d16f84 100644 +index 1b1a11c..a90c6b7 100644 --- a/heat/engine/auth.py +++ b/heat/engine/auth.py @@ -24,8 +24,8 @@ from novaclient.exceptions import AuthorizationFailure @@ -28,7 +28,7 @@ index a4be7ef..5d16f84 100644 from heat.openstack.common import cfg from heat.openstack.common import importutils -@@ -45,20 +45,22 @@ logger = logging.getLogger('heat.engine.auth') +@@ -45,17 +45,19 @@ logger = logging.getLogger('heat.engine.auth') def encrypt(auth_info): if auth_info is None: return None @@ -56,11 +56,8 @@ index a4be7ef..5d16f84 100644 + key=cfg.CONF.auth_encryption_key, iv=iv, + op=0) # 0 is decode + return cipher.update(auth[16:]) + cipher.final() - - - def authenticate(con, service_type='orchestration', service_name='heat'): diff --git a/tools/pip-requires b/tools/pip-requires -index 1fcfdf3..4efd475 100644 +index 092419d..085567e 100644 --- a/tools/pip-requires +++ b/tools/pip-requires @@ -9,7 +9,7 @@ @@ -73,5 +70,5 @@ index 1fcfdf3..4efd475 100644 greenlet httplib2 -- -1.7.10.4 +1.7.11.7