Hello community,

here is the log from the commit of package python-glanceclient for 
openSUSE:Factory checked in at 2013-09-16 12:45:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-glanceclient (Old)
 and      /work/SRC/openSUSE:Factory/.python-glanceclient.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-glanceclient"

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-glanceclient/python-glanceclient.changes  
2013-08-18 22:39:02.000000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-glanceclient.new/python-glanceclient.changes 
    2013-09-16 12:45:20.000000000 +0200
@@ -1,0 +2,32 @@
+Tue Sep  3 23:54:49 UTC 2013 - [email protected]
+
+- Update to version 0.10.0.17:
+  + Enable query image by tag
+
+-------------------------------------------------------------------
+Thu Aug 29 00:12:44 UTC 2013 - [email protected]
+
+- Update to version 0.10.0.16:
+  + Fix glanceclient usage inconsistences for options
+
+-------------------------------------------------------------------
+Fri Aug 23 23:47:40 UTC 2013 - [email protected]
+
+- Update to version 0.10.0.15:
+  + Add 0.11.0 doc notes
+
+-------------------------------------------------------------------
+Fri Aug 23 00:10:25 UTC 2013 - [email protected]
+
+- Update to version 0.10.0.14:
+  + Allow single-wildcard SSL common name matching
+  + Don't use posixpath for URLs
+
+-------------------------------------------------------------------
+Tue Aug 20 00:03:20 UTC 2013 - [email protected]
+
+- Update to version 0.10.0.10:
+  + removed deprecated parameter --public
+  + Revert "removed deprecated parameter --public"
+
+-------------------------------------------------------------------

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

Other differences:
------------------
++++++ python-glanceclient.spec ++++++
--- /var/tmp/diff_new_pack.Kdel8u/_old  2013-09-16 12:45:21.000000000 +0200
+++ /var/tmp/diff_new_pack.Kdel8u/_new  2013-09-16 12:45:21.000000000 +0200
@@ -19,7 +19,7 @@
 %define component glanceclient
 
 Name:           python-glanceclient
-Version:        0.10.0.7
+Version:        0.10.0.17
 Release:        0
 Summary:        Openstack Image (Glance) API Client
 License:        Apache-2.0
@@ -80,7 +80,7 @@
 This package contains testsuite files for %{name}.
 
 %prep
-%setup -q -n python-glanceclient-0.10.0.7.g7e4ba22
+%setup -q -n python-glanceclient-0.10.0.17.g897ae3d
 %openstack_cleanup_prep
 # Our package versioning scheme is different (but we provide the correct 
thing) thus:
 sed -i "s|python-keystoneclient>=0.1.2,<1|python-keystoneclient|" 
requirements.txt

++++++ python-glanceclient-master.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-glanceclient-0.10.0.7.g7e4ba22/AUTHORS 
new/python-glanceclient-0.10.0.17.g897ae3d/AUTHORS
--- old/python-glanceclient-0.10.0.7.g7e4ba22/AUTHORS   2013-08-16 
21:58:30.000000000 +0200
+++ new/python-glanceclient-0.10.0.17.g897ae3d/AUTHORS  2013-09-03 
21:30:48.000000000 +0200
@@ -22,8 +22,10 @@
 Diego Parrilla <[email protected]>
 Dirk Mueller <[email protected]>
 Doug Hellmann <[email protected]>
+Fei Long Wang <[email protected]>
 Flaper Fesp <[email protected]>
 Florian Haas <[email protected]>
+Gabe Westmaas <[email protected]>
 Gabriel Hurley <[email protected]>
 Hugh Saunders <[email protected]>
 Jakub Ruzicka <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-glanceclient-0.10.0.7.g7e4ba22/ChangeLog 
