)]}'
{"neutron/api/extensions.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a64555100006a7701e5d1087bf34299a1fa13d06","unresolved":false,"context_lines":[{"line_number":523,"context_line":"        # TODO(dougwig) - remove this after the service extensions move out"},{"line_number":524,"context_line":"        # While moving the extensions out of neutron into the service repos,"},{"line_number":525,"context_line":"        # don\u0027t double-load the same thing."},{"line_number":526,"context_line":"        loaded \u003d []"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        for path in self.path.split(\u0027:\u0027):"},{"line_number":529,"context_line":"            if os.path.exists(path):"}],"source_content_type":"text/x-python","patch_set":14,"id":"da86d52c_58911298","side":"PARENT","line":526,"updated":"2015-02-03 19:26:46.000000000","message":"Should we also kill loaded now that each extension is to be present in one tree only?","commit_id":"014b4be5688479661c5b185224a1d279f95e4b94"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"fd3b917150f87fc416aa97d8d0755ac20118714f","unresolved":false,"context_lines":[{"line_number":523,"context_line":"        # TODO(dougwig) - remove this after the service extensions move out"},{"line_number":524,"context_line":"        # While moving the extensions out of neutron into the service repos,"},{"line_number":525,"context_line":"        # don\u0027t double-load the same thing."},{"line_number":526,"context_line":"        loaded \u003d []"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        for path in self.path.split(\u0027:\u0027):"},{"line_number":529,"context_line":"            if os.path.exists(path):"}],"source_content_type":"text/x-python","patch_set":14,"id":"da86d52c_f07648a3","side":"PARENT","line":526,"in_reply_to":"da86d52c_0ee830e1","updated":"2015-02-04 10:15:25.000000000","message":"I\u0027m fine either way, though I don\u0027t see huge benefit in having the duplicate detection mechanism now that we don\u0027t have any advanced services in the code.","commit_id":"014b4be5688479661c5b185224a1d279f95e4b94"},{"author":{"_account_id":10980,"name":"Doug Wiegley","email":"dougwig@parkside.io","username":"dougw"},"change_message_id":"30c387c0b09942eefeaf3d2cfac2d019b23f0a1a","unresolved":false,"context_lines":[{"line_number":523,"context_line":"        # TODO(dougwig) - remove this after the service extensions move out"},{"line_number":524,"context_line":"        # While moving the extensions out of neutron into the service repos,"},{"line_number":525,"context_line":"        # don\u0027t double-load the same thing."},{"line_number":526,"context_line":"        loaded \u003d []"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        for path in self.path.split(\u0027:\u0027):"},{"line_number":529,"context_line":"            if os.path.exists(path):"}],"source_content_type":"text/x-python","patch_set":14,"id":"da86d52c_0ee830e1","side":"PARENT","line":526,"in_reply_to":"da86d52c_58911298","updated":"2015-02-03 20:17:54.000000000","message":"It was removed, but then put back in based on a brief discussion with salv in another review. It seems to have merit to load extensions with collisions. What say you?","commit_id":"014b4be5688479661c5b185224a1d279f95e4b94"}],"neutron/common/repos.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a64555100006a7701e5d1087bf34299a1fa13d06","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self):"},{"line_number":42,"context_line":"        self.repos \u003d {}"},{"line_number":43,"context_line":"        for repo, v in self.MODULES.items():"},{"line_number":44,"context_line":"            self.repos[repo] \u003d {}"},{"line_number":45,"context_line":"            self.repos[repo][\u0027mod\u0027] \u003d self._import_or_none(repo)"},{"line_number":46,"context_line":"            self.repos[repo][\u0027ini\u0027] \u003d None"}],"source_content_type":"text/x-python","patch_set":14,"id":"da86d52c_b8d4ce47","line":43,"updated":"2015-02-03 19:26:46.000000000","message":"You does not seem to use \u0027v\u0027. Should you use six.iterkeys() then?","commit_id":"1d4eff2aed2c47a9214f2edeef523ffeb4d763b8"},{"author":{"_account_id":10980,"name":"Doug Wiegley","email":"dougwig@parkside.io","username":"dougw"},"change_message_id":"30c387c0b09942eefeaf3d2cfac2d019b23f0a1a","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self):"},{"line_number":42,"context_line":"        self.repos \u003d {}"},{"line_number":43,"context_line":"        for repo, v in self.MODULES.items():"},{"line_number":44,"context_line":"            self.repos[repo] \u003d {}"},{"line_number":45,"context_line":"            self.repos[repo][\u0027mod\u0027] \u003d self._import_or_none(repo)"},{"line_number":46,"context_line":"            self.repos[repo][\u0027ini\u0027] \u003d None"}],"source_content_type":"text/x-python","patch_set":14,"id":"da86d52c_eeb83ce7","line":43,"in_reply_to":"da86d52c_b8d4ce47","updated":"2015-02-03 20:17:54.000000000","message":"Will fix.","commit_id":"1d4eff2aed2c47a9214f2edeef523ffeb4d763b8"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a64555100006a7701e5d1087bf34299a1fa13d06","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                neutron_dir \u003d \u0027/etc/neutron\u0027"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"            ini \u003d ConfigParser.SafeConfigParser()"},{"line_number":81,"context_line":"            ini_path \u003d \u0027%s/%s.conf\u0027 % (neutron_dir, module)"},{"line_number":82,"context_line":"            if os.path.exists(ini_path):"},{"line_number":83,"context_line":"                ini.read(ini_path)"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"da86d52c_184cfa41","line":81,"updated":"2015-02-03 19:26:46.000000000","message":"nit: use os.path.join.","commit_id":"1d4eff2aed2c47a9214f2edeef523ffeb4d763b8"},{"author":{"_account_id":10980,"name":"Doug Wiegley","email":"dougwig@parkside.io","username":"dougw"},"change_message_id":"30c387c0b09942eefeaf3d2cfac2d019b23f0a1a","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                neutron_dir \u003d \u0027/etc/neutron\u0027"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"            ini \u003d ConfigParser.SafeConfigParser()"},{"line_number":81,"context_line":"            ini_path \u003d \u0027%s/%s.conf\u0027 % (neutron_dir, module)"},{"line_number":82,"context_line":"            if os.path.exists(ini_path):"},{"line_number":83,"context_line":"                ini.read(ini_path)"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"da86d52c_4ec94877","line":81,"in_reply_to":"da86d52c_184cfa41","updated":"2015-02-03 20:17:54.000000000","message":"Will fix.","commit_id":"1d4eff2aed2c47a9214f2edeef523ffeb4d763b8"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"97c8ff525e7fce89a5c64a97c5ee87a79b4e9ecd","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self):"},{"line_number":42,"context_line":"        self.repos \u003d {}"},{"line_number":43,"context_line":"        for repo in self.MODULES.iterkeys():"},{"line_number":44,"context_line":"            self.repos[repo] \u003d {}"},{"line_number":45,"context_line":"            self.repos[repo][\u0027mod\u0027] \u003d self._import_or_none(repo)"},{"line_number":46,"context_line":"            self.repos[repo][\u0027ini\u0027] \u003d None"}],"source_content_type":"text/x-python","patch_set":16,"id":"da86d52c_217b1df6","line":43,"updated":"2015-02-04 19:00:11.000000000","message":"Nit: this change is not really needed.","commit_id":"3cd60de8f5631d714e86b0a7d8c00a688c08083e"}],"neutron/db/migration/cli.py":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"97c8ff525e7fce89a5c64a97c5ee87a79b4e9ecd","unresolved":false,"context_lines":[{"line_number":28,"context_line":"HEAD_FILENAME \u003d \u0027HEAD\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"mods \u003d repos.NeutronModules()"},{"line_number":31,"context_line":"VALID_SERVICES \u003d map(lambda x: mods.alembic_name(x), mods.installed_list())"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"_core_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":16,"id":"da86d52c_34a27dfd","line":31,"updated":"2015-02-04 19:00:11.000000000","message":"The lambda is superfluous here.","commit_id":"3cd60de8f5631d714e86b0a7d8c00a688c08083e"}]}
