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]

Reply via email to