new/python-glanceclient-0.10.0.17.g897ae3d/ChangeLog
--- old/python-glanceclient-0.10.0.7.g7e4ba22/ChangeLog 2013-08-16 
21:58:29.000000000 +0200
+++ new/python-glanceclient-0.10.0.17.g897ae3d/ChangeLog        2013-09-03 
21:30:48.000000000 +0200
@@ -1,3 +1,85 @@
+commit 897ae3d795423a0f1d92f0738ad4dff99c28c6de
+Author: Fei Long Wang <[email protected]>
+Date:   Sun Aug 11 11:02:32 2013 +0800
+
+    Enable query image by tag
+    
+    This patch will enable Glance client to query images by user
+    defined tags.
+    
+    Implement bp image-query-by-tag
+    Implement bp glance-client-v2
+    
+    Change-Id: I6f54630c5b7c9c567d85485ad4289284e5486814
+
+commit b6e117f151e6d3ed8dc4849c4138d7fb28652e75
+Author: Gabe Westmaas <[email protected]>
+Date:   Sun Aug 25 01:14:07 2013 +0000
+
+    Fix glanceclient usage inconsistences for options
+    
+    Enumerated options should have the same format for all enumerated options.
+    
+    This commit moves all options to the {option1,option2} format.
+    
+    fixes bug: #1155171
+    
+    Change-Id: I8e0ecf3896c76021cb027cbbbb3b5564a04aacec
+
+commit b15c57c4a2cd7566072fcf8adb1422cb3e21b1de
+Author: Mark J. Washenberger <[email protected]>
+Date:   Thu Aug 22 16:01:29 2013 -0700
+
+    Add 0.11.0 doc notes
+    
+    Change-Id: Ic76e872e78ec77b731ad9dced833803da3fa9aca
+
+commit 835638fd8ad4fb39be2161ee79057565809082ab
+Merge: fe9a62b a30981e
+Author: Jenkins <[email protected]>
+Date:   Thu Aug 22 21:12:47 2013 +0000
+
+    Merge "Don't use posixpath for URLs"
+
+commit fe9a62b5b5681f3f8d467b24b8aca7ab646d1366
+Merge: 53d3a0e 683e40f
+Author: Jenkins <[email protected]>
+Date:   Thu Aug 22 21:12:36 2013 +0000
+
+    Merge "Allow single-wildcard SSL common name matching"
+
+commit 683e40fd31d791683e272555485b9eef1400752a
+Author: Brian Waldon <[email protected]>
+Date:   Wed Aug 14 15:37:45 2013 -0700
+
+    Allow single-wildcard SSL common name matching
+    
+    Fix bug 1212463
+    
+    Change-Id: I168601fd9847497c2261c77ce6c856bca187c6c8
+
+commit 53d3a0e129d085b3cb21e8827b321132f3b5f48e
+Author: Dean Troyer <[email protected]>
+Date:   Mon Aug 19 19:04:17 2013 +0000
+
+    Revert "removed deprecated parameter --public"
+    
+    While trunk devstack was updated for this, stable/folsom and stable/grizzly
+    are not and grenade is now broken.  I'm not sure how long --public was
+    undocumented but it may be that certain cli args may need to remain 
deprecated
+    but supported for longer than we wish.
+    
+    This reverts commit ce8636b6b3c4b606483cfb2bc405d86224f309bc
+    
+    Change-Id: I91d4884e470c8fcc611dae62a30fa22d08dbec03
+
+commit 20bd548d71097ca96d4e9f841ff68547e477323d
+Merge: 7e4ba22 ce8636b
+Author: Jenkins <[email protected]>
+Date:   Mon Aug 19 15:34:56 2013 +0000
+
+    Merge "removed deprecated parameter --public"
+
 commit 7e4ba229c3d89392b52eb9dfb260c745cdb821ae
 Author: eddie-sheffield <[email protected]>
 Date:   Tue Aug 6 16:56:59 2013 -0400
@@ -108,6 +190,18 @@
     
     Change-Id: I040c667e122d792fdcb47ee172463339068af48c
 
+commit a30981e7f03317b1be06c05ff68833ffe3719fe0
+Author: Justin Santa Barbara <[email protected]>
+Date:   Mon Aug 5 14:42:19 2013 -0700
+
+    Don't use posixpath for URLs
+    
+    Use URL functions instead.
+    
+    Fixes bug #1208618
+    
+    Change-Id: I27bb29a6422200a1a522c50335e5d93d495ec429
+
 commit 43e71e399372102f8ef4a3b7ad836fe16ace63a3
 Merge: 5c4fb2f e827c37
 Author: Jenkins <[email protected]>
