From: Dmitry Burmistrov Date: Mon, 17 Mar 2014 11:30:50 +0000 (+0400) Subject: Update specs to v. 2014.1.b2 X-Git-Tag: 2014.1~3 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=refs%2Fheads%2Fopenstack-ci%2Ffuel-5.0%2F2014.1.rc2;p=openstack-build%2Fheat-build.git Update specs to v. 2014.1.b2 Change-Id: I0dbe64594918d390625f3d82801857dd8a7b887d --- diff --git a/debian/changelog b/debian/changelog index 9fa63433..1df33636 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,53 @@ -heat (2013.2-0ubuntu1~cloud0) precise-havana; urgency=low +heat (2014.1~b2-0ubuntu1~cloud0) precise-icehouse; urgency=low * New upstream release for the Ubuntu Cloud Archive. - -- James Page Sun, 13 Oct 2013 11:08:42 +0100 + -- Openstack Ubuntu Testing Bot Mon, 27 Jan 2014 04:08:50 -0500 + +heat (2014.1~b2-0ubuntu1) trusty; urgency=low + + [ James Page ] + * d/p/*: Refreshed. + + [ Yolanda Robla ] + * debian/control: Added lockfile to build depends + + [ Chuck Short ] + * debian/patches/adjust-dependencies: Adjust Ubuntu dependencies. + * debian/patches/skip-tests.patch: Skip failing tests on buildds. + * debian/rules: Add pythonpath for tests. + + -- Chuck Short Thu, 23 Jan 2014 15:28:54 -0500 + +heat (2014.1~b1-0ubuntu2) trusty; urgency=low + + * debian/patches/default-sqlite.patch: Update default sqlite path to + fix heat-engine install failures. + + -- James Page Fri, 06 Dec 2013 11:26:25 +0000 + +heat (2014.1~b1-0ubuntu1) trusty; urgency=low + + [ Chuck Short ] + * New upstream release. + * debian/control: + + Open icehouse release. + + Dropped python-argparse, python-qpid, python-noseexcover, + python-nose, and python-pycryptopp + + Add versioned depends for python-pbr. + + Add python-testscenarios as a build dependency. + * debian/patches/default-sqlite.patch: Dropped no longer needed. + + [ Yolanda Robla ] + * debian/control: Added python-heatclient as a build dependency. + + -- Chuck Short Thu, 05 Dec 2013 21:17:37 -0500 + +heat (2013.2-0ubuntu1) saucy; urgency=low + + * New upstream release (LP: #1236462). + + -- Chuck Short Thu, 17 Oct 2013 09:30:24 -0400 heat (2013.2~rc2-0ubuntu1) saucy; urgency=low diff --git a/debian/control b/debian/control index b36544c1..e4e2fd93 100644 --- a/debian/control +++ b/debian/control @@ -12,9 +12,8 @@ Uploaders: Build-Depends: debhelper (>= 9), python-all (>= 2.6.6-3~), - python-pbr + python-pbr (>= 0.5.21), Build-Depends-Indep: - python-argparse, python-babel, python-boto (>= 2.4), python-ceilometerclient, @@ -25,26 +24,24 @@ Build-Depends-Indep: python-extras, python-glanceclient, python-greenlet (>= 0.3.2), + python-heatclient, python-httplib2, python-iso8601, python-keystoneclient (>= 1:0.2.3), python-kombu, + python-lockfile (>= 0.8), python-lxml (>= 2.3), python-memcache, python-migrate, python-mox, python-netaddr, python-neutronclient (>= 1:2.2.0), - python-nose, - python-nosexcover, python-novaclient, python-oslo.config, python-oslo.sphinx, python-paramiko, python-paste, python-pastedeploy, - python-pycryptopp, - python-qpid, python-routes, python-sendfile, python-setuptools, @@ -53,13 +50,14 @@ Build-Depends-Indep: python-sqlalchemy (>= 0.7.8), python-swiftclient, python-testrepository (>= 0.0.13), + python-testscenarios, python-testtools (>= 0.9.29), python-webob (>= 1.2.3), python-yaml, testrepository (>= 0.0.13) Standards-Version: 3.9.4 -Vcs-Browser: http://bazaar.launchpad.net/~ubuntu-server-dev/heat/havana/files -Vcs-Bzr: https://code.launchpad.net/~ubuntu-server-dev/heat/havana +Vcs-Browser: http://bazaar.launchpad.net/~ubuntu-server-dev/heat/icehouse/files +Vcs-Bzr: https://code.launchpad.net/~ubuntu-server-dev/heat/icehouse Homepage: http://wiki.openstack.org/Heat XS-Testsuite: autopkgtest @@ -88,8 +86,6 @@ Depends: python-oslo.config, python-paste, python-pastedeploy, - python-pycryptopp, - python-qpid, python-routes, python-sendfile, python-setuptools, diff --git a/debian/patches/adjust-dependencies.patch b/debian/patches/adjust-dependencies.patch new file mode 100644 index 00000000..c7eb6343 --- /dev/null +++ b/debian/patches/adjust-dependencies.patch @@ -0,0 +1,19 @@ +Description: Adjust dependencies for trusty. +Author: Chuck Short +Forwarded: no +diff --git a/requirements.txt b/requirements.txt +index 11fb75d..5f0b031 100644 +--- a/requirements.txt ++++ b/requirements.txt +@@ -14,8 +14,8 @@ python-novaclient>=2.15.0 + PasteDeploy>=1.5.0 + requests>=1.1 + Routes>=1.12.3 +-SQLAlchemy>=0.7.8,<=0.7.99 +-WebOb>=1.2.3,<1.3 ++SQLAlchemy>=0.7.8,<=0.8.99 ++WebOb>=1.2.3 + python-heatclient>=0.2.3 + python-keystoneclient>=0.4.1 + python-swiftclient>=1.5 + diff --git a/debian/patches/default-sqlite.patch b/debian/patches/default-sqlite.patch index de86e252..c511ea94 100644 --- a/debian/patches/default-sqlite.patch +++ b/debian/patches/default-sqlite.patch @@ -3,14 +3,13 @@ Author: James Page Forwarded: not-needed --- This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ -Index: heat/etc/heat/heat.conf.sample ---- heat.orig/etc/heat/heat.conf.sample 2013-09-06 16:37:54.000000000 -0700 -+++ heat/etc/heat/heat.conf.sample 2013-09-06 16:39:31.363547917 -0700 -@@ -7,6 +7,7 @@ - # The SQLAlchemy connection string used to connect to the - # database (string value) - #sql_connection=mysql://heat:heat@localhost/heat -+sql_connection = sqlite:////var/lib/heat/heat.sqlite +--- a/etc/heat/heat.conf.sample ++++ b/etc/heat/heat.conf.sample +@@ -550,6 +550,7 @@ + # Deprecated group/name - [DATABASE]/sql_connection + # Deprecated group/name - [sql]/connection + #connection=sqlite:////heat/openstack/common/db/$sqlite_db ++connection=sqlite:////var/lib/heat/$sqlite_db - # timeout before idle sql connections are reaped (integer - # value) + # The SQLAlchemy connection string used to connect to the + # slave database (string value) diff --git a/debian/patches/series b/debian/patches/series index 2b6b02c4..fa7c1167 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1 +1,3 @@ default-sqlite.patch +adjust-dependencies.patch +skip-tests.patch diff --git a/debian/patches/skip-tests.patch b/debian/patches/skip-tests.patch new file mode 100644 index 00000000..2be91ffa --- /dev/null +++ b/debian/patches/skip-tests.patch @@ -0,0 +1,43 @@ +Description: Skip tests that fail in the buildds. +Author: Chuck Short +Forwarded: No +diff --git a/heat/tests/test_server.py b/heat/tests/test_server.py +index fabd8d8..c115c85 100644 +--- a/heat/tests/test_server.py ++++ b/heat/tests/test_server.py +@@ -646,7 +646,10 @@ class ServersTest(HeatTestCase): + + update_template = copy.deepcopy(server.t) + update_template['Properties']['image'] = self.getUniqueString() +- updater = scheduler.TaskRunner(server.update, update_template) ++ try: ++ updater = scheduler.TaskRunner(server.update, update_template) ++ except: ++ self.skipTest('Skipped by Ubuntu') + self.assertRaises(resource.UpdateReplace, updater) + + def _test_server_update_image_rebuild(self, status, policy='REBUILD'): +@@ -678,7 +681,10 @@ class ServersTest(HeatTestCase): + return_server.get = activate_status.__get__(return_server) + + self.m.ReplayAll() +- scheduler.TaskRunner(server.update, update_template)() ++ try: ++ scheduler.TaskRunner(server.update, update_template)() ++ except: ++ self.skipTest('Skipped by Ubuntu') + self.assertEqual(server.state, (server.UPDATE, server.COMPLETE)) + self.m.VerifyAll() + +@@ -729,7 +735,10 @@ class ServersTest(HeatTestCase): + return_server.get = activate_status2.__get__(return_server) + self.m.ReplayAll() + updater = scheduler.TaskRunner(server.update, update_template) +- error = self.assertRaises(exception.ResourceFailure, updater) ++ try: ++ error = self.assertRaises(exception.ResourceFailure, updater) ++ except: ++ self.skipTest('Skipped by Ubuntu') + self.assertEqual( + "Error: Rebuilding server failed, status 'ERROR'", + str(error)) diff --git a/debian/rules b/debian/rules index feb332a8..1585fb4e 100755 --- a/debian/rules +++ b/debian/rules @@ -3,11 +3,11 @@ #export DH_VERBOSE=1 %: - dh $@ --with python2 + dh $@ --with python2 ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS))) override_dh_auto_test: - ./run_tests.sh -u --concurrency=1 + PYTHONPATH=. ./run_tests.sh -u --concurrency=1 || true endif override_dh_clean: diff --git a/rpm/SOURCES/switch-to-using-m2crypto.patch b/rpm/SOURCES/0001-Switch-to-using-M2Crypto.patch similarity index 56% rename from rpm/SOURCES/switch-to-using-m2crypto.patch rename to rpm/SOURCES/0001-Switch-to-using-M2Crypto.patch index 797894b1..44e87f29 100644 --- a/rpm/SOURCES/switch-to-using-m2crypto.patch +++ b/rpm/SOURCES/0001-Switch-to-using-M2Crypto.patch @@ -1,41 +1,60 @@ -From 4510d7e7f427ac4b0770832108641a5048624332 Mon Sep 17 00:00:00 2001 +From a5963d7cf88c87285c724d3da81299359efb8d22 Mon Sep 17 00:00:00 2001 From: Jeff Peeler Date: Wed, 8 May 2013 12:27:35 -0400 Subject: [PATCH] Switch to using M2Crypto This patch uses M2Crypto instead of PyCrypto to perform encryption and decryption of user authentication information. - --- + heat/common/crypt.py | 32 ++++++++++++++------------------ + requirements.txt | 2 +- + 2 files changed, 15 insertions(+), 19 deletions(-) + diff --git a/heat/common/crypt.py b/heat/common/crypt.py -index 81b4c92..01fa353 100644 +index 8d27617..aa5f7ea 100644 --- a/heat/common/crypt.py +++ b/heat/common/crypt.py -@@ -14,7 +14,7 @@ +@@ -14,10 +14,11 @@ # under the License. import base64 -from Crypto.Cipher import AES +import M2Crypto - from os import urandom - ++from os import urandom ++ from oslo.config import cfg -@@ -36,9 +36,11 @@ logger = logging.getLogger(__name__) + +-from heat.openstack.common.crypto import utils + from heat.openstack.common import log as logging + + +@@ -35,19 +36,12 @@ logger = logging.getLogger(__name__) def encrypt(auth_info): if auth_info is None: - return None -- iv = urandom(AES.block_size) -- cipher = AES.new(cfg.CONF.auth_encryption_key[:32], AES.MODE_CFB, iv) -- res = base64.b64encode(iv + cipher.encrypt(auth_info)) + return None, None +- sym = utils.SymmetricCrypto() +- res = sym.encrypt(cfg.CONF.auth_encryption_key[:32], +- auth_info, b64encode=True) +- return 'oslo_decrypt_v1', res +- +- +-def oslo_decrypt_v1(auth_info): +- if auth_info is None: +- return None +- sym = utils.SymmetricCrypto() +- return sym.decrypt(cfg.CONF.auth_encryption_key[:32], +- auth_info, b64decode=True) +- + iv = urandom(16) + cipher = M2Crypto.EVP.Cipher(alg='aes_128_cbc', + key=cfg.CONF.auth_encryption_key[:32], iv=iv, + op=1) # 1 is encode + res = base64.b64encode(iv + cipher.update(auth_info) + cipher.final()) - return res ++ return 'heat_decrypt', res - -@@ -46,7 +48,9 @@ def decrypt(auth_info): + def heat_decrypt(auth_info): + """Decrypt function for data that has been encrypted using an older +@@ -61,7 +55,9 @@ def heat_decrypt(auth_info): if auth_info is None: return None auth = base64.b64decode(auth_info) @@ -48,8 +67,8 @@ index 81b4c92..01fa353 100644 + op=0) # 0 is decode + res = cipher.update(auth[16:]) + cipher.final() return res -diff --git a/tools/pip-requires b/tools/pip-requires -index 06795f9..091168c 100644 +diff --git a/requirements.txt b/requirements.txt +index 11fb75d..969bbb4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ @@ -59,6 +78,3 @@ index 06795f9..091168c 100644 eventlet>=0.13.0 greenlet>=0.3.2 httplib2 --- -1.8.1.4 - diff --git a/rpm/SOURCES/remove-pbr-runtime-dependency.patch b/rpm/SOURCES/0002-remove-pbr-runtime-dependency.patch similarity index 63% rename from rpm/SOURCES/remove-pbr-runtime-dependency.patch rename to rpm/SOURCES/0002-remove-pbr-runtime-dependency.patch index 46cecd13..1b47452d 100644 --- a/rpm/SOURCES/remove-pbr-runtime-dependency.patch +++ b/rpm/SOURCES/0002-remove-pbr-runtime-dependency.patch @@ -1,3 +1,12 @@ +From b880a01e8de36cfa7fddf184995656b163f75832 Mon Sep 17 00:00:00 2001 +From: Jeff Peeler +Date: Mon, 14 Oct 2013 14:30:34 -0400 +Subject: [PATCH] remove pbr runtime dependency + +--- + heat/version.py | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + diff --git a/heat/version.py b/heat/version.py index a717606..8ea213a 100644 --- a/heat/version.py diff --git a/rpm/SOURCES/heat-newdeps.patch b/rpm/SOURCES/0003-Adjust-to-handle-parallel-installed-packages.patch similarity index 70% rename from rpm/SOURCES/heat-newdeps.patch rename to rpm/SOURCES/0003-Adjust-to-handle-parallel-installed-packages.patch index b40a313a..3649ab54 100644 --- a/rpm/SOURCES/heat-newdeps.patch +++ b/rpm/SOURCES/0003-Adjust-to-handle-parallel-installed-packages.patch @@ -1,11 +1,20 @@ -diff --git a/heat/common/__init__.py b/heat/common/__init__.py -index e8e4035..0db8b7e 100644 ---- a/heat/common/__init__.py -+++ b/heat/common/__init__.py -@@ -12,3 +12,36 @@ - # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - # License for the specific language governing permissions and limitations - # under the License. +From 24d4b6026f43270c74305eb263562a627117a528 Mon Sep 17 00:00:00 2001 +From: Jeff Peeler +Date: Tue, 2 Apr 2013 18:08:48 -0400 +Subject: [PATCH] Adjust to handle parallel installed packages + +--- + heat/__init__.py | 33 +++++++++++++++++++++++++++++++++ + 1 file changed, 33 insertions(+) + +diff --git a/heat/__init__.py b/heat/__init__.py +index 57e2d0f..d9df4ce 100644 +--- a/heat/__init__.py ++++ b/heat/__init__.py +@@ -19,3 +19,36 @@ from heat.openstack.common import gettextutils + + + gettextutils.install('heat') + +import sys +import pkg_resources diff --git a/rpm/SOURCES/0004-Fix-adding-heat_stack_user-role-via-v3-API.patch b/rpm/SOURCES/0004-Fix-adding-heat_stack_user-role-via-v3-API.patch new file mode 100644 index 00000000..303a35b7 --- /dev/null +++ b/rpm/SOURCES/0004-Fix-adding-heat_stack_user-role-via-v3-API.patch @@ -0,0 +1,75 @@ +From 4fc965c4dfe0d59c6bf1f14e87e3350e9e2d7328 Mon Sep 17 00:00:00 2001 +From: Steven Hardy +Date: Tue, 21 Jan 2014 14:51:16 +0000 +Subject: [PATCH] Fix adding heat_stack_user role via v3 API + +A regression was introduced via 301a894 because it expects +keystoneclient functionality which is not yet merged/released, +so instead of passing the name to roles.list() we must filter +the results locally to lookup the role ID. + +The lack of filtering support is a general issue with the v3 +keystoneclient interfaces, so when it's fixed we can remove +this workaround. + +Closes-Bug: #1271190 +Change-Id: I1b29cc131496e4b19493a8cd8e6d4ed913db0938 +--- + heat/common/heat_keystoneclient.py | 10 +++++++--- + heat/tests/test_heatclient.py | 13 ++++++++++++- + 2 files changed, 19 insertions(+), 4 deletions(-) + +diff --git a/heat/common/heat_keystoneclient.py b/heat/common/heat_keystoneclient.py +index 93f7c0c..2b7a29b 100644 +--- a/heat/common/heat_keystoneclient.py ++++ b/heat/common/heat_keystoneclient.py +@@ -253,10 +253,14 @@ class KeystoneClient(object): + # This role is designed to allow easier differentiation of the + # heat-generated "stack users" which will generally have credentials + # deployed on an instance (hence are implicitly untrusted) +- stack_user_role = self.client_v3.roles.list( +- name=cfg.CONF.heat_stack_user_role) ++ # FIXME(shardy): The v3 keystoneclient doesn't currently support ++ # filtering the results, so we have to do it locally, update when ++ # that is fixed in keystoneclient ++ roles_list = self.client_v3.roles.list() ++ stack_user_role = [r for r in roles_list ++ if r.name == cfg.CONF.heat_stack_user_role] + if len(stack_user_role) == 1: +- role_id = stack_user_role[0] ++ role_id = stack_user_role[0].id + logger.debug(_("Adding user %(user)s to role %(role)s") % { + 'user': user.id, 'role': role_id}) + self.client_v3.roles.grant(role=role_id, user=user.id, +diff --git a/heat/tests/test_heatclient.py b/heat/tests/test_heatclient.py +index 1d0f79e..85a503b 100644 +--- a/heat/tests/test_heatclient.py ++++ b/heat/tests/test_heatclient.py +@@ -139,6 +139,7 @@ class KeystoneClientTest(HeatTestCase): + # mock keystone client user functions + self.mock_ks_v3_client.users = self.m.CreateMockAnything() + mock_user = self.m.CreateMockAnything() ++ mock_user.id = 'auser123' + # when keystone is called, the name should have been truncated + # to the last 64 characters of the long name + self.mock_ks_v3_client.users.create(name=good_user_name, +@@ -147,8 +148,18 @@ class KeystoneClientTest(HeatTestCase): + ).AndReturn(mock_user) + # mock out the call to roles; will send an error log message but does + # not raise an exception ++ mock_roles_list = [] ++ for r_id, r_name in (('1234', 'blah'), ('4546', 'heat_stack_user')): ++ mock_role = self.m.CreateMockAnything() ++ mock_role.id = r_id ++ mock_role.name = r_name ++ mock_roles_list.append(mock_role) ++ + self.mock_ks_v3_client.roles = self.m.CreateMockAnything() +- self.mock_ks_v3_client.roles.list(name='heat_stack_user').AndReturn([]) ++ self.mock_ks_v3_client.roles.list().AndReturn(mock_roles_list) ++ self.mock_ks_v3_client.roles.grant(project=ctx.tenant_id, ++ role='4546', ++ user='auser123').AndReturn(None) + self.m.ReplayAll() + # call create_stack_user with a long user name. + # the cleanup VerifyAll should verify that though we passed diff --git a/rpm/SOURCES/openstack-heat-api-cfn.init b/rpm/SOURCES/openstack-heat-api-cfn.init index 87d845f3..acdf1c5e 100644 --- a/rpm/SOURCES/openstack-heat-api-cfn.init +++ b/rpm/SOURCES/openstack-heat-api-cfn.init @@ -20,8 +20,8 @@ . /etc/rc.d/init.d/functions -prog=heat-api-cfn -exec="/usr/bin/$prog" +prog=openstack-heat-api-cfn +exec="/usr/bin/heat-api-cfn" config="/etc/heat/heat.conf" pidfile="/var/run/heat/$prog.pid" diff --git a/rpm/SOURCES/openstack-heat-api-cloudwatch.init b/rpm/SOURCES/openstack-heat-api-cloudwatch.init index 7edbdf68..fd8f7703 100644 --- a/rpm/SOURCES/openstack-heat-api-cloudwatch.init +++ b/rpm/SOURCES/openstack-heat-api-cloudwatch.init @@ -18,8 +18,8 @@ . /etc/rc.d/init.d/functions -prog=heat-api-cloudwatch -exec="/usr/bin/$prog" +prog=openstack-heat-api-cloudwatch +exec="/usr/bin/heat-api-cloudwatch" config="/etc/heat/heat.conf" pidfile="/var/run/heat/$prog.pid" diff --git a/rpm/SOURCES/openstack-heat-api.init b/rpm/SOURCES/openstack-heat-api.init index 9747ce70..bfed9953 100644 --- a/rpm/SOURCES/openstack-heat-api.init +++ b/rpm/SOURCES/openstack-heat-api.init @@ -20,8 +20,8 @@ . /etc/rc.d/init.d/functions -prog=heat-api -exec="/usr/bin/$prog" +prog=openstack-heat-api +exec="/usr/bin/heat-api" config="/etc/heat/heat.conf" pidfile="/var/run/heat/$prog.pid" diff --git a/rpm/SOURCES/openstack-heat-engine.init b/rpm/SOURCES/openstack-heat-engine.init index 8422fd28..573937cf 100644 --- a/rpm/SOURCES/openstack-heat-engine.init +++ b/rpm/SOURCES/openstack-heat-engine.init @@ -18,8 +18,8 @@ . /etc/rc.d/init.d/functions -prog=heat-engine -exec="/usr/bin/$prog" +prog=openstack-heat-engine +exec="/usr/bin/heat-engine" config="/etc/heat/heat.conf" pidfile="/var/run/heat/$prog.pid" diff --git a/rpm/SPECS/openstack-heat.spec b/rpm/SPECS/openstack-heat.spec index fa53a45a..33b45ee9 100644 --- a/rpm/SPECS/openstack-heat.spec +++ b/rpm/SPECS/openstack-heat.spec @@ -1,18 +1,19 @@ -%global release_name havana -%global release_letter rc +%global release_name icehouse +%global release_letter b %global milestone 2 -%global full_release heat-%{version} +%global full_release heat-%{version}.%{release_letter}%{milestone} +#%global full_release heat-%{version} %global with_doc %{!?_without_doc:1}%{?_without_doc:0} Name: openstack-heat Summary: OpenStack Orchestration (heat) -Version: 2013.2 -Release: 1.0%{?dist} +Version: 2014.1 +Release: 0.5.%{release_letter}%{milestone}%{?dist} License: ASL 2.0 Group: System Environment/Base URL: http://www.openstack.org -Source0: https://launchpad.net/heat/%{release_name}/%{version}/+download/heat-%{version}.tar.gz +Source0: https://launchpad.net/heat/%{release_name}/%{release_name}-%{milestone}/+download/%{full_release}.tar.gz Obsoletes: heat < 7-9 Provides: heat @@ -23,10 +24,13 @@ Source4: openstack-heat-engine.init Source5: openstack-heat-api-cloudwatch.init Source20: heat-dist.conf -Patch0: switch-to-using-m2crypto.patch -Patch1: remove-pbr-runtime-dependency.patch -# EPEL specific patch, not upstream -Patch100: heat-newdeps.patch +# +# patches_base=2014.1.b2 +# +Patch0001: 0001-Switch-to-using-M2Crypto.patch +Patch0002: 0002-remove-pbr-runtime-dependency.patch +Patch0003: 0003-Adjust-to-handle-parallel-installed-packages.patch +Patch0004: 0004-Fix-adding-heat_stack_user-role-via-v3-API.patch BuildArch: noarch BuildRequires: git @@ -53,7 +57,7 @@ BuildRequires: python-sphinx10 BuildRequires: python-paste-deploy1.5 BuildRequires: python-routes1.12 BuildRequires: python-sqlalchemy0.7 -BuildRequires: python-webob +BuildRequires: python-webob1.2 BuildRequires: python-pbr BuildRequires: python-d2to1 @@ -64,6 +68,7 @@ BuildRequires: python-keystoneclient BuildRequires: python-novaclient BuildRequires: python-neutronclient BuildRequires: python-swiftclient +BuildRequires: python-heatclient %endif Requires: %{name}-common = %{version}-%{release} @@ -74,10 +79,11 @@ Requires: %{name}-api-cloudwatch = %{version}-%{release} %prep %setup -q -n %{full_release} -%patch0 -p1 -%patch1 -p1 -%patch100 -p1 +%patch0001 -p1 +%patch0002 -p1 +%patch0003 -p1 +%patch0004 -p1 sed -i s/REDHATHEATVERSION/%{version}/ heat/version.py sed -i s/REDHATHEATRELEASE/%{release}/ heat/version.py @@ -85,44 +91,19 @@ sed -i s/REDHATHEATRELEASE/%{release}/ heat/version.py # to distutils requires_dist config rm -rf {test-,}requirements.txt tools/{pip,test}-requires -echo ' -# -# Options to be passed to keystoneclient.auth_token middleware -# NOTE: These options are not defined in heat but in keystoneclient -# -[keystone_authtoken] - -# the name of the admin tenant (string value) -#admin_tenant_name= - -# the keystone admin username (string value) -#admin_user= - -# the keystone admin password (string value) -#admin_password= - -# the keystone host (string value) -#auth_host= - -# the keystone port (integer value) -#auth_port= - -# protocol to be used for auth requests http/https (string value) -#auth_protocol= - -#auth_uri= - -# signing_dir is configurable, but the default behavior of the authtoken -# middleware should be sufficient. It will create a temporary directory -# in the home directory for the user the heat process is running as. -#signing_dir=/var/lib/heat/keystone-signing -' >> etc/heat/heat.conf.sample # Programmatically update defaults in sample config # which is installed at /etc/heat/heat.conf -# 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. + +# 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/heat/heat.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. while read name eq value; do test "$name" && test "$value" || continue sed -i "0,/^# *$name=/{s!^# *$name=.*!#$name=$value!}" etc/heat/heat.conf.sample @@ -133,7 +114,6 @@ done < %{SOURCE20} %install %{__python} setup.py install -O1 --skip-build --root=%{buildroot} -sed -i -e '/^#!/,1 d' %{buildroot}/%{python_sitelib}/heat/db/sqlalchemy/manage.py sed -i -e '/^#!/,1 d' %{buildroot}/%{python_sitelib}/heat/db/sqlalchemy/migrate_repo/manage.py mkdir -p %{buildroot}/var/log/heat/ mkdir -p %{buildroot}/var/run/heat/ @@ -159,6 +139,8 @@ install -p -D -m 644 build/man/*.1 %{buildroot}%{_mandir}/man1/ popd %endif +rm -f %{buildroot}/%{_bindir}/heat-db-setup +rm -f %{buildroot}/%{_mandir}/man1/heat-db-setup.* rm -rf %{buildroot}/var/lib/heat/.dummy rm -f %{buildroot}/usr/bin/cinder-keystone-setup rm -rf %{buildroot}/%{python_sitelib}/heat/tests @@ -197,13 +179,14 @@ Requires: python-neutronclient Requires: python-swiftclient Requires: python-migrate Requires: python-qpid -Requires: python-six +Requires: python-six >= 1.4.1 Requires: PyYAML Requires: m2crypto Requires: python-anyjson Requires: python-paramiko Requires: python-heatclient Requires: python-babel +Requires: MySQL-python Requires: python-paste-deploy1.5 Requires: python-routes1.12 @@ -218,7 +201,6 @@ Components common to all OpenStack Heat services %files common %doc LICENSE %{_bindir}/heat-manage -%{_bindir}/heat-db-setup %{_bindir}/heat-keystone-setup %{python_sitelib}/heat* %attr(-, root, heat) %{_datadir}/heat/heat-dist.conf @@ -233,8 +215,8 @@ Components common to all OpenStack Heat services %config(noreplace) %attr(-,root,heat) %{_sysconfdir}/heat/environment.d/* %config(noreplace) %attr(-,root,heat) %{_sysconfdir}/heat/templates/* %if 0%{?with_doc} -%{_mandir}/man1/heat-db-setup.1.gz %{_mandir}/man1/heat-keystone-setup.1.gz +%{_mandir}/man1/heat-manage.1.gz %endif %pre common @@ -406,6 +388,29 @@ fi %changelog +* Tue Feb 4 2014 Jeff Peeler - 2014.1-0.5.b2 +- fix heat-manage (rhbz 1060904) + +* Mon Jan 27 2014 Jeff Peeler - 2014.1-0.4.b2 +- update to icehouse-2 + +* Mon Jan 06 2014 Pádraig Brady - 2014.1-0.4.b1 +- Avoid [keystone_authtoken] config corruption in heat.conf + +* Mon Jan 06 2014 Jeff Peeler 2014-1.0.4.b1 +- added MySQL-python requires +- removed heat-db-setup (rhbz 1046326) + +* Mon Jan 06 2014 Pádraig Brady - 2014.1-0.3.b1 +- Set python-six min version to ensure updated + +* Fri Jan 03 2014 Pádraig Brady 2014-1.0.2.b1 +- Fix heat-manage to work with parallel installed packages + +* Mon Dec 09 2013 Jeff Peeler 2014-1.0.1.b1 +- update to icehouse-1 +- add python-heatclient to BuildRequires + * Thu Oct 17 2013 Jeff Peeler 2013.2-1 - update to havana final