Hello community,

here is the log from the commit of package python-ceilometerclient for 
openSUSE:Factory checked in at 2013-08-07 20:51:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-ceilometerclient (Old)
 and      /work/SRC/openSUSE:Factory/.python-ceilometerclient.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-ceilometerclient"

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-ceilometerclient/python-ceilometerclient.changes
  2013-07-10 17:30:30.000000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-ceilometerclient.new/python-ceilometerclient.changes
     2013-08-07 20:51:55.000000000 +0200
@@ -1,0 +2,29 @@
+Tue Jul 16 08:54:50 UTC 2013 - [email protected]
+
+- Update to version 1.0.1.9:
+  + Rename README.md to README.rst
+
+-------------------------------------------------------------------
+Sun Jul 14 00:14:13 UTC 2013 - [email protected]
+
+- Update to version 1.0.1.8:
+  + Relax OpenStack upper capping of client versions
+
+-------------------------------------------------------------------
+Fri Jul 12 07:18:49 UTC 2013 - [email protected]
+
+- Update to version 1.0.1.7:
+  + Allow Keystoneclient 0.3.x
+  + Add matching_metadata to the allowed attributes
+
+-------------------------------------------------------------------
+Fri Jul 12 07:17:56 UTC 2013 - [email protected]
+
+- remove requirements-update.diff 
+
+-------------------------------------------------------------------
+Wed Jul 10 07:15:17 UTC 2013 - [email protected]
+
+- add requirements-update.diff 
+
+-------------------------------------------------------------------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-ceilometerclient.spec ++++++
--- /var/tmp/diff_new_pack.SuMjzn/_old  2013-08-07 20:51:56.000000000 +0200
+++ /var/tmp/diff_new_pack.SuMjzn/_new  2013-08-07 20:51:56.000000000 +0200
@@ -20,7 +20,7 @@
 %define component ceilometerclient
 
 Name:           python-%{component}
-Version:        1.0.1.4
+Version:        1.0.2.7
 Release:        0
 Url:            https://github.com/openstack/python-ceilometerclient
 Summary:        OpenStack Metering (Ceilometer) API Client
@@ -71,7 +71,7 @@
 This package contains testsuite files for %{name}.
 
 %prep
-%setup -q -n python-ceilometerclient-1.0.1.4.g075148b
+%setup -q -n python-ceilometerclient-1.0.2.7.g091937b
 %openstack_cleanup_prep
 echo %{version} > ceilometerclient/versioninfo
 
@@ -86,7 +86,7 @@
 
 %files
 %defattr(-,root,root,-)
-%doc LICENSE README.md
+%doc LICENSE README.rst
 %{_bindir}/ceilometer
 %{python_sitelib}/%{component}/
 %{python_sitelib}/python_%{component}-*.egg-info

++++++ python-ceilometerclient-master.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-ceilometerclient-1.0.1.4.g075148b/.gitignore 
new/python-ceilometerclient-1.0.2.7.g091937b/.gitignore
--- old/python-ceilometerclient-1.0.1.4.g075148b/.gitignore     2013-07-08 
10:37:08.000000000 +0200
+++ new/python-ceilometerclient-1.0.2.7.g091937b/.gitignore     1970-01-01 
01:00:00.000000000 +0100
@@ -1,21 +0,0 @@
-.coverage
-.venv
-.testrepository
-subunit.log
-*,cover
-cover
-*.pyc
-.idea
-*.swp
-*~
-AUTHORS
-build
-dist
-ChangeLog
-run_tests.err.log
-.tox
-doc/source/api
-*.egg
-ceilometerclient/versioninfo
-python_ceilometerclient.egg-info
-*.log
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-ceilometerclient-1.0.1.4.g075148b/.gitreview 
new/python-ceilometerclient-1.0.2.7.g091937b/.gitreview
--- old/python-ceilometerclient-1.0.1.4.g075148b/.gitreview     2013-07-08 
10:37:08.000000000 +0200
+++ new/python-ceilometerclient-1.0.2.7.g091937b/.gitreview     1970-01-01 
01:00:00.000000000 +0100
@@ -1,4 +0,0 @@
-[gerrit]
-host=review.openstack.org
-port=29418
-project=openstack/python-ceilometerclient.git
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-ceilometerclient-1.0.1.4.g075148b/AUTHORS 
new/python-ceilometerclient-1.0.2.7.g091937b/AUTHORS
--- old/python-ceilometerclient-1.0.1.4.g075148b/AUTHORS        2013-07-08 
10:37:44.000000000 +0200
+++ new/python-ceilometerclient-1.0.2.7.g091937b/AUTHORS        2013-08-05 
15:30:18.000000000 +0200
@@ -6,9 +6,11 @@
 Eoghan Glynn <[email protected]>
 Eric Pendergrass <[email protected]>
 Gordon Chung <[email protected]>