@@ -160,6 +254,19 @@
 
     Merge "Add v1 client side owner based filtering"
 
+commit ce8636b6b3c4b606483cfb2bc405d86224f309bc
+Author: Christian Berendt <[email protected]>
+Date:   Tue Jul 30 18:26:58 2013 +0200
+
+    removed deprecated parameter --public
+    
+    As noted by bcwaldon the parameter can be removed after updating
+    Devstack. Should be done after merging the following change:
+    
+    https://review.openstack.org/#/c/39323/
+    
+    Change-Id: I8d0f7ab4cccccf022446374a31e03ac913cfb136
+
 commit fd0e1175795ac3a5497dcf72ed250077abaf2ed1
 Author: Flaper Fesp <[email protected]>
 Date:   Thu Jul 11 15:28:49 2013 +0200
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-glanceclient-0.10.0.7.g7e4ba22/PKG-INFO 
new/python-glanceclient-0.10.0.17.g897ae3d/PKG-INFO
--- old/python-glanceclient-0.10.0.7.g7e4ba22/PKG-INFO  2013-08-16 
21:58:30.000000000 +0200
+++ new/python-glanceclient-0.10.0.17.g897ae3d/PKG-INFO 2013-09-03 
21:30:49.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: python-glanceclient
-Version: 0.10.0.7.g7e4ba22
+Version: 0.10.0.17.g897ae3d
 Summary: OpenStack Image API Client Library
 Home-page: http://www.openstack.org/
 Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-glanceclient-0.10.0.7.g7e4ba22/doc/source/index.rst 
new/python-glanceclient-0.10.0.17.g897ae3d/doc/source/index.rst
--- old/python-glanceclient-0.10.0.7.g7e4ba22/doc/source/index.rst      
2013-08-16 21:57:29.000000000 +0200
+++ new/python-glanceclient-0.10.0.17.g897ae3d/doc/source/index.rst     
2013-09-03 21:29:58.000000000 +0200
@@ -37,6 +37,18 @@
 Release Notes
 =============
 
+0.11.0
+------
+
+* 1212463_: Allow single-wildcard SSL common name matching
+* 1208618_: Support absolute redirects for endpoint urls
+* 1190606_: Properly handle integer-like image ids
+* Support removing properties from images in the v2 library
+
+.. _1212463: http://bugs.launchpad.net/python-glanceclient/+bug/1212463
+.. _1208618: http://bugs.launchpad.net/python-glanceclient/+bug/1208618
+.. _1190606: http://bugs.launchpad.net/python-glanceclient/+bug/1190606
+
 0.10.0
 ------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-glanceclient-0.10.0.7.g7e4ba22/glanceclient/common/http.py 
new/python-glanceclient-0.10.0.17.g897ae3d/glanceclient/common/http.py
--- old/python-glanceclient-0.10.0.7.g7e4ba22/glanceclient/common/http.py       
2013-08-16 21:57:29.000000000 +0200
+++ new/python-glanceclient-0.10.0.17.g897ae3d/glanceclient/common/http.py      
2013-09-03 21:29:58.000000000 +0200
@@ -18,7 +18,6 @@
 import hashlib
 import httplib
 import logging
-import posixpath
 import socket
 import StringIO
 import struct
@@ -191,8 +190,8 @@
 
         try:
             if self.endpoint_path:
-                url = '%s/%s' % (self.endpoint_path, url)
-            conn_url = posixpath.normpath(url)
+                url = urlparse.urljoin(self.endpoint_path, url)
+            conn_url = urlparse.urlsplit(url).geturl()
             # Note(flaper87): Ditto, headers / url
             # encoding to make httplib happy.
             conn_url = strutils.safe_encode(conn_url)
