)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ac0e3aa304e6cc2abb90621343cd913374ebfee0","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"_attach_volume(), _detach_volume(): support the case when these methods"},{"line_number":48,"context_line":"are invoked from a method that is not overridden in the StorPool Cinder"},{"line_number":49,"context_line":"driver - create a storpool.spopenstack.AttachDB attachment structure"},{"line_number":50,"context_line":"and destroy it upon detaching."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"ensure_export(): add a stub method, the actual work is handled by"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3afb71cf_1049d331","line":49,"updated":"2015-06-07 01:01:13.000000000","message":"/sopenstack/openstack/","commit_id":"17eca28339ec61ae47cfc23d62817e0c074120da"},{"author":{"_account_id":12988,"name":"Peter Penchev","email":"openstack-dev@storpool.com","username":"ppenchev"},"change_message_id":"f696d69aacc769a0d2435408dd674e15b5fb89c1","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"_attach_volume(), _detach_volume(): support the case when these methods"},{"line_number":48,"context_line":"are invoked from a method that is not overridden in the StorPool Cinder"},{"line_number":49,"context_line":"driver - create a storpool.spopenstack.AttachDB attachment structure"},{"line_number":50,"context_line":"and destroy it upon detaching."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"ensure_export(): add a stub method, the actual work is handled by"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3afb71cf_8cfecf36","line":49,"in_reply_to":"3afb71cf_1049d331","updated":"2015-06-07 10:34:05.000000000","message":"Mmm, actually it is storpool.spopenstack - this is the name of our helper module; see https://pypi.python.org/pypi/storpool.spopenstack","commit_id":"17eca28339ec61ae47cfc23d62817e0c074120da"}],"cinder/tests/unit/test_storpool.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ac0e3aa304e6cc2abb90621343cd913374ebfee0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 StorPool"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_f05517c6","line":1,"updated":"2015-06-07 01:01:13.000000000","message":"2015?","commit_id":"17eca28339ec61ae47cfc23d62817e0c074120da"},{"author":{"_account_id":12988,"name":"Peter Penchev","email":"openstack-dev@storpool.com","username":"ppenchev"},"change_message_id":"f696d69aacc769a0d2435408dd674e15b5fb89c1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 StorPool"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_4cf8d749","line":1,"in_reply_to":"3afb71cf_f05517c6","updated":"2015-06-07 10:34:05.000000000","message":"Oof, thanks!  I\u0027m usually a stickler for copyright notice years myself, but somehow I managed to miss these...","commit_id":"17eca28339ec61ae47cfc23d62817e0c074120da"}],"cinder/volume/drivers/storpool.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ac0e3aa304e6cc2abb90621343cd913374ebfee0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Copyright (c) 2014 StorPool"},{"line_number":2,"context_line":"#    All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_f06cf79d","line":1,"updated":"2015-06-07 01:01:13.000000000","message":"2015?","commit_id":"17eca28339ec61ae47cfc23d62817e0c074120da"},{"author":{"_account_id":12988,"name":"Peter Penchev","email":"openstack-dev@storpool.com","username":"ppenchev"},"change_message_id":"f696d69aacc769a0d2435408dd674e15b5fb89c1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Copyright (c) 2014 StorPool"},{"line_number":2,"context_line":"#    All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_2c96bbf0","line":1,"in_reply_to":"3afb71cf_f06cf79d","updated":"2015-06-07 10:34:05.000000000","message":"Right, fixed this one too.  Thanks again!","commit_id":"17eca28339ec61ae47cfc23d62817e0c074120da"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ac0e3aa304e6cc2abb90621343cd913374ebfee0","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                  - bugfix: fall back to the configured StorPool template"},{"line_number":67,"context_line":"    \"\"\""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    VERSION \u003d \u00270.2.0\u0027"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":72,"context_line":"        super(StorPoolDriver, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_908dc333","line":69,"updated":"2015-06-07 01:01:13.000000000","message":"Version is up to you, but wouldn\u0027t you want to make this 1.0.0? Or 2.0.0?","commit_id":"17eca28339ec61ae47cfc23d62817e0c074120da"},{"author":{"_account_id":12988,"name":"Peter Penchev","email":"openstack-dev@storpool.com","username":"ppenchev"},"change_message_id":"f696d69aacc769a0d2435408dd674e15b5fb89c1","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                  - bugfix: fall back to the configured StorPool template"},{"line_number":67,"context_line":"    \"\"\""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    VERSION \u003d \u00270.2.0\u0027"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":72,"context_line":"        super(StorPoolDriver, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_0c99bf1f","line":69,"in_reply_to":"3afb71cf_908dc333","updated":"2015-06-07 10:34:05.000000000","message":"Right, bumped it to 1.0.0 in the next patchset.","commit_id":"17eca28339ec61ae47cfc23d62817e0c074120da"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ac0e3aa304e6cc2abb90621343cd913374ebfee0","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        return {\u0027driver_volume_type\u0027: \u0027storpool\u0027,"},{"line_number":132,"context_line":"                \u0027data\u0027: {"},{"line_number":133,"context_line":"                    \u0027client_id\u0027: self._storpool_client_id(connector),"},{"line_number":134,"context_line":"                    \u0027volume\u0027: volume[\u0027id\u0027]"},{"line_number":135,"context_line":"                }}"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_b0b67fda","line":134,"updated":"2015-06-07 01:01:13.000000000","message":"For dictionaries over 80 characters it is recommended to have a trailing comma.\n\nhttp://docs.openstack.org/developer/hacking/#dictionaries-lists","commit_id":"17eca28339ec61ae47cfc23d62817e0c074120da"},{"author":{"_account_id":12988,"name":"Peter Penchev","email":"openstack-dev@storpool.com","username":"ppenchev"},"change_message_id":"f696d69aacc769a0d2435408dd674e15b5fb89c1","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        return {\u0027driver_volume_type\u0027: \u0027storpool\u0027,"},{"line_number":132,"context_line":"                \u0027data\u0027: {"},{"line_number":133,"context_line":"                    \u0027client_id\u0027: self._storpool_client_id(connector),"},{"line_number":134,"context_line":"                    \u0027volume\u0027: volume[\u0027id\u0027]"},{"line_number":135,"context_line":"                }}"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_cca2874b","line":134,"in_reply_to":"3afb71cf_b0b67fda","updated":"2015-06-07 10:34:05.000000000","message":"True, forgot to do this when the dictionary grew from its initial one-line version to this.  Thanks again!","commit_id":"17eca28339ec61ae47cfc23d62817e0c074120da"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ac0e3aa304e6cc2abb90621343cd913374ebfee0","unresolved":false,"context_lines":[{"line_number":340,"context_line":"                LOG.error("},{"line_number":341,"context_line":"                    _LE(\u0027Could not remove the temp snapshot {n} for {v}: {e}\u0027)."},{"line_number":342,"context_line":"                    format(n\u003dname, v\u003dvolname, e\u003dsix.text_type(e)))"},{"line_number":343,"context_line":"                pass"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    def copy_volume_to_image(self, context, volume, image_service, image_meta):"},{"line_number":346,"context_line":"        req_id \u003d context.request_id"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_ab7974fe","line":343,"updated":"2015-06-07 01:01:13.000000000","message":"Remove \"pass\", not needed with having the logging statement.","commit_id":"17eca28339ec61ae47cfc23d62817e0c074120da"},{"author":{"_account_id":12988,"name":"Peter Penchev","email":"openstack-dev@storpool.com","username":"ppenchev"},"change_message_id":"f696d69aacc769a0d2435408dd674e15b5fb89c1","unresolved":false,"context_lines":[{"line_number":340,"context_line":"                LOG.error("},{"line_number":341,"context_line":"                    _LE(\u0027Could not remove the temp snapshot {n} for {v}: {e}\u0027)."},{"line_number":342,"context_line":"                    format(n\u003dname, v\u003dvolname, e\u003dsix.text_type(e)))"},{"line_number":343,"context_line":"                pass"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    def copy_volume_to_image(self, context, volume, image_service, image_meta):"},{"line_number":346,"context_line":"        req_id \u003d context.request_id"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_ac8aabbd","line":343,"in_reply_to":"3afb71cf_ab7974fe","updated":"2015-06-07 10:34:05.000000000","message":"Done","commit_id":"17eca28339ec61ae47cfc23d62817e0c074120da"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ac0e3aa304e6cc2abb90621343cd913374ebfee0","unresolved":false,"context_lines":[{"line_number":368,"context_line":"                LOG.error("},{"line_number":369,"context_line":"                    _LE(\u0027Could not remove the temp snapshot {n} for {v}: {e}\u0027)."},{"line_number":370,"context_line":"                    format(n\u003dname, v\u003dvolname, e\u003dsix.text_type(e)))"},{"line_number":371,"context_line":"                pass"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"    def copy_image_to_volume(self, context, volume, image_service, image_id):"},{"line_number":374,"context_line":"        req_id \u003d context.request_id"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_4b88c0e7","line":371,"updated":"2015-06-07 01:01:13.000000000","message":"Remove pass.","commit_id":"17eca28339ec61ae47cfc23d62817e0c074120da"},{"author":{"_account_id":12988,"name":"Peter Penchev","email":"openstack-dev@storpool.com","username":"ppenchev"},"change_message_id":"f696d69aacc769a0d2435408dd674e15b5fb89c1","unresolved":false,"context_lines":[{"line_number":368,"context_line":"                LOG.error("},{"line_number":369,"context_line":"                    _LE(\u0027Could not remove the temp snapshot {n} for {v}: {e}\u0027)."},{"line_number":370,"context_line":"                    format(n\u003dname, v\u003dvolname, e\u003dsix.text_type(e)))"},{"line_number":371,"context_line":"                pass"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"    def copy_image_to_volume(self, context, volume, image_service, image_id):"},{"line_number":374,"context_line":"        req_id \u003d context.request_id"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_8c85afae","line":371,"in_reply_to":"3afb71cf_4b88c0e7","updated":"2015-06-07 10:34:05.000000000","message":"Done","commit_id":"17eca28339ec61ae47cfc23d62817e0c074120da"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"8319531a322e06dca49c6c14aa9f8fc77e0a3ac4","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"class StorPoolDriver(driver.TransferVD, driver.ExtendVD, driver.CloneableVD,"},{"line_number":58,"context_line":"                     driver.SnapshotVD, driver.RetypeVD, driver.BaseVD):"},{"line_number":59,"context_line":"    \"\"\"The StorPool block device driver using the StorPool API."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    Version history:"},{"line_number":62,"context_line":"        0.1.0   - Initial driver"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_ef6d3505","line":59,"updated":"2015-06-07 13:57:55.000000000","message":"\u0027using\u0027-\u003e\u0027uses\u0027 or \u0027is using\u0027?","commit_id":"aa59b52b5543a3a9a8f6ae11627d3307bb0e2286"},{"author":{"_account_id":12988,"name":"Peter Penchev","email":"openstack-dev@storpool.com","username":"ppenchev"},"change_message_id":"2e6e047c95e7b8246e574d92c89dd6a9419423cf","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"class StorPoolDriver(driver.TransferVD, driver.ExtendVD, driver.CloneableVD,"},{"line_number":58,"context_line":"                     driver.SnapshotVD, driver.RetypeVD, driver.BaseVD):"},{"line_number":59,"context_line":"    \"\"\"The StorPool block device driver using the StorPool API."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    Version history:"},{"line_number":62,"context_line":"        0.1.0   - Initial driver"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_651eef64","line":59,"in_reply_to":"3afb71cf_ef6d3505","updated":"2015-06-08 12:18:45.000000000","message":"Well, the idea was that this is a sentence fragment, meant to be part of a \"This is a .....\" sentence, just like the description of a Debian/FreeBSD/RedHat package.  However, in the interest of clarity, I just removed the whole API part.  Thanks!","commit_id":"aa59b52b5543a3a9a8f6ae11627d3307bb0e2286"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"8319531a322e06dca49c6c14aa9f8fc77e0a3ac4","unresolved":false,"context_lines":[{"line_number":402,"context_line":"        update \u003d {}"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"        if diff[\u0027encryption\u0027]:"},{"line_number":405,"context_line":"            LOG.error(_LE(\u0027Retype of encryption type not supported\u0027))"},{"line_number":406,"context_line":"            return False"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"        templ \u003d self.configuration.storpool_template"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_af261dcc","line":405,"updated":"2015-06-07 13:57:55.000000000","message":"Please add a period \u0027.\u0027 by the end of the log:\nLOG.error(_LE(\u0027Retype of encryption type not supported.\u0027))","commit_id":"aa59b52b5543a3a9a8f6ae11627d3307bb0e2286"},{"author":{"_account_id":12988,"name":"Peter Penchev","email":"openstack-dev@storpool.com","username":"ppenchev"},"change_message_id":"2e6e047c95e7b8246e574d92c89dd6a9419423cf","unresolved":false,"context_lines":[{"line_number":402,"context_line":"        update \u003d {}"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"        if diff[\u0027encryption\u0027]:"},{"line_number":405,"context_line":"            LOG.error(_LE(\u0027Retype of encryption type not supported\u0027))"},{"line_number":406,"context_line":"            return False"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"        templ \u003d self.configuration.storpool_template"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_2527d7b7","line":405,"in_reply_to":"3afb71cf_af261dcc","updated":"2015-06-08 12:18:45.000000000","message":"Done, well spotted!","commit_id":"aa59b52b5543a3a9a8f6ae11627d3307bb0e2286"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"8319531a322e06dca49c6c14aa9f8fc77e0a3ac4","unresolved":false,"context_lines":[{"line_number":424,"context_line":"                            update[\u0027replication\u0027] \u003d repl"},{"line_number":425,"context_line":"                elif v[0] !\u003d v[1]:"},{"line_number":426,"context_line":"                    LOG.error(_LE(\u0027FIXME: Retype of extra_specs \"%s\" not \u0027"},{"line_number":427,"context_line":"                                  \u0027supported yet\u0027) % (k))"},{"line_number":428,"context_line":"                    return False"},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"        if update:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_cf3ef9d9","line":427,"updated":"2015-06-07 13:57:55.000000000","message":"Please change \u0027%\u0027 to \u0027,\u0027.","commit_id":"aa59b52b5543a3a9a8f6ae11627d3307bb0e2286"},{"author":{"_account_id":12988,"name":"Peter Penchev","email":"openstack-dev@storpool.com","username":"ppenchev"},"change_message_id":"2e6e047c95e7b8246e574d92c89dd6a9419423cf","unresolved":false,"context_lines":[{"line_number":424,"context_line":"                            update[\u0027replication\u0027] \u003d repl"},{"line_number":425,"context_line":"                elif v[0] !\u003d v[1]:"},{"line_number":426,"context_line":"                    LOG.error(_LE(\u0027FIXME: Retype of extra_specs \"%s\" not \u0027"},{"line_number":427,"context_line":"                                  \u0027supported yet\u0027) % (k))"},{"line_number":428,"context_line":"                    return False"},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"        if update:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_c52363a6","line":427,"in_reply_to":"3afb71cf_cf3ef9d9","updated":"2015-06-08 12:18:45.000000000","message":"Done, thanks for the style hint!","commit_id":"aa59b52b5543a3a9a8f6ae11627d3307bb0e2286"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"db423660355e2b77ef7de44b291ac0646ce8e0c1","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        try:"},{"line_number":115,"context_line":"            hostname \u003d connector[\u0027host\u0027]"},{"line_number":116,"context_line":"        except Exception as e:"},{"line_number":117,"context_line":"            raise exception.InvalidConnectorException(missing\u003d\u0027host\u0027)"},{"line_number":118,"context_line":"        try:"},{"line_number":119,"context_line":"            cfg \u003d spconfig.SPConfig(section\u003dhostname)"},{"line_number":120,"context_line":"            return int(cfg[\u0027SP_OURID\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_46dd27df","line":117,"updated":"2015-06-08 19:52:42.000000000","message":"KeyError exception should be enough here","commit_id":"764cddb4e2febd4f6a11f0340159ef24a655965d"},{"author":{"_account_id":12988,"name":"Peter Penchev","email":"openstack-dev@storpool.com","username":"ppenchev"},"change_message_id":"f83b951b8a6dfdcaa76dfcc0d51408e1e24b2959","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        try:"},{"line_number":115,"context_line":"            hostname \u003d connector[\u0027host\u0027]"},{"line_number":116,"context_line":"        except Exception as e:"},{"line_number":117,"context_line":"            raise exception.InvalidConnectorException(missing\u003d\u0027host\u0027)"},{"line_number":118,"context_line":"        try:"},{"line_number":119,"context_line":"            cfg \u003d spconfig.SPConfig(section\u003dhostname)"},{"line_number":120,"context_line":"            return int(cfg[\u0027SP_OURID\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_175bc6f7","line":117,"in_reply_to":"3afb71cf_46dd27df","updated":"2015-06-09 07:33:37.000000000","message":"Right, removed the exception handling in the next patchset, thanks.","commit_id":"764cddb4e2febd4f6a11f0340159ef24a655965d"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"db423660355e2b77ef7de44b291ac0646ce8e0c1","unresolved":false,"context_lines":[{"line_number":423,"context_line":"                        else:"},{"line_number":424,"context_line":"                            update[\u0027replication\u0027] \u003d repl"},{"line_number":425,"context_line":"                elif v[0] !\u003d v[1]:"},{"line_number":426,"context_line":"                    LOG.error(_LE(\u0027FIXME: Retype of extra_specs \"%s\" not \u0027"},{"line_number":427,"context_line":"                                  \u0027supported yet.\u0027), k)"},{"line_number":428,"context_line":"                    return False"},{"line_number":429,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_863c3fe3","line":426,"updated":"2015-06-08 19:52:42.000000000","message":"Error messages should not contain \u0027FIXME\u0027 or \u0027DEBUG\u0027 labels","commit_id":"764cddb4e2febd4f6a11f0340159ef24a655965d"},{"author":{"_account_id":12988,"name":"Peter Penchev","email":"openstack-dev@storpool.com","username":"ppenchev"},"change_message_id":"f83b951b8a6dfdcaa76dfcc0d51408e1e24b2959","unresolved":false,"context_lines":[{"line_number":423,"context_line":"                        else:"},{"line_number":424,"context_line":"                            update[\u0027replication\u0027] \u003d repl"},{"line_number":425,"context_line":"                elif v[0] !\u003d v[1]:"},{"line_number":426,"context_line":"                    LOG.error(_LE(\u0027FIXME: Retype of extra_specs \"%s\" not \u0027"},{"line_number":427,"context_line":"                                  \u0027supported yet.\u0027), k)"},{"line_number":428,"context_line":"                    return False"},{"line_number":429,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_370da2e8","line":426,"in_reply_to":"3afb71cf_863c3fe3","updated":"2015-06-09 07:33:37.000000000","message":"OK, removed the \"FIXME\" part; the full migration that will be triggered should be enough indication for the operator that something weird has happened.","commit_id":"764cddb4e2febd4f6a11f0340159ef24a655965d"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"c9937ffba00a784f175a482150888ff3fcdf811f","unresolved":false,"context_lines":[{"line_number":180,"context_line":"            except spapi.ApiError as e:"},{"line_number":181,"context_line":"                # ARGH!"},{"line_number":182,"context_line":"                LOG.error(_LE(\"Could not delete the temp snapshot {n}: {msg}\")."},{"line_number":183,"context_line":"                          format(n\u003dsnapname, msg\u003dsix.text_type(e)))"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    def create_export(self, context, volume):"},{"line_number":186,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_75e38706","line":183,"updated":"2015-06-11 18:31:54.000000000","message":"Should change from doing the string formatting here to passing in the formatting args and letting the logger take care of it. six.text_type also then not needed.","commit_id":"7ac5d50a5c5b6cc09e6fa2c20031cf752924f016"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"c9937ffba00a784f175a482150888ff3fcdf811f","unresolved":false,"context_lines":[{"line_number":337,"context_line":"            except spapi.ApiError as e:"},{"line_number":338,"context_line":"                LOG.error("},{"line_number":339,"context_line":"                    _LE(\u0027Could not remove the temp snapshot {n} for {v}: {e}\u0027)."},{"line_number":340,"context_line":"                    format(n\u003dname, v\u003dvolname, e\u003dsix.text_type(e)))"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    def copy_volume_to_image(self, context, volume, image_service, image_meta):"},{"line_number":343,"context_line":"        req_id \u003d context.request_id"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_35ed0ff0","line":340,"updated":"2015-06-11 18:31:54.000000000","message":"Same.","commit_id":"7ac5d50a5c5b6cc09e6fa2c20031cf752924f016"}]}