+Guangyu Suo <[email protected]>
 James E. Blair <[email protected]>
 Jason Zhang <[email protected]>
 Julien Danjou <[email protected]>
 Lianhao Lu <[email protected]>
+Mehdi Abaakouk <[email protected]>
 Monty Taylor <[email protected]>
-yolanda.robla <[email protected]>
\ No newline at end of file
+yolanda.robla <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-ceilometerclient-1.0.1.4.g075148b/ChangeLog 
new/python-ceilometerclient-1.0.2.7.g091937b/ChangeLog
--- old/python-ceilometerclient-1.0.1.4.g075148b/ChangeLog      2013-07-08 
10:37:44.000000000 +0200
+++ new/python-ceilometerclient-1.0.2.7.g091937b/ChangeLog      2013-08-05 
15:30:18.000000000 +0200
@@ -1,3 +1,134 @@
+commit 091937b9a25aac666dba45ca5c8cc725af765a22
+Merge: 423fa26 e4348aa
+Author: Jenkins <[email protected]>
+Date:   Mon Aug 5 13:29:07 2013 +0000
+
+    Merge "Handle case where os_auth_token is set to ''"
+
+commit 423fa26342ebfe400b2decd81e7f7dfc5053d718
+Merge: 194f145 dd4b654
+Author: Jenkins <[email protected]>
+Date:   Mon Aug 5 13:26:19 2013 +0000
+
+    Merge "Fix typo in help text."
+
+commit 194f145b3a823a33b0d0bcaea4853d7829c07ed5
+Merge: 1772adf 3a780a6
+Author: Jenkins <[email protected]>
+Date:   Mon Aug 5 13:22:17 2013 +0000
+
+    Merge "Enhance ceilometer statistics command with --period"
+
+commit e4348aa3d28f26b354326e056dc26c293963ea7f
+Author: Eoghan Glynn <[email protected]>
+Date:   Fri Aug 2 17:07:28 2013 +0100
+
+    Handle case where os_auth_token is set to ''
+    
+    Properly handle case (as in CLI) where os_auth_token is
+    set, but to an empty string.
+    
+    Change-Id: I7e96bf22e2a91e0e3ec783b406fd05e4138860c8
+
+commit 1772adf0cce19de9ef151c24c482122f9d18507e
+Author: Eoghan Glynn <[email protected]>
+Date:   Thu Aug 1 17:07:09 2013 +0000
+
+    Ensure keystoneclient.auth_token is re-evaluated
+    
+    Fixes bug 1207441
+    
+    Force the re-evaluation of the keystoneclient.auth_token property
+    so as to avoid missing out on the in-built refresh logic when expiry
+    is imminent.
+    
+    Change-Id: I8319e9e9a71e33e089fbe2fbc812d2b6c15da927
+
+commit dd4b654e5f6d6d739d69226f1898b1d31db07b37
+Author: Eoghan Glynn <[email protected]>
+Date:   Thu Aug 1 17:41:38 2013 +0000
+
+    Fix typo in help text.
+    
+    Minor misspelling in alarm-{create|update} help text.
+    
+    Change-Id: I1ddbaec42dda175a17d32229029c08d46e64151f
+
+commit 3a780a6159e53a25e722ec083ab45d915279958a
+Author: Guangyu Suo <[email protected]>
+Date:   Fri Jul 19 10:34:17 2013 +0800
+
+    Enhance ceilometer statistics command with --period
+    
+    Currently, if don't specify query parameter in ceilometer statistics
+    command, ceilometer statistics with --period will not work. This change
+    is trying to fix this issue.
+    
+    Change-Id: I8723bad11d5c452c2834e33df9bb01ebdc6ce9ce
+    Fixs: bug #1202658
+
+commit 04cc271da208069e921da252554e839de46442ed
+Author: Mehdi Abaakouk <[email protected]>
+Date:   Tue Jul 16 18:43:35 2013 +0200
+
+    Allow to set matching_metadata with the cli
+    
+    This change allows to set the matching_metadata of a alarm like this:
+    
+     ceilometer alarm-create --matching-metadata 'key=value' \
+          --matching-metadata 'key2=value2' --name 'alarm' ...
+    
+    Fixes bug #1201877
+    
+    Change-Id: I22bf261b0a9580a06ae107ed45d082171f21fcc4
+
+commit 3010ebcc75ea271c46351ef68d00482f0fbacb85
+Author: Angus Salkeld <[email protected]>
+Date:   Thu Jul 18 09:41:16 2013 +1000
+
+    Add support for creating samples
+    
+    Change-Id: Ib33a5fd162d760efa23a2fc496c1d11d79484491
+
+commit efd67de3fae0be1893c5dbf60e3a29d40e5bdb0d
+Author: Dirk Mueller <[email protected]>
+Date:   Sun Jul 14 21:12:41 2013 +0200
+
+    Rename README.md to README.rst
+    
+    It actually is a reStructuredText file and README.rst
+    seems to be more common accross all OpenStack projects.
+    
+    Change-Id: I2f5ef97315ec906fc7f0089536b038b977f8f68c
+
+commit 3498d5146dbc5b6021c72b0a802af266b213f646
+Author: Gordon Chung <[email protected]>
+Date:   Fri Jul 12 14:14:03 2013 -0400
+
+    Relax OpenStack upper capping of client versions
+    
+    uncap upper keystoneclient version
+    
+    Change-Id: Id1017f6073be8b7b95ca7ff0c68e09f61b26bb82
+    Fixes: bug#1200214
+
+commit 5aff59d7f4813daf6e076cb955811a4443c50421
+Merge: 12ffe2f 2687315
+Author: Jenkins <[email protected]>
+Date:   Thu Jul 11 18:03:58 2013 +0000
+
+    Merge "Add matching_metadata to the allowed attributes"
+
+commit 12ffe2f211cbcb71ad66732f25d13a5e8bfc54f6
+Author: Dirk Mueller <[email protected]>
+Date:   Wed Jul 10 08:54:59 2013 +0200
+
+    Allow Keystoneclient 0.3.x
+    
+    Sync requirements with openstack/requirements file.
+    
+    Change-Id: I344aa47f248071cea8b6cbe31450528cd343bca2
+
 commit 075148bea58a96abd47e428af45035d9df2af801
 Author: Monty Taylor <[email protected]>
 Date:   Fri Jul 5 22:34:39 2013 -0400