@@ -327,10 +326,17 @@
         connecting to, ie that the certificate's Common Name
         or a Subject Alternative Name matches 'host'.
         """
+        common_name = x509.get_subject().commonName
+
         # First see if we can match the CN
-        if x509.get_subject().commonName == host:
+        if common_name == host:
             return True
 
+        # Support single wildcard matching
+        if common_name.startswith('*.') and host.find('.') > 0:
+            if common_name[2:] == host.split('.', 1)[1]:
+                return True
+
         # Also try Subject Alternative Names for a match
         san_list = None
         for i in xrange(x509.get_extension_count()):
@@ -343,7 +349,7 @@
 
         # Server certificate does not match host
         msg = ('Host "%s" does not match x509 certificate contents: '
-               'CommonName "%s"' % (host, x509.get_subject().commonName))
+               'CommonName "%s"' % (host, common_name))
         if san_list is not None:
             msg = msg + ', subjectAltName "%s"' % san_list
         raise exc.SSLCertificateError(msg)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-glanceclient-0.10.0.7.g7e4ba22/glanceclient/v1/shell.py 
new/python-glanceclient-0.10.0.17.g897ae3d/glanceclient/v1/shell.py
--- old/python-glanceclient-0.10.0.7.g7e4ba22/glanceclient/v1/shell.py  
2013-08-16 21:57:29.000000000 +0200
+++ new/python-glanceclient-0.10.0.17.g897ae3d/glanceclient/v1/shell.py 
2013-09-03 21:29:58.000000000 +0200
@@ -64,7 +64,7 @@
 @utils.arg('--sort-dir', default='asc',
            choices=glanceclient.v1.images.SORT_DIR_VALUES,
            help='Sort image list in specified direction.')
[email protected]('--is-public', type=utils.string_to_bool, metavar='{True|False}',
[email protected]('--is-public', type=utils.string_to_bool, metavar='{True,False}',
            help=('Allows the user to select a listing of public or non '
                  'public images.'))
 @utils.arg('--owner', default=None, metavar='<TENANT_ID>',
@@ -215,9 +215,9 @@
 # to use --is-public
 @utils.arg('--public', action='store_true', default=False,
            help=argparse.SUPPRESS)
[email protected]('--is-public', type=utils.string_to_bool, metavar='[True|False]',
[email protected]('--is-public', type=utils.string_to_bool, metavar='{True,False}',
            help='Make image accessible to the public.')
[email protected]('--is-protected', type=utils.string_to_bool, metavar='[True|False]',
[email protected]('--is-protected', type=utils.string_to_bool, metavar='{True,False}',
            help='Prevent image from being deleted.')
 @utils.arg('--property', metavar="<key=value>", action='append', default=[],
            help=("Arbitrary property to associate with image. "
@@ -287,9 +287,9 @@
            help=('Similar to \'--location\' in usage, but this indicates that'
                  ' the Glance server should immediately copy the data and'
                  ' store it in its configured image store.'))
[email protected]('--is-public', type=utils.string_to_bool, metavar='[True|False]',
[email protected]('--is-public', type=utils.string_to_bool, metavar='{True,False}',
            help='Make image accessible to the public.')
[email protected]('--is-protected', type=utils.string_to_bool, metavar='[True|False]',
[email protected]('--is-protected', type=utils.string_to_bool, metavar='{True,False}',
            help='Prevent image from being deleted.')
 @utils.arg('--property', metavar="<key=value>", action='append', default=[],
            help=("Arbitrary property to associate with image. "
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-glanceclient-0.10.0.7.g7e4ba22/glanceclient/v2/images.py 
new/python-glanceclient-0.10.0.17.g897ae3d/glanceclient/v2/images.py
--- old/python-glanceclient-0.10.0.7.g7e4ba22/glanceclient/v2/images.py 
2013-08-16 21:57:29.000000000 +0200
+++ new/python-glanceclient-0.10.0.17.g897ae3d/glanceclient/v2/images.py        
2013-09-03 21:29:58.000000000 +0200
@@ -52,12 +52,22 @@
         else:
             filters['limit'] = kwargs['page_size']
 
+        tags = filters.pop('tag', [])
+        tags_url_params = []
+
+        for tag in tags:
+            if isinstance(tag, basestring):
+                tags_url_params.append({'tag': strutils.safe_encode(tag)})
+
         for param, value in filters.iteritems():
             if isinstance(value, basestring):
                 filters[param] = strutils.safe_encode(value)
 
         url = '/v2/images?%s' % urllib.urlencode(filters)
 
+        for param in tags_url_params:
+            url = '%s&%s' % (url, urllib.urlencode(param))
+
         for image in paginate(url):
             #NOTE(bcwaldon): remove 'self' for now until we have an elegant
             # way to pass it into the model constructor without conflict
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-glanceclient-0.10.0.7.g7e4ba22/glanceclient/v2/shell.py 
new/python-glanceclient-0.10.0.17.g897ae3d/glanceclient/v2/shell.py
--- old/python-glanceclient-0.10.0.7.g7e4ba22/glanceclient/v2/shell.py  
2013-08-16 21:57:29.000000000 +0200
+++ new/python-glanceclient-0.10.0.17.g897ae3d/glanceclient/v2/shell.py 
2013-09-03 21:29:58.000000000 +0200
@@ -28,9 +28,11 @@
            help='Display images owned by <OWNER>.')
 @utils.arg('--checksum', metavar='<CHECKSUM>',
            help='Display images matching the checksum')
[email protected]('--tag', metavar='<TAG>', action='append',
+           help="Filter images by an user-defined tag.")
 def do_image_list(gc, args):
     """List images you can access."""
-    filter_keys = ['visibility', 'member_status', 'owner', 'checksum']
+    filter_keys = ['visibility', 'member_status', 'owner', 'checksum', 'tag']
     filter_items = [(key, getattr(args, key)) for key in filter_keys]
     filters = dict([item for item in filter_items if item[1] is not None])
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-glanceclient-0.10.0.7.g7e4ba22/python_glanceclient.egg-info/PKG-INFO 
new/python-glanceclient-0.10.0.17.g897ae3d/python_glanceclient.egg-info/PKG-INFO
--- 
old/python-glanceclient-0.10.0.7.g7e4ba22/python_glanceclient.egg-info/PKG-INFO 
    2013-08-16 21:58:30.000000000 +0200
+++ 
new/python-glanceclient-0.10.0.17.g897ae3d/python_glanceclient.egg-info/PKG-INFO
    2013-09-03 21:30:48.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: python-glanceclient
-Version: 0.10.0.7.g7e4ba22
+Version: 0.10.0.17.g897ae3d
 Summary: OpenStack Image API Client Library
 Home-page: http://www.openstack.org/
 Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-glanceclient-0.10.0.7.g7e4ba22/python_glanceclient.egg-info/SOURCES.txt
 
new/python-glanceclient-0.10.0.17.g897ae3d/python_glanceclient.egg-info/SOURCES.txt
--- 
old/python-glanceclient-0.10.0.7.g7e4ba22/python_glanceclient.egg-info/SOURCES.txt
  2013-08-16 21:58:30.000000000 +0200
+++ 
new/python-glanceclient-0.10.0.17.g897ae3d/python_glanceclient.egg-info/SOURCES.txt
 2013-09-03 21:30:49.000000000 +0200
@@ -75,4 +75,5 @@
 tests/var/certificate.crt
 tests/var/expired-cert.crt
 tests/var/privatekey.key
+tests/var/wildcard-certificate.crt
 tools/with_venv.sh
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-glanceclient-0.10.0.7.g7e4ba22/tests/test_ssl.py 
new/python-glanceclient-0.10.0.17.g897ae3d/tests/test_ssl.py
--- old/python-glanceclient-0.10.0.7.g7e4ba22/tests/test_ssl.py 2013-08-16 
21:57:27.000000000 +0200
+++ new/python-glanceclient-0.10.0.17.g897ae3d/tests/test_ssl.py        
2013-09-03 21:29:58.000000000 +0200
@@ -129,6 +129,21 @@
         except Exception:
             self.fail('Unexpected exception.')
 
+    def test_ssl_cert_cname_wildcard(self):
+        """
+        Test certificate: wildcard CN match
+        """
+        cert_file = os.path.join(TEST_VAR_DIR, 'wildcard-certificate.crt')
+        cert = crypto.load_certificate(crypto.FILETYPE_PEM,
+                                       file(cert_file).read())
+        # The expected cert should have CN=*.pong.example.com
+        self.assertEqual(cert.get_subject().commonName, '*.pong.example.com')
+        try:
+            conn = http.VerifiedHTTPSConnection('ping.pong.example.com', 0)
+            conn.verify_callback(None, cert, 0, 0, 1)
+        except Exception:
+            self.fail('Unexpected exception.')
+
     def test_ssl_cert_subject_alt_name(self):
         """
         Test certificate: SAN match
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-glanceclient-0.10.0.7.g7e4ba22/tests/v2/test_images.py 
new/python-glanceclient-0.10.0.17.g897ae3d/tests/v2/test_images.py
--- old/python-glanceclient-0.10.0.7.g7e4ba22/tests/v2/test_images.py   
2013-08-16 21:57:29.000000000 +0200
+++ new/python-glanceclient-0.10.0.17.g897ae3d/tests/v2/test_images.py  
2013-09-03 21:29:58.000000000 +0200
@@ -24,6 +24,9 @@
 _CHKSUM = '93264c3edf5972c9f1cb309543d38a5c'
 _CHKSUM1 = '54264c3edf5972c9f1cb309453d38a46'
 
