Hello community, here is the log from the commit of package python-heatclient for openSUSE:Factory checked in at 2013-07-18 17:34:04 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-heatclient (Old) and /work/SRC/openSUSE:Factory/.python-heatclient.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-heatclient" Changes: -------- --- /work/SRC/openSUSE:Factory/python-heatclient/python-heatclient.changes 2013-07-10 17:31:53.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.python-heatclient.new/python-heatclient.changes 2013-07-18 18:08:31.000000000 +0200 @@ -0,0 +1,33 @@ +-------------------------------------------------------------------- +Wed Jul 17 10:19:32 UTC 2013 - [email protected] + +- Update to version 0.2.3.2.ga49cf4c: + + Make the parameter checking consistent. + + Only set X-Auth-User, X-Auth-Key on stack create/update. + + Display yaml format for stack deployed via hot template + + Cleanup in preperation for release. + +------------------------------------------------------------------- +Mon Jul 15 07:23:08 UTC 2013 - [email protected] + +- Update to version 0.2.2.37.gff2033a: + + Raise requirements to be in sync with OpenStack/Requirements + + Rename README.md to README.rst + +------------------------------------------------------------------- +Sun Jul 14 16:09:38 UTC 2013 - [email protected] + +- move heat client to main package + +------------------------------------------------------------------- +Thu Jul 11 23:48:23 UTC 2013 - [email protected] + +- Update to version 0.2.2.34.ga4208dc: + + Fix "heat validate" (add needed environment option) + +------------------------------------------------------------------- +Thu Jul 11 08:23:29 UTC 2013 - [email protected] + +- Update to version 0.2.2.32.gcb5b027: + + Update upper bound of keystoneclient version. + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-heatclient.spec ++++++ --- /var/tmp/diff_new_pack.j4BMUa/_old 2013-07-18 18:08:32.000000000 +0200 +++ /var/tmp/diff_new_pack.j4BMUa/_new 2013-07-18 18:08:32.000000000 +0200 @@ -19,7 +19,7 @@ %define component heatclient Name: python-%{component} -Version: 0.2.2.31.g9cba3da +Version: 0.2.3.2.ga49cf4c Release: 0 Summary: Openstack Orchestration (Heat) API Client License: Apache-2.0 @@ -85,7 +85,7 @@ This package contains testsuite files for %{name}. %prep -%setup -q -n python-heatclient-0.2.2.31.g9cba3da +%setup -q -n python-heatclient-0.2.3.2.ga49cf4c %openstack_cleanup_prep echo %{version} > heatclient/versioninfo @@ -102,7 +102,8 @@ %files %defattr(-,root,root,-) -%doc LICENSE README.md +%doc LICENSE README.rst +%{_bindir}/heat %{python_sitelib}/%{component}/ %{python_sitelib}/python_%{component}-*.egg-info @@ -112,7 +113,6 @@ %files test %defattr(-,root,root,-) -%{_bindir}/heat %{_localstatedir}/lib/%{name}-test/ %changelog ++++++ python-heatclient-master.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-0.2.2.31.g9cba3da/.gitignore new/python-heatclient-0.2.3.2.ga49cf4c/.gitignore --- old/python-heatclient-0.2.2.31.g9cba3da/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/python-heatclient-0.2.3.2.ga49cf4c/.gitignore 2013-07-17 01:45:28.000000000 +0200 @@ -0,0 +1,20 @@ +.coverage +.venv +*,cover +cover +*.pyc +.idea +*.swp +*~ +AUTHORS +build +dist +ChangeLog +run_tests.err.log +.tox +doc/source/api +*.egg +heatclient/versioninfo +python_heatclient.egg-info +*.log +.testrepository diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-0.2.2.31.g9cba3da/.gitreview new/python-heatclient-0.2.3.2.ga49cf4c/.gitreview --- old/python-heatclient-0.2.2.31.g9cba3da/.gitreview 1970-01-01 01:00:00.000000000 +0100 +++ new/python-heatclient-0.2.3.2.ga49cf4c/.gitreview 2013-07-17 01:45:28.000000000 +0200 @@ -0,0 +1,4 @@ +[gerrit] +host=review.openstack.org +port=29418 +project=openstack/python-heatclient.git diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-0.2.2.31.g9cba3da/AUTHORS new/python-heatclient-0.2.3.2.ga49cf4c/AUTHORS --- old/python-heatclient-0.2.2.31.g9cba3da/AUTHORS 2013-07-04 00:46:30.000000000 +0200 +++ new/python-heatclient-0.2.3.2.ga49cf4c/AUTHORS 2013-07-17 01:46:10.000000000 +0200 @@ -4,6 +4,8 @@ Dirk Mueller <[email protected]> Ian Main <[email protected]> Jeremy Stanley <[email protected]> +JUN JIE NAN <[email protected]> +Lin Hua Cheng <[email protected]> Monty Taylor <[email protected]> Simon Pasquier <[email protected]> Steve Baker <[email protected]> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-0.2.2.31.g9cba3da/ChangeLog new/python-heatclient-0.2.3.2.ga49cf4c/ChangeLog --- old/python-heatclient-0.2.2.31.g9cba3da/ChangeLog 2013-07-04 00:46:30.000000000 +0200 +++ new/python-heatclient-0.2.3.2.ga49cf4c/ChangeLog 2013-07-17 01:46:10.000000000 +0200 @@ -1,3 +1,124 @@ +commit a49cf4c148bfcb4cf878afc13325f2ffcf219992 +Merge: e147586 3f1b15c +Author: Jenkins <[email protected]> +Date: Tue Jul 16 23:42:39 2013 +0000 + + Merge "Cleanup in preperation for release." + +commit 3f1b15cdce172e3d66720b4503eaae0d11a563f6 +Author: Steve Baker <[email protected]> +Date: Wed Jul 17 10:42:28 2013 +1200 + + Cleanup in preperation for release. + + Change-Id: Iaeb926b929d4f8210ebbfa310134b1fb50dce276 + +commit e14758686f71932c5fe5c884bdf7344a1f339d0a +Author: JUN JIE NAN <[email protected]> +Date: Tue Jul 16 13:45:20 2013 +0800 + + Display yaml format for stack deployed via hot template + + Determine hot template and display yaml format for it, display json + format for others. + + Change-Id: Ie8d72c222a992ee0048897d040e8bc88fcf51760 + Fixes: bug #1201482 + +commit b417688d210b5efa22a97e8694c1e48c25f076e0 +Merge: 710f751 4259289 +Author: Jenkins <[email protected]> +Date: Tue Jul 16 03:22:00 2013 +0000 + + Merge "Only set X-Auth-User, X-Auth-Key on stack create/update." + +commit 710f7512bbb9074cc31219f8d02153d7e747476d +Author: Angus Salkeld <[email protected]> +Date: Tue Jul 16 12:24:35 2013 +1000 + + Make the parameter checking consistent. + + Make format_parameters() raise CommandError with + the same message. Rather than raise MalformedRequestBody + and then catch that and raise CommandError. This just + simplifies things. + + Change-Id: Ic05af32dd916e953e6b162daccc4525cb4734a46 + +commit ff2033a8c1e0b7cac722890424d3d8ac32952415 +Merge: 011fff3 43b6b0c +Author: Jenkins <[email protected]> +Date: Sun Jul 14 22:13:07 2013 +0000 + + Merge "Rename README.md to README.rst" + +commit 43b6b0cdc4efd54f122d91f654aced914686e34b +Author: Dirk Mueller <[email protected]> +Date: Sun Jul 14 18:27:12 2013 +0200 + + Rename README.md to README.rst + + The content looks more like restructured text to me, + and it seems to be more common amongst OpenStack projects. + + Change-Id: Iba8c21985c055f1712069a6e70d345bb920381bf + +commit 011fff3416eaeff7e573668e80cf48ce2224b080 +Author: Dirk Mueller <[email protected]> +Date: Sun Jul 14 18:13:33 2013 +0200 + + Raise requirements to be in sync with OpenStack/Requirements + + Mainly due to the testing deps being outdated. Also + fixes client capping. + + Fixes LP Bug #1200214 + + Change-Id: I39c18144bc19189513fc4c1f9712b8938bd719cf + +commit a4208dc54d9e23f1073e36fc906ae6a8c4603bbd +Merge: cb5b027 2198a76 +Author: Jenkins <[email protected]> +Date: Thu Jul 11 11:03:34 2013 +0000 + + Merge "Fix "heat validate" (add needed environment option)" + +commit cb5b027d762aae4aebf996697d296b217bf7b332 +Author: Lin Hua Cheng <[email protected]> +Date: Wed Jul 10 14:35:29 2013 -0700 + + Update upper bound of keystoneclient version. + + This is the intermediate step so that we can update the the lower + bound of keystoneclient in openstack-requirements. + + Change-Id: I1b73bfaafdf404634fc321b4e536f65b6dd65a3a + +commit 2198a76839b68e4fde9c8cae64e10dd1519ecc61 +Author: Angus Salkeld <[email protected]> +Date: Mon Jul 8 14:58:14 2013 +1000 + + Fix "heat validate" (add needed environment option) + + since it calls template-validate it needs that same options. + + Change-Id: Ic024707240af59b862146d4f478e495a93b5cd7a + +commit 42592898c3b95f0f0b264809d485cb127c078fce +Author: Steve Baker <[email protected]> +Date: Fri Jul 5 10:10:20 2013 +1200 + + Only set X-Auth-User, X-Auth-Key on stack create/update. + + All heat operations can be performed with only a token. + + User credentials are required for stack create/update as they are + stored for later stack operations. + + This change prevents credentials unnecessarily being sent over the wire. + + Change-Id: I5ad18067c5db8ada9994d131e98f27af70a7ca06 + commit 9cba3dab020712e3d78d8e1e062cbd17ab43f893 Merge: 8dd6074 5320a3a Author: Jenkins <[email protected]> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-0.2.2.31.g9cba3da/MANIFEST.in new/python-heatclient-0.2.3.2.ga49cf4c/MANIFEST.in --- old/python-heatclient-0.2.2.31.g9cba3da/MANIFEST.in 2013-07-04 00:45:55.000000000 +0200 +++ new/python-heatclient-0.2.3.2.ga49cf4c/MANIFEST.in 2013-07-17 01:45:28.000000000 +0200 @@ -1,11 +1,8 @@ include AUTHORS include LICENSE -include README.md +include README.rst include ChangeLog include tox.ini include .testr.conf recursive-include doc * -recursive-include tests * recursive-include tools * -exclude .gitignore -exclude .gitreview diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-0.2.2.31.g9cba3da/PKG-INFO new/python-heatclient-0.2.3.2.ga49cf4c/PKG-INFO --- old/python-heatclient-0.2.2.31.g9cba3da/PKG-INFO 2013-07-04 00:46:32.000000000 +0200 +++ new/python-heatclient-0.2.3.2.ga49cf4c/PKG-INFO 2013-07-17 01:46:11.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: python-heatclient -Version: 0.2.2.31.g9cba3da +Version: 0.2.3.2.ga49cf4c Summary: OpenStack Orchestration API Client Library Home-page: http://www.openstack.org/ Author: OpenStack diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-0.2.2.31.g9cba3da/README.md new/python-heatclient-0.2.3.2.ga49cf4c/README.md --- old/python-heatclient-0.2.2.31.g9cba3da/README.md 2013-07-04 00:45:55.000000000 +0200 +++ new/python-heatclient-0.2.3.2.ga49cf4c/README.md 1970-01-01 01:00:00.000000000 +0100 @@ -1,12 +0,0 @@ -Python bindings to the Heat orchestration API -============================================= - -This is a client library for Heat built on the Heat orchestration API. It -provides a Python API (the ``heatclient`` module) and a command-line tool -(``heat``). - -Development takes place via the usual OpenStack processes as outlined in the -`OpenStack wiki <http://wiki.openstack.org/HowToContribute>`_. The master -repository is on `GitHub <http://github.com/heat-api/python-heatclient>`_. - -See release notes and more at `<http://docs.openstack.org/developer/python-heatclient/>`_. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-0.2.2.31.g9cba3da/README.rst new/python-heatclient-0.2.3.2.ga49cf4c/README.rst --- old/python-heatclient-0.2.2.31.g9cba3da/README.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/python-heatclient-0.2.3.2.ga49cf4c/README.rst 2013-07-17 01:45:28.000000000 +0200 @@ -0,0 +1,12 @@ +Python bindings to the Heat orchestration API +============================================= + +This is a client library for Heat built on the Heat orchestration API. It +provides a Python API (the ``heatclient`` module) and a command-line tool +(``heat``). + +Development takes place via the usual OpenStack processes as outlined in the +`OpenStack wiki <http://wiki.openstack.org/HowToContribute>`_. The master +repository is on `GitHub <http://github.com/heat-api/python-heatclient>`_. + +See release notes and more at `<http://docs.openstack.org/developer/python-heatclient/>`_. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-0.2.2.31.g9cba3da/heatclient/common/http.py new/python-heatclient-0.2.3.2.ga49cf4c/heatclient/common/http.py --- old/python-heatclient-0.2.2.31.g9cba3da/heatclient/common/http.py 2013-07-04 00:45:55.000000000 +0200 +++ new/python-heatclient-0.2.3.2.ga49cf4c/heatclient/common/http.py 2013-07-17 01:45:28.000000000 +0200 @@ -133,10 +133,6 @@ kwargs['headers'].setdefault('X-Auth-Token', self.auth_token) if self.auth_url: kwargs['headers'].setdefault('X-Auth-Url', self.auth_url) - if self.username: - kwargs['headers'].setdefault('X-Auth-User', self.username) - if self.password: - kwargs['headers'].setdefault('X-Auth-Key', self.password) self.log_curl_request(method, url, kwargs) conn = self.get_connection() @@ -178,6 +174,12 @@ return resp, body_str + def credentials_headers(self): + return { + 'X-Auth-User': self.username, + 'X-Auth-Key': self.password + } + def json_request(self, method, url, **kwargs): kwargs.setdefault('headers', {}) kwargs['headers'].setdefault('Content-Type', 'application/json') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-0.2.2.31.g9cba3da/heatclient/common/utils.py new/python-heatclient-0.2.3.2.ga49cf4c/heatclient/common/utils.py --- old/python-heatclient-0.2.2.31.g9cba3da/heatclient/common/utils.py 2013-07-04 00:45:55.000000000 +0200 +++ new/python-heatclient-0.2.3.2.ga49cf4c/heatclient/common/utils.py 2013-07-17 01:45:28.000000000 +0200 @@ -145,7 +145,9 @@ try: (n, v) = p.split(('='), 1) except ValueError: - raise exc.MalformedRequestBody() + msg = '%s(%s). %s.' % ('Malformed parameter', p, + 'Use the key=value format') + raise exc.CommandError(msg) parameters[n] = v return parameters diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-0.2.2.31.g9cba3da/heatclient/exc.py new/python-heatclient-0.2.3.2.ga49cf4c/heatclient/exc.py --- old/python-heatclient-0.2.2.31.g9cba3da/heatclient/exc.py 2013-07-04 00:45:55.000000000 +0200 +++ new/python-heatclient-0.2.3.2.ga49cf4c/heatclient/exc.py 2013-07-17 01:45:28.000000000 +0200 @@ -39,11 +39,6 @@ code = 'N/A' -class MalformedRequestBody(BaseException): - """Malformed parameter in request.""" - pass - - class HTTPMultipleChoices(HTTPException): code = 300 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-0.2.2.31.g9cba3da/heatclient/shell.py new/python-heatclient-0.2.3.2.ga49cf4c/heatclient/shell.py --- old/python-heatclient-0.2.2.31.g9cba3da/heatclient/shell.py 2013-07-04 00:45:55.000000000 +0200 +++ new/python-heatclient-0.2.3.2.ga49cf4c/heatclient/shell.py 2013-07-17 01:45:28.000000000 +0200 @@ -169,8 +169,7 @@ parser.add_argument('-t', '--token-only', default=bool(False), action='store_true', - help='Only send a token for auth, do not send' - ' username and password as well.') + help='DEPRECATED! Has no effect') return parser @@ -303,15 +302,13 @@ 'ca_file': args.ca_file, 'cert_file': args.cert_file, 'key_file': args.key_file, - 'username': args.os_username + 'username': args.os_username, + 'password': args.os_password } if not endpoint: endpoint = self._get_endpoint(_ksclient, **kwargs) - if not args.token_only: - kwargs['password'] = args.os_password - client = heatclient.Client(api_version, endpoint, **kwargs) try: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-0.2.2.31.g9cba3da/heatclient/tests/test_shell.py new/python-heatclient-0.2.3.2.ga49cf4c/heatclient/tests/test_shell.py --- old/python-heatclient-0.2.2.31.g9cba3da/heatclient/tests/test_shell.py 2013-07-04 00:45:55.000000000 +0200 +++ new/python-heatclient-0.2.3.2.ga49cf4c/heatclient/tests/test_shell.py 2013-07-17 01:45:28.000000000 +0200 @@ -93,6 +93,53 @@ self.shell_error('list', self.err) +class ShellParamValidationTest(TestCase): + + scenarios = [ + ('create', dict( + command='create ts -P "a!b"', + err='Malformed parameter')), + ('stack-create', dict( + command='stack-create ts -P "ab"', + err='Malformed parameter')), + ('update', dict( + command='update ts -P "a~b"', + err='Malformed parameter')), + ('stack-update', dict( + command='stack-update ts -P "a-b"', + err='Malformed parameter')), + ('validate', dict( + command='validate -P "a=b;c"', + err='Malformed parameter')), + ('template-validate', dict( + command='template-validate -P "a$b"', + err='Malformed parameter')), + ] + + def setUp(self): + super(ShellParamValidationTest, self).setUp() + self.m = mox.Mox() + self.addCleanup(self.m.VerifyAll) + self.addCleanup(self.m.UnsetStubs) + + def test_bad_parameters(self): + self.m.StubOutWithMock(ksclient, 'Client') + self.m.StubOutWithMock(v1client.Client, 'json_request') + fakes.script_keystone_client() + + self.m.ReplayAll() + fake_env = { + 'OS_USERNAME': 'username', + 'OS_PASSWORD': 'password', + 'OS_TENANT_NAME': 'tenant_name', + 'OS_AUTH_URL': 'http://no.where', + } + self.set_fake_env(fake_env) + template_file = os.path.join(TEST_VAR_DIR, 'minimal.template') + cmd = '%s --template-file=%s ' % (self.command, template_file) + self.shell_error(cmd, self.err) + + class ShellValidationTest(TestCase): def setUp(self): @@ -257,6 +304,59 @@ for r in required: self.assertRegexpMatches(list_text, r) + def test_template_show_cfn(self): + fakes.script_keystone_client() + template_data = open(os.path.join(TEST_VAR_DIR, + 'minimal.template')).read() + resp = fakes.FakeHTTPResponse( + 200, + 'OK', + {'content-type': 'application/json'}, + template_data) + resp_dict = json.loads(template_data) + v1client.Client.json_request( + 'GET', '/stacks/teststack/template').AndReturn((resp, resp_dict)) + + self.m.ReplayAll() + + show_text = self.shell('template-show teststack') + required = [ + '{', + ' "AWSTemplateFormatVersion": "2010-09-09",', + ' "Outputs": {},', + ' "Resources": {},', + ' "Parameters": {}', + '}' + ] + for r in required: + self.assertRegexpMatches(show_text, r) + + def test_template_show_hot(self): + fakes.script_keystone_client() + resp_dict = {"heat_template_version": "2013-05-23", + "parameters": {}, + "resources": {}, + "outputs": {}} + resp = fakes.FakeHTTPResponse( + 200, + 'OK', + {'content-type': 'application/json'}, + json.dumps(resp_dict)) + v1client.Client.json_request( + 'GET', '/stacks/teststack/template').AndReturn((resp, resp_dict)) + + self.m.ReplayAll() + + show_text = self.shell('template-show teststack') + required = [ + "heat_template_version: '2013-05-23'", + "outputs: {}", + "parameters: {}", + "resources: {}" + ] + for r in required: + self.assertRegexpMatches(show_text, r) + def test_create(self): fakes.script_keystone_client() resp = fakes.FakeHTTPResponse( @@ -265,7 +365,9 @@ {'location': 'http://no.where/v1/tenant_id/stacks/teststack2/2'}, None) v1client.Client.json_request( - 'POST', '/stacks', body=mox.IgnoreArg()).AndReturn((resp, None)) + 'POST', '/stacks', body=mox.IgnoreArg(), + headers={'X-Auth-Key': 'password', 'X-Auth-User': 'username'} + ).AndReturn((resp, None)) fakes.script_heat_list() self.m.ReplayAll() @@ -297,7 +399,9 @@ {'location': 'http://no.where/v1/tenant_id/stacks/teststack2/2'}, None) v1client.Client.json_request( - 'POST', '/stacks', body=mox.IgnoreArg()).AndReturn((resp, None)) + 'POST', '/stacks', body=mox.IgnoreArg(), + headers={'X-Auth-Key': 'password', 'X-Auth-User': 'username'} + ).AndReturn((resp, None)) fakes.script_heat_list() self.m.ReplayAll() @@ -334,7 +438,9 @@ {'location': 'http://no.where/v1/tenant_id/stacks/teststack2/2'}, None) v1client.Client.json_request( - 'POST', '/stacks', body=mox.IgnoreArg()).AndReturn((resp, None)) + 'POST', '/stacks', body=mox.IgnoreArg(), + headers={'X-Auth-Key': 'password', 'X-Auth-User': 'username'} + ).AndReturn((resp, None)) fakes.script_heat_list() @@ -365,7 +471,9 @@ 'The request is accepted for processing.') v1client.Client.json_request( 'PUT', '/stacks/teststack2/2', - body=mox.IgnoreArg()).AndReturn((resp, None)) + body=mox.IgnoreArg(), + headers={'X-Auth-Key': 'password', 'X-Auth-User': 'username'} + ).AndReturn((resp, None)) fakes.script_heat_list() self.m.ReplayAll() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-0.2.2.31.g9cba3da/heatclient/tests/test_utils.py new/python-heatclient-0.2.3.2.ga49cf4c/heatclient/tests/test_utils.py --- old/python-heatclient-0.2.2.31.g9cba3da/heatclient/tests/test_utils.py 2013-07-04 00:45:55.000000000 +0200 +++ new/python-heatclient-0.2.3.2.ga49cf4c/heatclient/tests/test_utils.py 2013-07-17 01:45:28.000000000 +0200 @@ -47,7 +47,7 @@ def test_format_parameter_bad_parameter(self): params = 'KeyName=heat_key;UpstreamDNS8.8.8.8' - self.assertRaises(exc.MalformedRequestBody, + self.assertRaises(exc.CommandError, utils.format_parameters, params) def test_link_formatter(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-0.2.2.31.g9cba3da/heatclient/v1/shell.py new/python-heatclient-0.2.3.2.ga49cf4c/heatclient/v1/shell.py --- old/python-heatclient-0.2.2.31.g9cba3da/heatclient/v1/shell.py 2013-07-04 00:45:55.000000000 +0200 +++ new/python-heatclient-0.2.3.2.ga49cf4c/heatclient/v1/shell.py 2013-07-17 01:45:28.000000000 +0200 @@ -130,16 +130,10 @@ help='Name of the stack to create.') def do_stack_create(hc, args): '''Create the stack.''' - try: - parameters = utils.format_parameters(args.parameters) - except exc.MalformedRequestBody: - msg = "Malformed parameters. Parameters should have key=value format" - raise exc.CommandError(msg=msg) - fields = {'stack_name': args.name, 'timeout_mins': args.create_timeout, 'disable_rollback': not(args.enable_rollback), - 'parameters': parameters} + 'parameters': utils.format_parameters(args.parameters)} _set_template_fields(hc, args, fields) _process_environment_and_files(hc, args, fields) @@ -288,13 +282,18 @@ except exc.HTTPNotFound: raise exc.CommandError('Stack not found: %s' % args.id) else: - print json.dumps(template, indent=2) + if 'heat_template_version' in template: + print yaml.safe_dump(template, indent=2) + else: + print json.dumps(template, indent=2) @utils.arg('-u', '--template-url', metavar='<URL>', help='URL of template.') @utils.arg('-f', '--template-file', metavar='<FILE>', help='Path to the template.') [email protected]('-e', '--environment-file', metavar='<FILE>', + help='Path to the environment.') @utils.arg('-o', '--template-object', metavar='<URL>', help='URL to retrieve template object (e.g from swift)') @utils.arg('-P', '--parameters', metavar='<KEY1=VALUE1;KEY2=VALUE2...>', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-0.2.2.31.g9cba3da/heatclient/v1/stacks.py new/python-heatclient-0.2.3.2.ga49cf4c/heatclient/v1/stacks.py --- old/python-heatclient-0.2.2.31.g9cba3da/heatclient/v1/stacks.py 2013-07-04 00:45:55.000000000 +0200 +++ new/python-heatclient-0.2.3.2.ga49cf4c/heatclient/v1/stacks.py 2013-07-17 01:45:28.000000000 +0200 @@ -82,13 +82,16 @@ def create(self, **kwargs): """Create a stack.""" - resp, body = self.api.json_request('POST', '/stacks', body=kwargs) + headers = self.api.credentials_headers() + resp, body = self.api.json_request('POST', '/stacks', + body=kwargs, headers=headers) def update(self, **kwargs): """Update a stack.""" stack_id = kwargs.pop('stack_id') + headers = self.api.credentials_headers() resp, body = self.api.json_request('PUT', '/stacks/%s' % stack_id, - body=kwargs) + body=kwargs, headers=headers) def delete(self, stack_id): """Delete a stack.""" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-0.2.2.31.g9cba3da/python_heatclient.egg-info/PKG-INFO new/python-heatclient-0.2.3.2.ga49cf4c/python_heatclient.egg-info/PKG-INFO --- old/python-heatclient-0.2.2.31.g9cba3da/python_heatclient.egg-info/PKG-INFO 2013-07-04 00:46:30.000000000 +0200 +++ new/python-heatclient-0.2.3.2.ga49cf4c/python_heatclient.egg-info/PKG-INFO 2013-07-17 01:46:10.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: python-heatclient -Version: 0.2.2.31.g9cba3da +Version: 0.2.3.2.ga49cf4c Summary: OpenStack Orchestration API Client Library Home-page: http://www.openstack.org/ Author: OpenStack diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-0.2.2.31.g9cba3da/python_heatclient.egg-info/SOURCES.txt new/python-heatclient-0.2.3.2.ga49cf4c/python_heatclient.egg-info/SOURCES.txt --- old/python-heatclient-0.2.2.31.g9cba3da/python_heatclient.egg-info/SOURCES.txt 2013-07-04 00:46:32.000000000 +0200 +++ new/python-heatclient-0.2.3.2.ga49cf4c/python_heatclient.egg-info/SOURCES.txt 2013-07-17 01:46:11.000000000 +0200 @@ -1,10 +1,12 @@ +.gitignore +.gitreview .testr.conf AUTHORS CONTRIBUTING.rst ChangeLog LICENSE MANIFEST.in -README.md +README.rst openstack-common.conf requirements.txt run_tests.sh diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-0.2.2.31.g9cba3da/python_heatclient.egg-info/requires.txt new/python-heatclient-0.2.3.2.ga49cf4c/python_heatclient.egg-info/requires.txt --- old/python-heatclient-0.2.2.31.g9cba3da/python_heatclient.egg-info/requires.txt 2013-07-04 00:46:30.000000000 +0200 +++ new/python-heatclient-0.2.3.2.ga49cf4c/python_heatclient.egg-info/requires.txt 2013-07-17 01:46:10.000000000 +0200 @@ -1,7 +1,7 @@ d2to1>=0.2.10,<0.3 -pbr>=0.5.10,<0.6 +pbr>=0.5.16,<0.6 httplib2 iso8601>=0.1.4 prettytable>=0.6,<0.8 -python-keystoneclient>=0.2,<0.3 +python-keystoneclient>=0.2.1 pyyaml>=3.1.0 \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-0.2.2.31.g9cba3da/requirements.txt new/python-heatclient-0.2.3.2.ga49cf4c/requirements.txt --- old/python-heatclient-0.2.2.31.g9cba3da/requirements.txt 2013-07-04 00:45:55.000000000 +0200 +++ new/python-heatclient-0.2.3.2.ga49cf4c/requirements.txt 2013-07-17 01:45:28.000000000 +0200 @@ -1,9 +1,8 @@ d2to1>=0.2.10,<0.3 -pbr>=0.5.10,<0.6 - +pbr>=0.5.16,<0.6 argparse httplib2 iso8601>=0.1.4 prettytable>=0.6,<0.8 -python-keystoneclient>=0.2,<0.3 +python-keystoneclient>=0.2.1 pyyaml>=3.1.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-0.2.2.31.g9cba3da/setup.cfg new/python-heatclient-0.2.3.2.ga49cf4c/setup.cfg --- old/python-heatclient-0.2.2.31.g9cba3da/setup.cfg 2013-07-04 00:46:32.000000000 +0200 +++ new/python-heatclient-0.2.3.2.ga49cf4c/setup.cfg 2013-07-17 01:46:11.000000000 +0200 @@ -2,7 +2,7 @@ name = python-heatclient summary = OpenStack Orchestration API Client Library description-file = - README.md + README.rst author = OpenStack author-email = [email protected] home-page = http://www.openstack.org/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-0.2.2.31.g9cba3da/test-requirements.txt new/python-heatclient-0.2.3.2.ga49cf4c/test-requirements.txt --- old/python-heatclient-0.2.2.31.g9cba3da/test-requirements.txt 2013-07-04 00:45:55.000000000 +0200 +++ new/python-heatclient-0.2.3.2.ga49cf4c/test-requirements.txt 2013-07-17 01:45:28.000000000 +0200 @@ -2,13 +2,12 @@ pep8==1.4.5 pyflakes==0.7.2 flake8==2.0 -hacking>=0.5.3,<0.6 - +hacking>=0.5.6,<0.6 coverage>=3.6 discover fixtures>=0.3.12 -mox +mox>=0.5.3 sphinx>=1.1.2 testscenarios<0.5 -testrepository>=0.0.13 -testtools>=0.9.29 +testrepository>=0.0.15 +testtools>=0.9.32 -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
