)]}'
{"quantum/plugins/linuxbridge/agent/linuxbridge_quantum_agent.py":[{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"9ec89f78b962da2841edd2383ea8d64d638813be","unresolved":false,"context_lines":[{"line_number":55,"context_line":"BRIDGE_PORT_FS_FOR_DEVICE \u003d BRIDGE_FS + DEVICE_NAME_PLACEHOLDER + \"/brport\""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"class LinuxBridge:"},{"line_number":59,"context_line":"    def __init__(self, interface_mappings, root_helper):"},{"line_number":60,"context_line":"        self.interface_mappings \u003d interface_mappings"},{"line_number":61,"context_line":"        self.root_helper \u003d root_helper"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FmuY%3D","line":58,"updated":"2013-01-14 10:36:40.000000000","message":"If one of purposes of this patch is to do refactoring, I suggest to change this class name into LinuxBridgeOperator or LinuxBridgeManager. LinuxBridge indicates to represent one bridge.","commit_id":"003e82fbeff126ec901027298667829b9377e743"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":55,"context_line":"BRIDGE_PORT_FS_FOR_DEVICE \u003d BRIDGE_FS + DEVICE_NAME_PLACEHOLDER + \"/brport\""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"class LinuxBridge:"},{"line_number":59,"context_line":"    def __init__(self, interface_mappings, root_helper):"},{"line_number":60,"context_line":"        self.interface_mappings \u003d interface_mappings"},{"line_number":61,"context_line":"        self.root_helper \u003d root_helper"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2Fmh0%3D","line":58,"in_reply_to":"AAAAM3%2F%2FmuY%3D","updated":"2013-01-14 14:24:16.000000000","message":"Done","commit_id":"003e82fbeff126ec901027298667829b9377e743"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"9ec89f78b962da2841edd2383ea8d64d638813be","unresolved":false,"context_lines":[{"line_number":493,"context_line":"                                                     consumers)"},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"    def setup_linux_bridge(self, interface_mappings):"},{"line_number":496,"context_line":"        self.linux_br \u003d LinuxBridgeManager(interface_mappings,"},{"line_number":497,"context_line":"                                           self.root_helper)"},{"line_number":498,"context_line":""},{"line_number":499,"context_line":"    def remove_port_binding(self, network_id, interface_id):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fllc%3D","line":496,"updated":"2013-01-14 22:46:04.000000000","message":"linux_br -\u003e br_mgr?","commit_id":"0c58cb7ce44c8618e47c0dccf9512cdcee6a6876"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":493,"context_line":"                                                     consumers)"},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"    def setup_linux_bridge(self, interface_mappings):"},{"line_number":496,"context_line":"        self.linux_br \u003d LinuxBridgeManager(interface_mappings,"},{"line_number":497,"context_line":"                                           self.root_helper)"},{"line_number":498,"context_line":""},{"line_number":499,"context_line":"    def remove_port_binding(self, network_id, interface_id):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FlFc%3D","line":496,"in_reply_to":"AAAAM3%2F%2Fllc%3D","updated":"2013-01-15 07:07:53.000000000","message":"Done","commit_id":"0c58cb7ce44c8618e47c0dccf9512cdcee6a6876"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":493,"context_line":"                                                     consumers)"},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"    def setup_linux_bridge(self, interface_mappings):"},{"line_number":496,"context_line":"        self.br_mng \u003d LinuxBridgeManager(interface_mappings, self.root_helper)"},{"line_number":497,"context_line":""},{"line_number":498,"context_line":"    def remove_port_binding(self, network_id, interface_id):"},{"line_number":499,"context_line":"        bridge_name \u003d self.br_mng.get_bridge_name(network_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FkKk%3D","line":496,"updated":"2013-01-15 20:39:25.000000000","message":"br_mng seems like a strange variable name.  Maybe:\n\nself.br_mgr \u003d","commit_id":"cb2d608565df5c87c01656148fa40a9ddcbd17a1"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":493,"context_line":"                                                     consumers)"},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"    def setup_linux_bridge(self, interface_mappings):"},{"line_number":496,"context_line":"        self.br_mng \u003d LinuxBridgeManager(interface_mappings, self.root_helper)"},{"line_number":497,"context_line":""},{"line_number":498,"context_line":"    def remove_port_binding(self, network_id, interface_id):"},{"line_number":499,"context_line":"        bridge_name \u003d self.br_mng.get_bridge_name(network_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FjaA%3D","line":496,"in_reply_to":"AAAAM3%2F%2FkKk%3D","updated":"2013-01-16 06:57:42.000000000","message":"Done","commit_id":"cb2d608565df5c87c01656148fa40a9ddcbd17a1"}],"quantum/plugins/linuxbridge/lb_quantum_plugin.py":[{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"9ec89f78b962da2841edd2383ea8d64d638813be","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                # Set the port status to UP"},{"line_number":90,"context_line":"                db.set_port_status(port[\u0027id\u0027], q_const.PORT_STATUS_ACTIVE)"},{"line_number":91,"context_line":"            else:"},{"line_number":92,"context_line":"                db.set_port_status(port[\u0027id\u0027], q_const.PORT_STATUS_DOWN)"},{"line_number":93,"context_line":"        else:"},{"line_number":94,"context_line":"            entry \u003d {\u0027device\u0027: device}"},{"line_number":95,"context_line":"            LOG.debug(_(\"%s can not be found in database\"), device)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2Fmyg%3D","line":92,"updated":"2013-01-14 10:36:40.000000000","message":"can we remove some unnecessary DB OPs if it is in good state?","commit_id":"003e82fbeff126ec901027298667829b9377e743"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":89,"context_line":"                # Set the port status to UP"},{"line_number":90,"context_line":"                db.set_port_status(port[\u0027id\u0027], q_const.PORT_STATUS_ACTIVE)"},{"line_number":91,"context_line":"            else:"},{"line_number":92,"context_line":"                db.set_port_status(port[\u0027id\u0027], q_const.PORT_STATUS_DOWN)"},{"line_number":93,"context_line":"        else:"},{"line_number":94,"context_line":"            entry \u003d {\u0027device\u0027: device}"},{"line_number":95,"context_line":"            LOG.debug(_(\"%s can not be found in database\"), device)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2Fmgs%3D","line":92,"in_reply_to":"AAAAM3%2F%2Fmyg%3D","updated":"2013-01-14 14:24:16.000000000","message":"Done","commit_id":"003e82fbeff126ec901027298667829b9377e743"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":107,"context_line":"            entry \u003d {\u0027device\u0027: device,"},{"line_number":108,"context_line":"                     \u0027exists\u0027: True}"},{"line_number":109,"context_line":"            # Set port status to DOWN"},{"line_number":110,"context_line":"            db.set_port_status(port[\u0027id\u0027], q_const.PORT_STATUS_DOWN)"},{"line_number":111,"context_line":"        else:"},{"line_number":112,"context_line":"            entry \u003d {\u0027device\u0027: device,"},{"line_number":113,"context_line":"                     \u0027exists\u0027: False}"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2Fmgk%3D","line":110,"updated":"2013-01-14 14:24:16.000000000","message":"Done","commit_id":"003e82fbeff126ec901027298667829b9377e743"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"9ec89f78b962da2841edd2383ea8d64d638813be","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        LOG.debug(_(\"Device %(device)s up %(agent_id)s\"),"},{"line_number":122,"context_line":"                  locals())"},{"line_number":123,"context_line":"        port \u003d self.get_port_from_device(device)"},{"line_number":124,"context_line":"        if port:"},{"line_number":125,"context_line":"            # Set port status to ACTIVE"},{"line_number":126,"context_line":"            db.set_port_status(port[\u0027id\u0027], q_const.PORT_STATUS_ACTIVE)"},{"line_number":127,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FmwU%3D","line":124,"updated":"2013-01-14 10:36:40.000000000","message":"can we save this db OP if the state is right in port already?","commit_id":"003e82fbeff126ec901027298667829b9377e743"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":121,"context_line":"        LOG.debug(_(\"Device %(device)s up %(agent_id)s\"),"},{"line_number":122,"context_line":"                  locals())"},{"line_number":123,"context_line":"        port \u003d self.get_port_from_device(device)"},{"line_number":124,"context_line":"        if port:"},{"line_number":125,"context_line":"            # Set port status to ACTIVE"},{"line_number":126,"context_line":"            db.set_port_status(port[\u0027id\u0027], q_const.PORT_STATUS_ACTIVE)"},{"line_number":127,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2Fmgo%3D","line":124,"in_reply_to":"AAAAM3%2F%2FmwU%3D","updated":"2013-01-14 14:24:16.000000000","message":"Done","commit_id":"003e82fbeff126ec901027298667829b9377e743"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"9ec89f78b962da2841edd2383ea8d64d638813be","unresolved":false,"context_lines":[{"line_number":515,"context_line":"            self._notify_port_updated(context, port)"},{"line_number":516,"context_line":"            # Set the status as DOWN if necessary"},{"line_number":517,"context_line":"            if not port[\u0027admin_state_up\u0027]:"},{"line_number":518,"context_line":"                db.set_port_status(port[\u0027id\u0027], q_const.PORT_STATUS_DOWN)"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"        return self._extend_port_dict_binding(context, port)"},{"line_number":521,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2Fmyc%3D","line":518,"updated":"2013-01-14 10:36:40.000000000","message":"can we move it into transaction of line 490? and If the admin_state_up, why not change the status directly instead of make the agent send a RPC to plugin?\nok, maybe you need the agent itself tells the plugin when the agent makes the port work. It is fine.","commit_id":"003e82fbeff126ec901027298667829b9377e743"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"9ec89f78b962da2841edd2383ea8d64d638813be","unresolved":false,"context_lines":[{"line_number":520,"context_line":"                context, port.get(ext_sg.SECURITYGROUPS))"},{"line_number":521,"context_line":""},{"line_number":522,"context_line":"        if port_updated:"},{"line_number":523,"context_line":"            self._notify_port_updated(context, port)"},{"line_number":524,"context_line":"            # Set the status as DOWN if necessary"},{"line_number":525,"context_line":"            if not port[\u0027admin_state_up\u0027]:"},{"line_number":526,"context_line":"                db.set_port_status(port[\u0027id\u0027], q_const.PORT_STATUS_DOWN)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Flks%3D","line":523,"updated":"2013-01-14 22:46:04.000000000","message":"how about moving it into the same transaction of line 490 and make sure save DB op at the same time?","commit_id":"0c58cb7ce44c8618e47c0dccf9512cdcee6a6876"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":520,"context_line":"                context, port.get(ext_sg.SECURITYGROUPS))"},{"line_number":521,"context_line":""},{"line_number":522,"context_line":"        if port_updated:"},{"line_number":523,"context_line":"            self._notify_port_updated(context, port)"},{"line_number":524,"context_line":"            # Set the status as DOWN if necessary"},{"line_number":525,"context_line":"            if not port[\u0027admin_state_up\u0027]:"},{"line_number":526,"context_line":"                db.set_port_status(port[\u0027id\u0027], q_const.PORT_STATUS_DOWN)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FlFM%3D","line":523,"in_reply_to":"AAAAM3%2F%2Flks%3D","updated":"2013-01-15 07:07:53.000000000","message":"Done.\nNice idea.","commit_id":"0c58cb7ce44c8618e47c0dccf9512cdcee6a6876"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"9ec89f78b962da2841edd2383ea8d64d638813be","unresolved":false,"context_lines":[{"line_number":507,"context_line":""},{"line_number":508,"context_line":"            # Update the port status if necessary"},{"line_number":509,"context_line":"            if (\u0027admin_state_up\u0027 in port[\u0027port\u0027] and"},{"line_number":510,"context_line":"                not port[\u0027port\u0027][\u0027admin_state_up\u0027]):"},{"line_number":511,"context_line":"                port[\u0027port\u0027][\u0027status\u0027] \u003d q_const.PORT_STATUS_DOWN"},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"            port \u003d super(LinuxBridgePluginV2, self).update_port("}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2Fk%2B8%3D","line":510,"updated":"2013-01-15 09:17:51.000000000","message":"-\u003e if not port[\u0027port\u0027].get(\u0027admin_state_up\u0027, True): ?","commit_id":"9b288aeba9babdbb1820e45b2a30219ad8eeb89b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":507,"context_line":""},{"line_number":508,"context_line":"            # Update the port status if necessary"},{"line_number":509,"context_line":"            if (\u0027admin_state_up\u0027 in port[\u0027port\u0027] and"},{"line_number":510,"context_line":"                not port[\u0027port\u0027][\u0027admin_state_up\u0027]):"},{"line_number":511,"context_line":"                port[\u0027port\u0027][\u0027status\u0027] \u003d q_const.PORT_STATUS_DOWN"},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"            port \u003d super(LinuxBridgePluginV2, self).update_port("}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2Fk9s%3D","line":510,"in_reply_to":"AAAAM3%2F%2Fk%2B8%3D","updated":"2013-01-15 09:38:42.000000000","message":"Done","commit_id":"9b288aeba9babdbb1820e45b2a30219ad8eeb89b"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":86,"context_line":"                     \u0027network_id\u0027: port[\u0027network_id\u0027],"},{"line_number":87,"context_line":"                     \u0027port_id\u0027: port[\u0027id\u0027],"},{"line_number":88,"context_line":"                     \u0027admin_state_up\u0027: port[\u0027admin_state_up\u0027]}"},{"line_number":89,"context_line":"            if port[\u0027admin_state_up\u0027]:"},{"line_number":90,"context_line":"                if port[\u0027status\u0027] !\u003d q_const.PORT_STATUS_ACTIVE:"},{"line_number":91,"context_line":"                    # Set the port status to UP"},{"line_number":92,"context_line":"                    db.set_port_status(port[\u0027id\u0027], q_const.PORT_STATUS_ACTIVE)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FkKE%3D","line":89,"updated":"2013-01-15 20:39:25.000000000","message":"new_status \u003d q_const.PORT_STATUS_ACTIVE if port[\u0027admin_state_up\u0027] else q_const.PORT_STATUS_DOWN\n\nif port[\u0027status\u0027] !\u003d new_status:\n    db.set_port_status(port[\u0027id\u0027], new_status)","commit_id":"cb2d608565df5c87c01656148fa40a9ddcbd17a1"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":86,"context_line":"                     \u0027network_id\u0027: port[\u0027network_id\u0027],"},{"line_number":87,"context_line":"                     \u0027port_id\u0027: port[\u0027id\u0027],"},{"line_number":88,"context_line":"                     \u0027admin_state_up\u0027: port[\u0027admin_state_up\u0027]}"},{"line_number":89,"context_line":"            if port[\u0027admin_state_up\u0027]:"},{"line_number":90,"context_line":"                if port[\u0027status\u0027] !\u003d q_const.PORT_STATUS_ACTIVE:"},{"line_number":91,"context_line":"                    # Set the port status to UP"},{"line_number":92,"context_line":"                    db.set_port_status(port[\u0027id\u0027], q_const.PORT_STATUS_ACTIVE)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FjZ8%3D","line":89,"in_reply_to":"AAAAM3%2F%2FkKE%3D","updated":"2013-01-16 06:57:42.000000000","message":"Done","commit_id":"cb2d608565df5c87c01656148fa40a9ddcbd17a1"}]}