+_TAG1 = 'power'
+_TAG2 = '64bit'
+
 _BOGUS_ID = '63e7f218-29de-4477-abdc-8db7c9533188'
 _EVERYTHING_ID = '802cbbb7-0379-4c38-853f-37302b5e3d29'
 _OWNED_IMAGE_ID = 'a4963502-acc7-42ba-ad60-5aa0962b7faf'
@@ -254,6 +257,51 @@
             {'images': []},
         ),
     },
+    '/v2/images?limit=%d&tag=%s' % (images.DEFAULT_PAGE_SIZE, _TAG1): {
+        'GET': (
+            {},
+            {'images': [
+                {
+                    'id': '3a4560a1-e585-443e-9b39-553b46ec92d1',
+                    'name': 'image-1',
+                }
+            ]},
+        ),
+    },
+    '/v2/images?limit=%d&tag=%s' % (images.DEFAULT_PAGE_SIZE, _TAG2): {
+        'GET': (
+            {},
+            {'images': [
+                {
+                    'id': '2a4560b2-e585-443e-9b39-553b46ec92d1',
+                    'name': 'image-1',
+                },
+                {
+                    'id': '6f99bf80-2ee6-47cf-acfe-1f1fabb7e810',
+                    'name': 'image-2',
+                },
+            ]},
+        ),
+    },
+    '/v2/images?limit=%d&tag=%s&tag=%s' % (images.DEFAULT_PAGE_SIZE,
+                                           _TAG1, _TAG2):
+    {
+        'GET': (
+            {},
+            {'images': [
+                {
+                    'id': '2a4560b2-e585-443e-9b39-553b46ec92d1',
+                    'name': 'image-1',
+                }
+            ]},
+        ),
+    },
+    '/v2/images?limit=%d&tag=fake' % images.DEFAULT_PAGE_SIZE: {
+        'GET': (
+            {},
+            {'images': []},
+        ),
+    },
 }
 
 
