)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"f7f2aee224f8b137f166fe170bda14e268623698","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"The importutils method of loading drivers is still supported, but"},{"line_number":13,"context_line":"it\u0027s deprecated."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"bp stevedore"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Id77ebf7056987ff1d3b9f62fab411845e63c86c3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"9aa53dc9_ecd3a9d3","line":14,"updated":"2015-04-10 08:19:43.000000000","message":"Hi Brant, maybe we can add Closes-Bug: #1402187 here to close the bug when this BP is done, I am not quite sure whether it\u0027s appropriate to do it in this way, but that bug should be closed after your work is done.","commit_id":"467ff1a27b59b75611aa0980675c31c7ccbdd778"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"0791e991c67888f1b7fa0f624d8113be27770cb2","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"The importutils method of loading drivers is still supported, but"},{"line_number":13,"context_line":"it\u0027s deprecated."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"bp stevedore"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Id77ebf7056987ff1d3b9f62fab411845e63c86c3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"7aaa499b_16ed5b8b","line":14,"in_reply_to":"9aa53dc9_ecd3a9d3","updated":"2015-04-12 22:41:50.000000000","message":"https://review.openstack.org/#/c/166622/ takes care of that bug.","commit_id":"467ff1a27b59b75611aa0980675c31c7ccbdd778"}],"keystone/common/manager.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"67059b4b9ad2a9cd08e60bbf2d5b686b1e481387","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                                                 invoke_args\u003dargs)"},{"line_number":65,"context_line":"        return driver_manager.driver"},{"line_number":66,"context_line":"    except RuntimeError:"},{"line_number":67,"context_line":"        # Ignore failure to load driver using stevedore and continue on."},{"line_number":68,"context_line":"        pass"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @versionutils.deprecated(as_of\u003dversionutils.deprecated.LIBERTY,"}],"source_content_type":"text/x-python","patch_set":12,"id":"7aaa499b_e1992021","line":67,"updated":"2015-04-10 16:38:23.000000000","message":"If we failed to load something, shouldn\u0027t the user know?","commit_id":"467ff1a27b59b75611aa0980675c31c7ccbdd778"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"870e81f6ab81a93254072987ce38aa8ca4474627","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                                                 invoke_args\u003dargs)"},{"line_number":65,"context_line":"        return driver_manager.driver"},{"line_number":66,"context_line":"    except RuntimeError:"},{"line_number":67,"context_line":"        # Ignore failure to load driver using stevedore and continue on."},{"line_number":68,"context_line":"        pass"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @versionutils.deprecated(as_of\u003dversionutils.deprecated.LIBERTY,"}],"source_content_type":"text/x-python","patch_set":12,"id":"7aaa499b_96e28b9e","line":67,"in_reply_to":"7aaa499b_73ddd113","updated":"2015-04-12 22:21:02.000000000","message":"The user (administrator) will find out because a deprecated warning will be logged.","commit_id":"467ff1a27b59b75611aa0980675c31c7ccbdd778"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"11480c28afbfcd183f7a86532973887ffe62396a","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                                                 invoke_args\u003dargs)"},{"line_number":65,"context_line":"        return driver_manager.driver"},{"line_number":66,"context_line":"    except RuntimeError:"},{"line_number":67,"context_line":"        # Ignore failure to load driver using stevedore and continue on."},{"line_number":68,"context_line":"        pass"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @versionutils.deprecated(as_of\u003dversionutils.deprecated.LIBERTY,"}],"source_content_type":"text/x-python","patch_set":12,"id":"7aaa499b_e613600c","line":67,"in_reply_to":"7aaa499b_e1992021","updated":"2015-04-12 14:59:55.000000000","message":"++, some info here would be great.","commit_id":"467ff1a27b59b75611aa0980675c31c7ccbdd778"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"4c0a28850875282881dd40f9d2b6bdf565851fe6","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                                                 invoke_args\u003dargs)"},{"line_number":65,"context_line":"        return driver_manager.driver"},{"line_number":66,"context_line":"    except RuntimeError:"},{"line_number":67,"context_line":"        # Ignore failure to load driver using stevedore and continue on."},{"line_number":68,"context_line":"        pass"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @versionutils.deprecated(as_of\u003dversionutils.deprecated.LIBERTY,"}],"source_content_type":"text/x-python","patch_set":12,"id":"7aaa499b_73ddd113","line":67,"in_reply_to":"7aaa499b_e613600c","updated":"2015-04-12 20:07:23.000000000","message":"Is this handling the case where the plugin isn\u0027t available in stevedore? A full import failure will be reported by _load_using_import() if the driver actually fails to import.","commit_id":"467ff1a27b59b75611aa0980675c31c7ccbdd778"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"11480c28afbfcd183f7a86532973887ffe62396a","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    \"\"\""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    namespace \u003d None"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def __init__(self, driver_name):"},{"line_number":97,"context_line":"        self.driver \u003d load_driver(self.namespace, driver_name)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7aaa499b_6674f0fc","line":94,"updated":"2015-04-12 14:59:55.000000000","message":"Any reason we need define namespace with \u0027None\u0027 here? I think it\u0027s enough to initialize it in the inheritance class.","commit_id":"467ff1a27b59b75611aa0980675c31c7ccbdd778"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"0791e991c67888f1b7fa0f624d8113be27770cb2","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    \"\"\""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    namespace \u003d None"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def __init__(self, driver_name):"},{"line_number":97,"context_line":"        self.driver \u003d load_driver(self.namespace, driver_name)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7aaa499b_96904bee","line":94,"in_reply_to":"7aaa499b_6674f0fc","updated":"2015-04-12 22:41:50.000000000","message":"We don\u0027t need to define namespace with None here.","commit_id":"467ff1a27b59b75611aa0980675c31c7ccbdd778"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"19fadb0157034896dfad83219d957d6f04d48712","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    \"\"\""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    namespace \u003d None"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def __init__(self, driver_name):"},{"line_number":97,"context_line":"        self.driver \u003d load_driver(self.namespace, driver_name)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7aaa499b_45b0c0f4","line":94,"in_reply_to":"7aaa499b_96904bee","updated":"2015-04-13 08:46:59.000000000","message":"Can we just remove this line? it seems meaningless.","commit_id":"467ff1a27b59b75611aa0980675c31c7ccbdd778"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"bdb57d7698f6f9e84b21081e980a4d858dbb8b81","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @versionutils.deprecated(as_of\u003dversionutils.deprecated.LIBERTY,"},{"line_number":71,"context_line":"                             in_favor_of\u003d\u0027entrypoints\u0027,"},{"line_number":72,"context_line":"                             what\u003d\u0027direct import of driver\u0027)"},{"line_number":73,"context_line":"    def _load_using_import(driver_name, *args):"},{"line_number":74,"context_line":"        return importutils.import_object(driver_name, *args)"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"7aaa499b_4ce232d7","line":72,"updated":"2015-04-13 03:27:15.000000000","message":"that\u0027s ugly. I don\u0027t see an alternative in versionutils but we should look at fixing this so we can call it as a function.","commit_id":"ab6cf4375e4e6a729654faeb54838344a2f7769d"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"bdb57d7698f6f9e84b21081e980a4d858dbb8b81","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    \"\"\""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    namespace \u003d None"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def __init__(self, driver_name):"},{"line_number":97,"context_line":"        self.driver \u003d load_driver(self.namespace, driver_name)"}],"source_content_type":"text/x-python","patch_set":13,"id":"7aaa499b_ac2096f8","line":94,"updated":"2015-04-13 03:27:15.000000000","message":"bike-shedding: would prefer like plugin_namespace or driver_namespace or stevedore_namespace or something. namespace is a really generic term.\n\nnot a big deal","commit_id":"ab6cf4375e4e6a729654faeb54838344a2f7769d"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"520cc5b073335944c062b817059063b18968bcf2","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    \"\"\""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    namespace \u003d None"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def __init__(self, driver_name):"},{"line_number":97,"context_line":"        self.driver \u003d load_driver(self.namespace, driver_name)"}],"source_content_type":"text/x-python","patch_set":13,"id":"7aaa499b_a560a436","line":94,"in_reply_to":"7aaa499b_ac2096f8","updated":"2015-04-13 08:47:17.000000000","message":"++, acutally, I don\u0027t think this line of code is needed here.","commit_id":"ab6cf4375e4e6a729654faeb54838344a2f7769d"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"607c3d6988d08c92922ae395ac214930344209f1","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    \"\"\""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    namespace \u003d None"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def __init__(self, driver_name):"},{"line_number":97,"context_line":"        self.driver \u003d load_driver(self.namespace, driver_name)"}],"source_content_type":"text/x-python","patch_set":13,"id":"bab921fb_1da27efd","line":94,"in_reply_to":"7aaa499b_ac2096f8","updated":"2015-04-26 13:59:36.000000000","message":"Done","commit_id":"ab6cf4375e4e6a729654faeb54838344a2f7769d"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"3607afe64c1bf50c42179e91e883650d642a2a05","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        return driver_manager.driver"},{"line_number":66,"context_line":"    except RuntimeError:"},{"line_number":67,"context_line":"        # Ignore failure to load driver using stevedore and continue on."},{"line_number":68,"context_line":"        pass"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @versionutils.deprecated(as_of\u003dversionutils.deprecated.LIBERTY,"},{"line_number":71,"context_line":"                             in_favor_of\u003d\u0027entrypoints\u0027,"}],"source_content_type":"text/x-python","patch_set":17,"id":"3acd31a7_0e350af6","line":68,"updated":"2015-05-02 00:59:24.000000000","message":"Because you add the full driver names to setup.cfg they will be found by stevedore. This means that you won\u0027t see a deprecation warning for using the full names for those drivers. \n\nIs this what we want?","commit_id":"6817d66bd298b129bd84d1552e5ed02fa85c1fe2"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"e2d3ad995459219e974fa1a47b50a3df73661c04","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        return driver_manager.driver"},{"line_number":66,"context_line":"    except RuntimeError:"},{"line_number":67,"context_line":"        # Ignore failure to load driver using stevedore and continue on."},{"line_number":68,"context_line":"        pass"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @versionutils.deprecated(as_of\u003dversionutils.deprecated.LIBERTY,"},{"line_number":71,"context_line":"                             in_favor_of\u003d\u0027entrypoints\u0027,"}],"source_content_type":"text/x-python","patch_set":17,"id":"3acd31a7_1f053279","line":68,"in_reply_to":"3acd31a7_0e350af6","updated":"2015-05-02 13:36:00.000000000","message":"For now it will only complain about the custom drivers. The renaming of the keystone drivers is done in https://review.openstack.org/#/c/166622/ .","commit_id":"6817d66bd298b129bd84d1552e5ed02fa85c1fe2"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"ca7b576186a84d7af03a4c481469f0650bf81088","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        return driver_manager.driver"},{"line_number":66,"context_line":"    except RuntimeError:"},{"line_number":67,"context_line":"        # Ignore failure to load driver using stevedore and continue on."},{"line_number":68,"context_line":"        pass"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @versionutils.deprecated(as_of\u003dversionutils.deprecated.LIBERTY,"},{"line_number":71,"context_line":"                             in_favor_of\u003d\u0027entrypoints\u0027,"}],"source_content_type":"text/x-python","patch_set":17,"id":"9af37de9_3b69828c","line":68,"in_reply_to":"3acd31a7_1f053279","updated":"2015-05-10 23:30:49.000000000","message":"ah, i see what you did there.","commit_id":"6817d66bd298b129bd84d1552e5ed02fa85c1fe2"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"0f05a658885e37f09ad53f9b2639e75b4b5fae52","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    \"\"\""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    driver_namespace \u003d None"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def __init__(self, driver_name):"},{"line_number":97,"context_line":"        self.driver \u003d load_driver(self.driver_namespace, driver_name)"}],"source_content_type":"text/x-python","patch_set":17,"id":"3acd31a7_80f7a2f4","line":94,"updated":"2015-05-02 21:15:56.000000000","message":"Isn\u0027t there a way to ensure subclasses will override this method ? Maybe adding a check in the load_driver() method.\n\nIf this isn\u0027t overridden, we get an error when calling stevedore.DriverManager.\n\nSee lines 29-30 of http://paste.openstack.org/show/214745/","commit_id":"6817d66bd298b129bd84d1552e5ed02fa85c1fe2"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"30068cb009d8601260ea7bb59f2ac008973c0e47","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    \"\"\""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    driver_namespace \u003d None"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def __init__(self, driver_name):"},{"line_number":97,"context_line":"        self.driver \u003d load_driver(self.driver_namespace, driver_name)"}],"source_content_type":"text/x-python","patch_set":17,"id":"1aca2d91_9493b0a3","line":94,"updated":"2015-05-06 12:28:01.000000000","message":"abc.abstractproperty maybe?","commit_id":"6817d66bd298b129bd84d1552e5ed02fa85c1fe2"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"ca7b576186a84d7af03a4c481469f0650bf81088","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    \"\"\""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    driver_namespace \u003d None"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def __init__(self, driver_name):"},{"line_number":97,"context_line":"        self.driver \u003d load_driver(self.driver_namespace, driver_name)"}],"source_content_type":"text/x-python","patch_set":17,"id":"9af37de9_5b0326b9","line":94,"in_reply_to":"1aca2d91_9493b0a3","updated":"2015-05-10 23:30:49.000000000","message":"meh, the people who see this are going to be driver writers and they will know as soon as they try and load a driver without this set they did something wrong.","commit_id":"6817d66bd298b129bd84d1552e5ed02fa85c1fe2"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"cd626d3144315a6773d7f33f0c00abd6a0df2eb1","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    \"\"\""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    driver_namespace \u003d None"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def __init__(self, driver_name):"},{"line_number":97,"context_line":"        self.driver \u003d load_driver(self.driver_namespace, driver_name)"}],"source_content_type":"text/x-python","patch_set":17,"id":"9af37de9_69f629d9","line":94,"in_reply_to":"3acd31a7_80f7a2f4","updated":"2015-05-10 15:05:26.000000000","message":"If this isn\u0027t overridden then you\u0027ll get an error when calling stevedore.DriverManager, so it\u0027s already ensured that subclasses set the property.","commit_id":"6817d66bd298b129bd84d1552e5ed02fa85c1fe2"}],"keystone/contrib/revoke/core.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"bdb57d7698f6f9e84b21081e980a4d858dbb8b81","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    \"\"\""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    namespace \u003d \u0027keystone.contrib.revoke\u0027"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def __init__(self):"},{"line_number":76,"context_line":"        super(Manager, self).__init__(CONF.revoke.driver)"}],"source_content_type":"text/x-python","patch_set":13,"id":"7aaa499b_ccce425a","line":73,"updated":"2015-04-13 03:27:15.000000000","message":"as part of the move extensions to core do you think we should drop the contrib from the namespace?","commit_id":"ab6cf4375e4e6a729654faeb54838344a2f7769d"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"520cc5b073335944c062b817059063b18968bcf2","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    \"\"\""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    namespace \u003d \u0027keystone.contrib.revoke\u0027"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def __init__(self):"},{"line_number":76,"context_line":"        super(Manager, self).__init__(CONF.revoke.driver)"}],"source_content_type":"text/x-python","patch_set":13,"id":"7aaa499b_056bd81f","line":73,"in_reply_to":"7aaa499b_ccce425a","updated":"2015-04-13 08:47:17.000000000","message":"this is better in a separated review, keep this temporarily to move forward this patchset.","commit_id":"ab6cf4375e4e6a729654faeb54838344a2f7769d"}],"setup.cfg":[{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"2a47ea8b240025958fae46c710c37da484763081","unresolved":false,"context_lines":[{"line_number":107,"context_line":"    keystone.token.providers.uuid.Provider \u003d keystone.token.providers.uuid:Provider"},{"line_number":108,"context_line":"    keystone.token.providers.pki.Provider \u003d keystone.token.providers.pki:Provider"},{"line_number":109,"context_line":"    keystone.token.providers.pkiz.Provider \u003d keystone.token.providers.pkiz:Provider"},{"line_number":110,"context_line":"    my.package.MyProvider \u003d my.package:MyProvider"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"keystone.trust \u003d"},{"line_number":113,"context_line":"    keystone.trust.backends.sql.Trust \u003d keystone.trust.backends.sql:Trust"}],"source_content_type":"text/x-ttcn-cfg","patch_set":4,"id":"1a6ced46_4c6e33cb","line":110,"updated":"2015-03-22 02:46:53.000000000","message":"Is this a typo?","commit_id":"884d5bb11cf852acd33267e5b1e771b03b143a65"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8a18da50c3e6057891321dcdfaf0709dbde5e1d1","unresolved":false,"context_lines":[{"line_number":107,"context_line":"    keystone.token.providers.uuid.Provider \u003d keystone.token.providers.uuid:Provider"},{"line_number":108,"context_line":"    keystone.token.providers.pki.Provider \u003d keystone.token.providers.pki:Provider"},{"line_number":109,"context_line":"    keystone.token.providers.pkiz.Provider \u003d keystone.token.providers.pkiz:Provider"},{"line_number":110,"context_line":"    my.package.MyProvider \u003d my.package:MyProvider"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"keystone.trust \u003d"},{"line_number":113,"context_line":"    keystone.trust.backends.sql.Trust \u003d keystone.trust.backends.sql:Trust"}],"source_content_type":"text/x-ttcn-cfg","patch_set":4,"id":"1a6ced46_3dc11fe5","line":110,"in_reply_to":"1a6ced46_4c6e33cb","updated":"2015-03-22 14:27:04.000000000","message":"Done. There was a test for it.","commit_id":"884d5bb11cf852acd33267e5b1e771b03b143a65"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"11480c28afbfcd183f7a86532973887ffe62396a","unresolved":false,"context_lines":[{"line_number":118,"context_line":"    keystone.trust.backends.sql.Trust \u003d keystone.trust.backends.sql:Trust"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"keystone.contrib.endpoint_filter \u003d"},{"line_number":121,"context_line":"    keystone.contrib.endpoint_filter.backends.catalog_sql.EndpointFilter \u003d keystone.contrib.endpoint_filter.backends.catalog_sql:EndpointFilter"},{"line_number":122,"context_line":"    keystone.contrib.endpoint_filter.backends.sql.EndpointFilter \u003d keystone.contrib.endpoint_filter.backends.sql:EndpointFilter"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"keystone.contrib.endpoint_policy \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":12,"id":"7aaa499b_46bc546c","line":121,"updated":"2015-04-12 14:59:55.000000000","message":"There is no such a classpath: `keystone.contrib.endpoint_filter.backends.catalog_sql.EndpointFilter`, looks like to me `catalog_sql` is not an ordinary backend.","commit_id":"467ff1a27b59b75611aa0980675c31c7ccbdd778"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"0791e991c67888f1b7fa0f624d8113be27770cb2","unresolved":false,"context_lines":[{"line_number":118,"context_line":"    keystone.trust.backends.sql.Trust \u003d keystone.trust.backends.sql:Trust"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"keystone.contrib.endpoint_filter \u003d"},{"line_number":121,"context_line":"    keystone.contrib.endpoint_filter.backends.catalog_sql.EndpointFilter \u003d keystone.contrib.endpoint_filter.backends.catalog_sql:EndpointFilter"},{"line_number":122,"context_line":"    keystone.contrib.endpoint_filter.backends.sql.EndpointFilter \u003d keystone.contrib.endpoint_filter.backends.sql:EndpointFilter"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"keystone.contrib.endpoint_policy \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":12,"id":"7aaa499b_36b6178b","line":121,"in_reply_to":"7aaa499b_46bc546c","updated":"2015-04-12 22:41:50.000000000","message":"Done. Removed it since it\u0027s supposed to be and already is up in keystone.catalog","commit_id":"467ff1a27b59b75611aa0980675c31c7ccbdd778"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"7a7c914f90b8d5edeb35cbf2be5308b9aebf79f7","unresolved":false,"context_lines":[{"line_number":118,"context_line":"    keystone.trust.backends.sql.Trust \u003d keystone.trust.backends.sql:Trust"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"keystone.contrib.endpoint_filter \u003d"},{"line_number":121,"context_line":"    keystone.contrib.endpoint_filter.backends.catalog_sql.EndpointFilter \u003d keystone.contrib.endpoint_filter.backends.catalog_sql:EndpointFilter"},{"line_number":122,"context_line":"    keystone.contrib.endpoint_filter.backends.sql.EndpointFilter \u003d keystone.contrib.endpoint_filter.backends.sql:EndpointFilter"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"keystone.contrib.endpoint_policy \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":15,"id":"bab921fb_50a33eb2","line":121,"updated":"2015-04-26 07:32:13.000000000","message":"Brant, pls remove this line since it has been already defined in keystone.catalog.\n\nI guess your patch stack is out of date.","commit_id":"f3db68c3a3b216633dfd2310f8420955752dd343"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"1dee52e3d71ff17501824220b957728e45aafdaa","unresolved":false,"context_lines":[{"line_number":118,"context_line":"    keystone.trust.backends.sql.Trust \u003d keystone.trust.backends.sql:Trust"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"keystone.contrib.endpoint_filter \u003d"},{"line_number":121,"context_line":"    keystone.contrib.endpoint_filter.backends.catalog_sql.EndpointFilter \u003d keystone.contrib.endpoint_filter.backends.catalog_sql:EndpointFilter"},{"line_number":122,"context_line":"    keystone.contrib.endpoint_filter.backends.sql.EndpointFilter \u003d keystone.contrib.endpoint_filter.backends.sql:EndpointFilter"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"keystone.contrib.endpoint_policy \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":15,"id":"bab921fb_cbb20394","line":121,"in_reply_to":"bab921fb_50a33eb2","updated":"2015-04-26 13:48:38.000000000","message":"Done","commit_id":"f3db68c3a3b216633dfd2310f8420955752dd343"}]}