@@ -6,6 +137,14 @@
     
     Change-Id: I74ab14534d80b33f5b9eb1b2200facf82b6d9504
 
+commit 2687315dc8c7dc8936f26c974f731cb3333e45f7
+Author: Angus Salkeld <[email protected]>
+Date:   Fri Jul 5 12:18:24 2013 +1000
+
+    Add matching_metadata to the allowed attributes
+    
+    Change-Id: Icbd68061a43d18dd27baa7ff68f9381a160cd545
+
 commit f1aaf95f0605eeed422a5579710ea93737b1607b
 Merge: 6f81aa1 f09dfd0
 Author: Jenkins <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-ceilometerclient-1.0.1.4.g075148b/PKG-INFO 
new/python-ceilometerclient-1.0.2.7.g091937b/PKG-INFO
--- old/python-ceilometerclient-1.0.1.4.g075148b/PKG-INFO       2013-07-08 
10:37:46.000000000 +0200
+++ new/python-ceilometerclient-1.0.2.7.g091937b/PKG-INFO       2013-08-05 
15:30:18.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: python-ceilometerclient
-Version: 1.0.1.4.g075148b
+Version: 1.0.2.7.g091937b
 Summary: OpenStack Metering API Client Library
 Home-page: http://www.openstack.org/
 Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-ceilometerclient-1.0.1.4.g075148b/README.md 