@@ -358,6 +406,35 @@
 
         self.assertEqual(filters["owner"], "ni\xc3\xb1o")
 
+    def test_list_images_for_tag_single_image(self):
+        img_id = '3a4560a1-e585-443e-9b39-553b46ec92d1'
+        filters = {'filters': dict([('tag', [_TAG1])])}
+        images = list(self.controller.list(**filters))
+        self.assertEquals(1, len(images))
+        self.assertEqual(images[0].id, '%s' % img_id)
+        pass
+
+    def test_list_images_for_tag_multiple_images(self):
+        img_id1 = '2a4560b2-e585-443e-9b39-553b46ec92d1'
+        img_id2 = '6f99bf80-2ee6-47cf-acfe-1f1fabb7e810'
+        filters = {'filters': dict([('tag', [_TAG2])])}
+        images = list(self.controller.list(**filters))
+        self.assertEquals(2, len(images))
+        self.assertEqual(images[0].id, '%s' % img_id1)
+        self.assertEqual(images[1].id, '%s' % img_id2)
+
+    def test_list_images_for_multi_tags(self):
+        img_id1 = '2a4560b2-e585-443e-9b39-553b46ec92d1'
+        filters = {'filters': dict([('tag', [_TAG1, _TAG2])])}
+        images = list(self.controller.list(**filters))
+        self.assertEquals(1, len(images))
+        self.assertEqual(images[0].id, '%s' % img_id1)
+
+    def test_list_images_for_non_existent_tag(self):
+        filters = {'filters': dict([('tag', ['fake'])])}
+        images = list(self.controller.list(**filters))
+        self.assertEquals(0, len(images))
+
     def test_get_image(self):
         image = self.controller.get('3a4560a1-e585-443e-9b39-553b46ec92d1')
         self.assertEqual(image.id, '3a4560a1-e585-443e-9b39-553b46ec92d1')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-glanceclient-0.10.0.7.g7e4ba22/tests/v2/test_shell_v2.py 
