)]}'
{"neutron/db/migration/__init__.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"08bfba153c1c435ad02acb94008f0e373e1602f2","unresolved":false,"context_lines":[{"line_number":25,"context_line":"            if plugin in migrate_plugins:"},{"line_number":26,"context_line":"                return True"},{"line_number":27,"context_line":"        else:"},{"line_number":28,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2FBgI%3D","line":28,"updated":"2013-08-09 09:49:41.000000000","message":"short form, same complexity:\n\nany(plugin in migrate_plugins for plugin in active_plugins)\n\nany implementation return when first element of iterable is true\n\nor use set logic:\n\nreturn set(active_plugins) \u0026 set(migrate_plugins)","commit_id":"88426a01816fcfaa9501aebb35f1e1791e4a961e"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"8323e1d0701a08decb885a703e390bc0566f7540","unresolved":false,"context_lines":[{"line_number":25,"context_line":"            if plugin in migrate_plugins:"},{"line_number":26,"context_line":"                return True"},{"line_number":27,"context_line":"        else:"},{"line_number":28,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2B9Y0%3D","line":28,"in_reply_to":"AAAAQn%2F%2FBgI%3D","updated":"2013-08-09 09:59:32.000000000","message":"Last form looks nice, thanks!","commit_id":"88426a01816fcfaa9501aebb35f1e1791e4a961e"}],"neutron/db/migration/alembic_migrations/env.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"08bfba153c1c435ad02acb94008f0e373e1602f2","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"plugin_class_path \u003d neutron_config.core_plugin"},{"line_number":40,"context_line":"active_plugins \u003d [plugin_class_path]"},{"line_number":41,"context_line":"active_plugins +\u003d [plugin for plugin in neutron_config.service_plugins]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"plugin_klass \u003d importutils.import_class(plugin_class_path)"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2FBho%3D","line":41,"updated":"2013-08-09 09:49:41.000000000","message":"is the iteration over neutron_config.service_plugins really needed?","commit_id":"88426a01816fcfaa9501aebb35f1e1791e4a961e"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"8323e1d0701a08decb885a703e390bc0566f7540","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"plugin_class_path \u003d neutron_config.core_plugin"},{"line_number":40,"context_line":"active_plugins \u003d [plugin_class_path]"},{"line_number":41,"context_line":"active_plugins +\u003d [plugin for plugin in neutron_config.service_plugins]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"plugin_klass \u003d importutils.import_class(plugin_class_path)"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2B9Yg%3D","line":41,"in_reply_to":"AAAAQn%2F%2FBho%3D","updated":"2013-08-09 09:59:32.000000000","message":"I guess no :)","commit_id":"88426a01816fcfaa9501aebb35f1e1791e4a961e"}],"neutron/db/migration/alembic_migrations/versions/folsom_initial.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"08bfba153c1c435ad02acb94008f0e373e1602f2","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    upgrade_base()"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    # get active core plugin (always first) in active_plugins list"},{"line_number":72,"context_line":"    active_plugin \u003d active_plugins[0]"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    if active_plugin in L3_CAPABLE:"},{"line_number":75,"context_line":"        common_ext_ops.upgrade_l3()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2FBfU%3D","line":72,"updated":"2013-08-09 09:49:41.000000000","message":"If we eventually merge the blueprint for splitting L2 and L3 we will need to change this again.\nSo perhaps I don\u0027t see a big problem here in iterating over active_plugins. \n\nBut this is a really minor point.","commit_id":"88426a01816fcfaa9501aebb35f1e1791e4a961e"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"8323e1d0701a08decb885a703e390bc0566f7540","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    upgrade_base()"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    # get active core plugin (always first) in active_plugins list"},{"line_number":72,"context_line":"    active_plugin \u003d active_plugins[0]"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    if active_plugin in L3_CAPABLE:"},{"line_number":75,"context_line":"        common_ext_ops.upgrade_l3()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2B9Xk%3D","line":72,"in_reply_to":"AAAAQn%2F%2FBfU%3D","updated":"2013-08-09 09:59:32.000000000","message":"will use set logic in below \u0027if\u0027s","commit_id":"88426a01816fcfaa9501aebb35f1e1791e4a961e"}]}