new/python-ceilometerclient-1.0.2.7.g091937b/README.md
--- old/python-ceilometerclient-1.0.1.4.g075148b/README.md      2013-07-08 
10:37:08.000000000 +0200
+++ new/python-ceilometerclient-1.0.2.7.g091937b/README.md      1970-01-01 
01:00:00.000000000 +0100
@@ -1,12 +0,0 @@
-Python bindings to the Ceilometer API
-=====================================
-
-This is a client library for Ceilometer built on the Ceilometer API. It
-provides a Python API (the ``ceilometerclient`` module) and a command-line tool
-(``ceilometer``).
-
-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/openstack/python-ceilometerclient>`_.
-
-See release notes and more at 
`<http://docs.openstack.org/developer/python-ceilometerclient/>`_.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-ceilometerclient-1.0.1.4.g075148b/README.rst 
new/python-ceilometerclient-1.0.2.7.g091937b/README.rst
--- old/python-ceilometerclient-1.0.1.4.g075148b/README.rst     1970-01-01 
01:00:00.000000000 +0100
+++ new/python-ceilometerclient-1.0.2.7.g091937b/README.rst     2013-08-05 
15:29:35.000000000 +0200
@@ -0,0 +1,12 @@
+Python bindings to the Ceilometer API
+=====================================
+
+This is a client library for Ceilometer built on the Ceilometer API. It
+provides a Python API (the ``ceilometerclient`` module) and a command-line tool
+(``ceilometer``).
+
+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/openstack/python-ceilometerclient>`_.
+
+See release notes and more at 
`<http://docs.openstack.org/developer/python-ceilometerclient/>`_.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/client.py 
new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/client.py
--- old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/client.py     
2013-07-08 10:37:08.000000000 +0200
+++ new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/client.py     
2013-08-05 15:29:35.000000000 +0200
@@ -73,7 +73,9 @@
             'insecure': kwargs.get('insecure'),
         }
         _ksclient = _get_ksclient(**ks_kwargs)
