)]}'
{"tools/support_matrix_gen.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"e25e0d67b2b57392784c805c403cdde75380b34d","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import pkgutil"},{"line_number":18,"context_line":"import cinder.volume.drivers"},{"line_number":19,"context_line":"from cinder.volume import driver as drv"},{"line_number":20,"context_line":"import inspect"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_42ebefaf","line":17,"updated":"2015-03-02 13:58:37.000000000","message":"I think you will need to clean up the imports. See http://docs.openstack.org/developer/hacking/#import-order-template.","commit_id":"29639cfd434985f6c00a3b97d758594e3ef3d35d"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"e25e0d67b2b57392784c805c403cdde75380b34d","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        return __import__(modname, fromlist\u003d\"dummy\")"},{"line_number":31,"context_line":"    except ImportError:"},{"line_number":32,"context_line":"        print \"Ignore %s\" % modname"},{"line_number":33,"context_line":"        return False"},{"line_number":34,"context_line":"prefix \u003d package.__name__ + \u0027.\u0027"},{"line_number":35,"context_line":"for importer, modname, ispkg in pkgutil.walk_packages(path\u003dpackage.__path__,"},{"line_number":36,"context_line":"                                                      prefix\u003dprefix,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_e22b03e9","line":33,"updated":"2015-03-02 13:58:37.000000000","message":"Need newlines between try_import body and the rest of the code.","commit_id":"29639cfd434985f6c00a3b97d758594e3ef3d35d"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"e25e0d67b2b57392784c805c403cdde75380b34d","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                elif issubclass(clazz, drv.BaseVD):"},{"line_number":45,"context_line":"                    support_matrix[clazz.__name__] \u003d clazz.__bases__"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"print \"Not yet ported drivers: \\n%s\" % not_ported"},{"line_number":48,"context_line":"print \"Support matrix\""},{"line_number":49,"context_line":"pprint.pprint(support_matrix)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_626d5332","line":47,"updated":"2015-03-02 13:58:37.000000000","message":"Maybe just my preferences, but I would recommend using print() instead of just the print statement to help with possible future conversion to Python 3.x.","commit_id":"29639cfd434985f6c00a3b97d758594e3ef3d35d"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"d2f8e61aeef47100a98f5811ac74f7ea61ff6389","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":"# Copyright (c) 2015 Deutsche Telekom AG"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa53dc9_fd6890bc","line":1,"updated":"2015-04-07 00:09:23.000000000","message":"Not needed","commit_id":"ea9e19fb9ce86e155fe3618ce9ee09d206ae9ad3"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"357c13b7a88a272779d0415b222f4325075c6619","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import pprint"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from cinder.volume import driver as drv"},{"line_number":22,"context_line":"import cinder.volume.drivers"},{"line_number":23,"context_line":"package \u003d cinder.volume.drivers"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"support_matrix \u003d {}"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_1d398ba4","line":22,"updated":"2015-05-20 10:21:39.000000000","message":"Why not `from cinder.volume import drivers` to be more consistent?","commit_id":"ea9e19fb9ce86e155fe3618ce9ee09d206ae9ad3"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"357c13b7a88a272779d0415b222f4325075c6619","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from cinder.volume import driver as drv"},{"line_number":22,"context_line":"import cinder.volume.drivers"},{"line_number":23,"context_line":"package \u003d cinder.volume.drivers"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"support_matrix \u003d {}"},{"line_number":26,"context_line":"not_ported \u003d []"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_5d0143ae","line":23,"updated":"2015-05-20 10:21:39.000000000","message":"I think this line should not be put together with imports. You can make it a constant.","commit_id":"ea9e19fb9ce86e155fe3618ce9ee09d206ae9ad3"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"357c13b7a88a272779d0415b222f4325075c6619","unresolved":false,"context_lines":[{"line_number":29,"context_line":"def try_import(modname):"},{"line_number":30,"context_line":"    try:"},{"line_number":31,"context_line":"        return __import__(modname, fromlist\u003d\"dummy\")"},{"line_number":32,"context_line":"    except ImportError:"},{"line_number":33,"context_line":"        print (\"Ignore %s\" % modname)"},{"line_number":34,"context_line":"        return False"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_ddb1b302","line":32,"updated":"2015-05-20 10:21:39.000000000","message":"It looks like emc_vmax drivers are always get ignored.","commit_id":"ea9e19fb9ce86e155fe3618ce9ee09d206ae9ad3"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"357c13b7a88a272779d0415b222f4325075c6619","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    if driver:"},{"line_number":42,"context_line":"        for name, clazz in inspect.getmembers(driver):"},{"line_number":43,"context_line":"            if inspect.isclass(clazz):"},{"line_number":44,"context_line":"                if issubclass(clazz, drv.VolumeDriver):"},{"line_number":45,"context_line":"                    not_ported.append(clazz.__name__)"},{"line_number":46,"context_line":"                elif issubclass(clazz, drv.BaseVD):"},{"line_number":47,"context_line":"                    support_matrix[clazz.__name__] \u003d \\"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_9d221b51","line":44,"updated":"2015-05-20 10:21:39.000000000","message":"How about make the if nesting level not so deep?","commit_id":"ea9e19fb9ce86e155fe3618ce9ee09d206ae9ad3"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"357c13b7a88a272779d0415b222f4325075c6619","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                    not_ported.append(clazz.__name__)"},{"line_number":46,"context_line":"                elif issubclass(clazz, drv.BaseVD):"},{"line_number":47,"context_line":"                    support_matrix[clazz.__name__] \u003d \\"},{"line_number":48,"context_line":"                        [a for a in inspect.getmro(clazz)"},{"line_number":49,"context_line":"                            if \"VD\" in a.__name__]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"print (\"Not yet ported drivers: \\n%s\" % not_ported)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_7d1f5f08","line":48,"updated":"2015-05-20 10:21:39.000000000","message":"Change `a` to a more meaningful name?","commit_id":"ea9e19fb9ce86e155fe3618ce9ee09d206ae9ad3"}]}