new/python-glanceclient-0.10.0.17.g897ae3d/tests/v2/test_shell_v2.py
--- old/python-glanceclient-0.10.0.7.g7e4ba22/tests/v2/test_shell_v2.py 
2013-08-16 21:57:29.000000000 +0200
+++ new/python-glanceclient-0.10.0.17.g897ae3d/tests/v2/test_shell_v2.py        
2013-09-03 21:29:58.000000000 +0200
@@ -70,6 +70,7 @@
             'member_status': 'Fake',
             'owner': 'test',
             'checksum': 'fake_checksum',
+            'tag': 'fake tag'
         }
         args = self._make_args(input)
         with mock.patch.object(self.gc.images, 'list') as mocked_list:
@@ -82,6 +83,7 @@
                 'member_status': 'Fake',
                 'visibility': True,
                 'checksum': 'fake_checksum',
+                'tag': 'fake tag'
             }
             mocked_list.assert_called_once_with(page_size=18,
                                                 filters=exp_img_filters)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-glanceclient-0.10.0.7.g7e4ba22/tests/var/wildcard-certificate.crt 
new/python-glanceclient-0.10.0.17.g897ae3d/tests/var/wildcard-certificate.crt
--- 
old/python-glanceclient-0.10.0.7.g7e4ba22/tests/var/wildcard-certificate.crt    
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/python-glanceclient-0.10.0.17.g897ae3d/tests/var/wildcard-certificate.crt   
    2013-09-03 21:29:58.000000000 +0200
@@ -0,0 +1,61 @@
+#Certificate:
+#    Data:
+#        Version: 1 (0x0)
+#        Serial Number: 13493453254446411258 (0xbb42603e589dedfa)
+#    Signature Algorithm: sha1WithRSAEncryption
+#        Issuer: C=US, ST=CA, L=State1, O=Openstack Test Org, OU=Openstack 
Test Unit, CN=*.pong.example.com/[email protected]
+#        Validity
+#            Not Before: Aug 21 17:29:18 2013 GMT
+#            Not After : Jul 28 17:29:18 2113 GMT
+#        Subject: C=US, ST=CA, L=State1, O=Openstack Test Org, OU=Openstack 
Test Unit, CN=*.pong.example.com/[email protected]
+#        Subject Public Key Info:
+#            Public Key Algorithm: rsaEncryption
+#                Public-Key: (4096 bit)
+#                Modulus:
+#                    00:d4:bb:3a:c4:a0:06:54:31:23:5d:b0:78:5a:be:
+#                    45:44:ae:a1:89:86:11:d8:ca:a8:33:b0:4f:f3:e1:
+#                    46:1e:85:a3:2a:9c:a4:e0:c2:14:34:4f:91:df:dc:
+#                    .
+#                    .
+#                    .
+#                Exponent: 65537 (0x10001)
+#    Signature Algorithm: sha1WithRSAEncryption
+#         9f:cc:08:5d:19:ee:54:31:a3:57:d7:3c:89:89:c0:69:41:dd:
+#         46:f8:73:68:ec:46:b9:fa:f5:df:f6:d9:58:35:d8:53:94:88:
+#         bd:36:a6:23:9e:0c:0d:89:62:35:91:49:b6:14:f4:43:69:3c:
+#         .
+#         .
+#         .
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----

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

Reply via email to