-        token = kwargs.get('os_auth_token') or _ksclient.auth_token
+        token = ((lambda: kwargs.get('os_auth_token'))
+                 if kwargs.get('os_auth_token')
+                 else (lambda: _ksclient.auth_token))
 
         endpoint = kwargs.get('ceilometer_url') or \
             _get_endpoint(_ksclient, **ks_kwargs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/common/http.py 
new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/common/http.py
--- 
old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/common/http.py    
    2013-07-08 10:37:08.000000000 +0200
+++ 
new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/common/http.py    
    2013-08-05 15:29:35.000000000 +0200
@@ -133,8 +133,9 @@
         # Copy the kwargs so we can reuse the original in case of redirects
         kwargs['headers'] = copy.deepcopy(kwargs.get('headers', {}))
         kwargs['headers'].setdefault('User-Agent', USER_AGENT)
-        if self.auth_token:
-            kwargs['headers'].setdefault('X-Auth-Token', self.auth_token)
+        auth_token = self.auth_token()
+        if auth_token:
+            kwargs['headers'].setdefault('X-Auth-Token', auth_token)
 
         self.log_curl_request(method, url, kwargs)
         conn = self.get_connection()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/common/utils.py 
new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/common/utils.py
--- 
old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/common/utils.py   
    2013-07-08 10:37:08.000000000 +0200
+++ 
new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/common/utils.py   
    2013-08-05 15:29:35.000000000 +0200
@@ -127,6 +127,19 @@
     return importutils.import_module(module)
 
 
+def args_array_to_dict(kwargs, key_to_convert):
+    values_to_convert = kwargs.get(key_to_convert)
+    if values_to_convert:
+        try:
+            kwargs[key_to_convert] = dict(v.split("=", 1)
+                                          for v in values_to_convert)
+        except ValueError:
+            raise exc.CommandError(
+                '%s must be a list of key=value not "%s"' % (
+                    key_to_convert, values_to_convert))
+    return kwargs
+
+
 def exit(msg=''):
     if msg:
         print >> sys.stderr, msg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/tests/test_utils.py
 
new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/tests/test_utils.py
--- 
old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/tests/test_utils.py
   2013-07-08 10:37:08.000000000 +0200
+++ 
new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/tests/test_utils.py
   2013-08-05 15:29:35.000000000 +0200
@@ -45,3 +45,15 @@
 | Key      | Value |
 +----------+-------+
 ''')
+
+    def test_args_array_to_dict(self):
+        my_args = {
+            'matching_metadata': ['metadata.key=metadata_value'],
+            'other': 'value'
+        }
+        cleaned_dict = utils.args_array_to_dict(my_args,
+                                                "matching_metadata")
+        self.assertEqual(cleaned_dict, {
+            'matching_metadata': {'metadata.key': 'metadata_value'},
+            'other': 'value'
+        })
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/tests/v2/test_alarms.py
 
new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/tests/v2/test_alarms.py
--- 
old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/tests/v2/test_alarms.py
       2013-07-08 10:37:08.000000000 +0200
+++ 
new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/tests/v2/test_alarms.py
       2013-08-05 15:29:35.000000000 +0200
@@ -45,7 +45,6 @@
 CREATE_ALARM = copy.deepcopy(AN_ALARM)
 del CREATE_ALARM['timestamp']
 del CREATE_ALARM['state_timestamp']
-del CREATE_ALARM['matching_metadata']
 del CREATE_ALARM['alarm_id']
 DELTA_ALARM = {u'alarm_actions': ['url1', 'url2'],
                u'comparison_operator': u'lt',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/tests/v2/test_options.py
 
new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/tests/v2/test_options.py
--- 
old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/tests/v2/test_options.py
      2013-07-08 10:37:08.000000000 +0200
+++ 
new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/tests/v2/test_options.py
      2013-08-05 15:29:35.000000000 +0200
@@ -40,6 +40,15 @@
                                        'value': 43}])
         self.assertEqual(url, '/?q.op=&q.value=43&q.field=this')
 
+    def test_one_param(self):
+        url = options.build_url('/', None, ['period=60'])
+        self.assertEqual(url, '/?period=60')
+
+    def test_two_params(self):
+        url = options.build_url('/', None, ['period=60',
+                                            'others=value'])
+        self.assertEqual(url, '/?period=60&others=value')
+
 
 class CliTest(utils.BaseTestCase):
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/tests/v2/test_samples.py
 
new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/tests/v2/test_samples.py
--- 
old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/tests/v2/test_samples.py
      2013-07-08 10:37:08.000000000 +0200
+++ 
new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/tests/v2/test_samples.py
      2013-08-05 15:29:35.000000000 +0200
@@ -13,9 +13,26 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
+import copy
+
 from ceilometerclient.tests import utils
 import ceilometerclient.v2.samples
 
+GET_SAMPLE = {u'counter_name': u'instance',
+              u'user_id': u'user-id',
+              u'resource_id': u'resource-id',
+              u'timestamp': u'2012-07-02T10:40:00',
+              u'source': u'test_source',
+              u'message_id': u'54558a1c-6ef3-11e2-9875-5453ed1bbb5f',
+              u'counter_unit': u'',
+              u'counter_volume': 1.0,
+              u'project_id': u'project1',
+              u'resource_metadata': {u'tag': u'self.counter',
+                                     u'display_name': u'test-server'},
+              u'counter_type': u'cumulative'}
+CREATE_SAMPLE = copy.deepcopy(GET_SAMPLE)
+del CREATE_SAMPLE['message_id']
+del CREATE_SAMPLE['source']
 
 base_url = '/v2/meters/instance'
 args = 'q.op=&q.op=&q.value=foo&q.value=bar&q.field=resource_id&q.field=source'
@@ -24,20 +41,11 @@
     {
         'GET': (
             {},
-            [
-                {u'counter_name': u'instance',
-                 u'user_id': u'user-id',
-                 u'resource_id': u'resource-id',
-                 u'timestamp': u'2012-07-02T10:40:00',
-                 u'message_id': u'54558a1c-6ef3-11e2-9875-5453ed1bbb5f',
-                 u'source': u'test_source',
-                 u'counter_unit': u'',
-                 u'counter_volume': 1.0,
-                 u'project_id': u'project1',
-                 u'resource_metadata': {u'tag': u'self.counter',
-                                        u'display_name': u'test-server'},
-                 u'counter_type': u'cumulative'},
-            ]
+            [GET_SAMPLE]
+        ),
+        'POST': (
+            {},
+            [CREATE_SAMPLE],
         ),
     },
     '%s?%s' % (base_url, args):
@@ -77,3 +85,11 @@
         expect = [('GET', '%s?%s' % (base_url, args), {}, None)]
         self.assertEqual(self.api.calls, expect)
         self.assertEqual(len(samples), 0)
+
+    def test_create(self):
+        sample = self.mgr.create(**CREATE_SAMPLE)
+        expect = [
+            ('POST', '/v2/meters/instance', {}, [CREATE_SAMPLE]),
+        ]
+        self.assertEqual(self.api.calls, expect)
+        self.assertTrue(sample)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/v1/client.py 
new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/v1/client.py
--- old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/v1/client.py  
2013-07-08 10:37:08.000000000 +0200
+++ new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/v1/client.py  
2013-08-05 15:29:35.000000000 +0200
@@ -22,7 +22,7 @@
 
     :param string endpoint: A user-supplied endpoint URL for the ceilometer
                             service.
-    :param string token: Token for authentication.
+    :param function token: Provides token for authentication.
     :param integer timeout: Allows customization of the timeout for client
                             http requests. (optional)
     """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/v2/alarms.py 
new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/v2/alarms.py
--- old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/v2/alarms.py  
2013-07-08 10:37:08.000000000 +0200
+++ new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/v2/alarms.py  
2013-08-05 15:29:35.000000000 +0200
@@ -33,6 +33,7 @@
     'alarm_actions',
     'ok_actions',
     'insufficient_data_actions',
+    'matching_metadata',
     ]
 CREATION_ATTRIBUTES = UPDATABLE_ATTRIBUTES + ['name', 'project_id', 'user_id']
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/v2/client.py 
new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/v2/client.py
--- old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/v2/client.py  
2013-07-08 10:37:08.000000000 +0200
+++ new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/v2/client.py  
2013-08-05 15:29:35.000000000 +0200
@@ -26,7 +26,7 @@
 
     :param string endpoint: A user-supplied endpoint URL for the ceilometer
                             service.
-    :param string token: Token for authentication.
+    :param function token: Provides token for authentication.
     :param integer timeout: Allows customization of the timeout for client
                             http requests. (optional)
     """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/v2/options.py 
new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/v2/options.py
--- old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/v2/options.py 
2013-07-08 10:37:08.000000000 +0200
+++ new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/v2/options.py 
2013-08-05 15:29:35.000000000 +0200
@@ -39,7 +39,10 @@
         if params:
             for p in params:
                 path += '&%s' % p
-
+    elif params:
+        path += '?%s' % params[0]
+        for p in params[1:]:
+            path += '&%s' % p
     return path
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/v2/samples.py 
new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/v2/samples.py
--- old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/v2/samples.py 
2013-07-08 10:37:08.000000000 +0200
+++ new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/v2/samples.py 
2013-08-05 15:29:35.000000000 +0200
@@ -14,6 +14,17 @@
 from ceilometerclient.common import base
 from ceilometerclient.v2 import options
 
+CREATION_ATTRIBUTES = ('source',
+                       'counter_name',
+                       'counter_type',
+                       'counter_unit',
+                       'counter_volume',
+                       'user_id',
+                       'project_id',
+                       'resource_id',
+                       'timestamp',
+                       'resource_metadata')
+
 
 class Sample(base.Resource):
     def __repr__(self):
@@ -23,8 +34,20 @@
 class SampleManager(base.Manager):
     resource_class = Sample
 
+    @staticmethod
+    def _path(counter_name=None):
+        return '/v2/meters/%s' % counter_name if counter_name else '/v2/meters'
+
     def list(self, meter_name=None, q=None):
-        path = '/v2/meters'
-        if meter_name:
-            path += '/' + meter_name
+        path = self._path(counter_name=meter_name)
         return self._list(options.build_url(path, q))
+
+    def create(self, **kwargs):
+        new = dict((key, value) for (key, value) in kwargs.items()
+                   if key in CREATION_ATTRIBUTES)
+        url = self._path(counter_name=kwargs['counter_name'])
+        resp, body = self.api.json_request('POST',
+                                           url,
+                                           body=[new])
+        if body:
+            return [Sample(self, b) for b in body]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/v2/shell.py 
new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/v2/shell.py
--- old/python-ceilometerclient-1.0.1.4.g075148b/ceilometerclient/v2/shell.py   
2013-07-08 10:37:08.000000000 +0200
+++ new/python-ceilometerclient-1.0.2.7.g091937b/ceilometerclient/v2/shell.py   
2013-08-05 15:29:35.000000000 +0200
@@ -16,6 +16,8 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
+import json
+
 from ceilometerclient.common import utils
 from ceilometerclient import exc
 from ceilometerclient.v2 import options
@@ -76,6 +78,41 @@
                          sortby=0)
 
 
[email protected]('--project-id', metavar='<PROJECT_ID>',
+           help='Tenant to associate with alarm '
+                '(only settable by admin users)')
[email protected]('--user-id', metavar='<USER_ID>',
+           help='User to associate with alarm '
+                '(only settable by admin users)')
[email protected]('-r', '--resource-id', metavar='<RESOURCE_ID>',
+           help='ID of the resource.')
[email protected]('-m', '--meter-name', metavar='<METER_NAME>',
+           help='the meter name')
[email protected]('--meter-type', metavar='<METER_TYPE>',
+           help='the meter type')
[email protected]('--meter-unit', metavar='<METER_UNIT>',
+           help='the meter unit')
[email protected]('--sample-volume', metavar='<SAMPLE_VOLUME>',
+           help='The sample volume')
[email protected]('--resource-metadata', metavar='<RESOURCE_METADATA>',
+           help='resource metadata')
+def do_sample_create(cc, args={}):
+    '''Create a sample.'''
+    arg_to_field_mapping = {'meter_name': 'counter_name',
+                            'meter_unit': 'counter_unit',
+                            'meter_type': 'counter_type',
+                            'sample_volume': 'counter_volume'}
+    fields = {}
+    for var in vars(args).items():
+        k, v = var[0], var[1]
+        if v is not None:
+            if k == 'resource_metadata':
+                fields[k] = json.loads(v)
+            else:
+                fields[arg_to_field_mapping.get(k, k)] = v
+    cc.samples.create(**fields)
+
+
 @utils.arg('-q', '--query', metavar='<QUERY>',
            help='key[op]value; list.')
 def do_meter_list(cc, args={}):
@@ -110,7 +147,8 @@
     fields = ['name', 'description', 'counter_name', 'period',
               'evaluation_periods', 'threshold', 'comparison_operator',
               'state', 'enabled', 'alarm_id', 'user_id', 'project_id',
-              'alarm_actions', 'ok_actions', 'insufficient_data_actions']
+              'alarm_actions', 'ok_actions', 'insufficient_data_actions',
+              'matching_metadata']
     data = dict([(f, getattr(alarm, f, '')) for f in fields])
     utils.print_dict(data, wrap=72)
 
@@ -167,9 +205,14 @@
            metavar='<Webhook URL>', action='append', default=None,
            help=('URL to invoke when state transitions to unkown. '
                  'May be used multiple times.'))
[email protected]('--matching-metadata', dest='matching_metadata',
+           metavar='<Matching Metadata>', action='append', default=None,
+           help=('A meter should match this resource metadata (key=value) '
+                 'additionally to the counter_name'))
 def do_alarm_create(cc, args={}):
     '''Create a new alarm.'''
     fields = dict(filter(lambda x: not (x[1] is None), vars(args).items()))
+    fields = utils.args_array_to_dict(fields, "matching_metadata")
     alarm = cc.alarms.create(**fields)
     _display_alarm(alarm)
 
@@ -206,9 +249,14 @@
            metavar='<Webhook URL>', action='append', default=None,
            help=('URL to invoke when state transitions to unkown. '
                  'May be used multiple times.'))
[email protected]('--matching-metadata', dest='matching_metadata',
+           metavar='<Matching Metadata>', action='append', default=None,
+           help=('A meter should match this resource metadata (key=value) '
+                 'additionally to the counter_name'))
 def do_alarm_update(cc, args={}):
     '''Update an existing alarm.'''
     fields = dict(filter(lambda x: not (x[1] is None), vars(args).items()))
+    fields = utils.args_array_to_dict(fields, "matching_metadata")
     fields.pop('alarm_id')
     alarm = cc.alarms.update(args.alarm_id, **fields)
     _display_alarm(alarm)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ceilometerclient-1.0.1.4.g075148b/python_ceilometerclient.egg-info/PKG-INFO
 
new/python-ceilometerclient-1.0.2.7.g091937b/python_ceilometerclient.egg-info/PKG-INFO
--- 
old/python-ceilometerclient-1.0.1.4.g075148b/python_ceilometerclient.egg-info/PKG-INFO
      2013-07-08 10:37:44.000000000 +0200
+++ 
new/python-ceilometerclient-1.0.2.7.g091937b/python_ceilometerclient.egg-info/PKG-INFO
      2013-08-05 15:30:18.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: python-ceilometerclient
-Version: 1.0.1.4.g075148b
+Version: 1.0.2.7.g091937b
 Summary: OpenStack Metering API Client Library
 Home-page: http://www.openstack.org/
 Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ceilometerclient-1.0.1.4.g075148b/python_ceilometerclient.egg-info/SOURCES.txt
 
new/python-ceilometerclient-1.0.2.7.g091937b/python_ceilometerclient.egg-info/SOURCES.txt
--- 
old/python-ceilometerclient-1.0.1.4.g075148b/python_ceilometerclient.egg-info/SOURCES.txt
   2013-07-08 10:37:46.000000000 +0200
+++ 
new/python-ceilometerclient-1.0.2.7.g091937b/python_ceilometerclient.egg-info/SOURCES.txt
   2013-08-05 15:30:18.000000000 +0200
@@ -1,11 +1,9 @@
-.gitignore
-.gitreview
 .testr.conf
 AUTHORS
 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-ceilometerclient-1.0.1.4.g075148b/python_ceilometerclient.egg-info/requires.txt
 
new/python-ceilometerclient-1.0.2.7.g091937b/python_ceilometerclient.egg-info/requires.txt
--- 
old/python-ceilometerclient-1.0.1.4.g075148b/python_ceilometerclient.egg-info/requires.txt
  2013-07-08 10:37:44.000000000 +0200
+++ 
new/python-ceilometerclient-1.0.2.7.g091937b/python_ceilometerclient.egg-info/requires.txt
  2013-08-05 15:30:18.000000000 +0200
@@ -3,4 +3,4 @@
 httplib2
 iso8601>=0.1.4
 prettytable>=0.6,<0.8
-python-keystoneclient>=0.2,<0.3
\ No newline at end of file
+python-keystoneclient>=0.2.1
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ceilometerclient-1.0.1.4.g075148b/requirements.txt 
new/python-ceilometerclient-1.0.2.7.g091937b/requirements.txt
--- old/python-ceilometerclient-1.0.1.4.g075148b/requirements.txt       
2013-07-08 10:37:08.000000000 +0200
+++ new/python-ceilometerclient-1.0.2.7.g091937b/requirements.txt       
2013-08-05 15:29:35.000000000 +0200
@@ -4,4 +4,4 @@
 httplib2
 iso8601>=0.1.4
 prettytable>=0.6,<0.8
-python-keystoneclient>=0.2,<0.3
+python-keystoneclient>=0.2.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-ceilometerclient-1.0.1.4.g075148b/setup.cfg 
new/python-ceilometerclient-1.0.2.7.g091937b/setup.cfg
--- old/python-ceilometerclient-1.0.1.4.g075148b/setup.cfg      2013-07-08 
10:37:46.000000000 +0200
+++ new/python-ceilometerclient-1.0.2.7.g091937b/setup.cfg      2013-08-05 
15:30:18.000000000 +0200
@@ -2,7 +2,7 @@
 name = python-ceilometerclient
 summary = OpenStack Metering 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-ceilometerclient-1.0.1.4.g075148b/test-requirements.txt 
new/python-ceilometerclient-1.0.2.7.g091937b/test-requirements.txt
--- old/python-ceilometerclient-1.0.1.4.g075148b/test-requirements.txt  
2013-07-08 10:37:08.000000000 +0200
+++ new/python-ceilometerclient-1.0.2.7.g091937b/test-requirements.txt  
2013-08-05 15:29:35.000000000 +0200
@@ -2,8 +2,7 @@
 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
@@ -11,4 +10,4 @@
 python-subunit
 sphinx>=1.1.2
 testrepository>=0.0.13
-testtools>=0.9.29
+testtools>=0.9.32

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to