)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"5b1946208123a65df82689d685559eadae6c6fa8","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Bug #1135793"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"In addition, we refactor agent scheduler so that we will make"},{"line_number":12,"context_line":"it easier to enalbe plugin to support agent scheduler."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"A small change for dhcp agent schedule: we remove scheduling network"},{"line_number":15,"context_line":"to dhcp agent when creating network so that we can give admin"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAANH%2F%2F%2FJM%3D","line":12,"updated":"2013-02-28 14:48:58.000000000","message":"enable","commit_id":"5c19c363d3ccbaf9f46a28951e2c4e346726c9d0"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"985e0deee470b5681d8ff231eee767323e9b49c9","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Bug #1135793"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"In addition, we refactor agent scheduler so that we will make"},{"line_number":12,"context_line":"it easier to enalbe plugin to support agent scheduler."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"A small change for dhcp agent schedule: we remove scheduling network"},{"line_number":15,"context_line":"to dhcp agent when creating network so that we can give admin"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAANH%2F%2F%2FIM%3D","line":12,"in_reply_to":"AAAANH%2F%2F%2FJM%3D","updated":"2013-02-28 16:31:53.000000000","message":"Done","commit_id":"5c19c363d3ccbaf9f46a28951e2c4e346726c9d0"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"5b1946208123a65df82689d685559eadae6c6fa8","unresolved":false,"context_lines":[{"line_number":11,"context_line":"In addition, we refactor agent scheduler so that we will make"},{"line_number":12,"context_line":"it easier to enalbe plugin to support agent scheduler."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"A small change for dhcp agent schedule: we remove scheduling network"},{"line_number":15,"context_line":"to dhcp agent when creating network so that we can give admin"},{"line_number":16,"context_line":"the chance to allocate the given network to a given dhcp agent after"},{"line_number":17,"context_line":"network creation."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAANH%2F%2F%2FJI%3D","line":14,"updated":"2013-02-28 14:48:58.000000000","message":"schedule -\u003e scheduling","commit_id":"5c19c363d3ccbaf9f46a28951e2c4e346726c9d0"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"985e0deee470b5681d8ff231eee767323e9b49c9","unresolved":false,"context_lines":[{"line_number":11,"context_line":"In addition, we refactor agent scheduler so that we will make"},{"line_number":12,"context_line":"it easier to enalbe plugin to support agent scheduler."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"A small change for dhcp agent schedule: we remove scheduling network"},{"line_number":15,"context_line":"to dhcp agent when creating network so that we can give admin"},{"line_number":16,"context_line":"the chance to allocate the given network to a given dhcp agent after"},{"line_number":17,"context_line":"network creation."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAANH%2F%2F%2FII%3D","line":14,"in_reply_to":"AAAANH%2F%2F%2FJI%3D","updated":"2013-02-28 16:31:53.000000000","message":"Done","commit_id":"5c19c363d3ccbaf9f46a28951e2c4e346726c9d0"}],"quantum/agent/dhcp_agent.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":243,"context_line":"        \"\"\"Handle the port.update.end notification event.\"\"\""},{"line_number":244,"context_line":"        port \u003d DictModel(payload[\u0027port\u0027])"},{"line_number":245,"context_line":"        network \u003d self.cache.get_network_by_id(port.network_id)"},{"line_number":246,"context_line":"        if not network:"},{"line_number":247,"context_line":"            # It may be we have not got the network"},{"line_number":248,"context_line":"            # scheduled before we create the port."},{"line_number":249,"context_line":"            # we simulate a network_create_end RPC msg"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAANH%2F%2F9zU%3D","line":246,"updated":"2013-03-01 06:37:47.000000000","message":"Why just wait until the network gets scheduled?  It will pull the entire allocation list for a network at that time.  The in memory representation will eventually become consistent, so we should not mix operations.","commit_id":"2338153f9a493b24ddc694f29b9a5e8680346de4"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"985e0deee470b5681d8ff231eee767323e9b49c9","unresolved":false,"context_lines":[{"line_number":243,"context_line":"        \"\"\"Handle the port.update.end notification event.\"\"\""},{"line_number":244,"context_line":"        port \u003d DictModel(payload[\u0027port\u0027])"},{"line_number":245,"context_line":"        network \u003d self.cache.get_network_by_id(port.network_id)"},{"line_number":246,"context_line":"        if not network:"},{"line_number":247,"context_line":"            # It may be we have not got the network"},{"line_number":248,"context_line":"            # scheduled before we create the port."},{"line_number":249,"context_line":"            # we simulate a network_create_end RPC msg"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAANH%2F%2F9yE%3D","line":246,"in_reply_to":"AAAANH%2F%2F9zU%3D","updated":"2013-03-01 07:27:28.000000000","message":"we don\u0027t want to schedule network when network is created, which will give admin a chance to do it manually. If admin doesn\u0027t do it before we create a port on this network, we will schedule it then.\n\nLine 254-255 does not run if we have not simulated a network_create_end rpc msg.","commit_id":"2338153f9a493b24ddc694f29b9a5e8680346de4"}],"quantum/api/rpc/agentnotifiers/dhcp_rpc_agent_api.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":65,"context_line":"            if method \u003d\u003d \u0027port_create_end\u0027:"},{"line_number":66,"context_line":"                # we don\u0027t schedule when we create network"},{"line_number":67,"context_line":"                # because we want to give admin a chance to"},{"line_number":68,"context_line":"                # schedule network manually by API"},{"line_number":69,"context_line":"                adminContext \u003d (context.is_admin and"},{"line_number":70,"context_line":"                                context or context.elevated())"},{"line_number":71,"context_line":"                network \u003d plugin.get_network(adminContext, network_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAANH%2F%2F%2FDk%3D","line":68,"updated":"2013-02-28 16:24:16.000000000","message":"I think this is also consistent with scheduling a network only when there are some actual resources on it.\n\nI\u0027m not a big fan of the hardcoded method names, but I don\u0027t want to address this topic now.","commit_id":"5c19c363d3ccbaf9f46a28951e2c4e346726c9d0"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"985e0deee470b5681d8ff231eee767323e9b49c9","unresolved":false,"context_lines":[{"line_number":65,"context_line":"            if method \u003d\u003d \u0027port_create_end\u0027:"},{"line_number":66,"context_line":"                # we don\u0027t schedule when we create network"},{"line_number":67,"context_line":"                # because we want to give admin a chance to"},{"line_number":68,"context_line":"                # schedule network manually by API"},{"line_number":69,"context_line":"                adminContext \u003d (context.is_admin and"},{"line_number":70,"context_line":"                                context or context.elevated())"},{"line_number":71,"context_line":"                network \u003d plugin.get_network(adminContext, network_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAANH%2F%2F%2FAg%3D","line":68,"in_reply_to":"AAAANH%2F%2F%2FDk%3D","updated":"2013-02-28 16:31:53.000000000","message":"Done","commit_id":"5c19c363d3ccbaf9f46a28951e2c4e346726c9d0"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":67,"context_line":"                # because we want to give admin a chance to"},{"line_number":68,"context_line":"                # schedule network manually by API"},{"line_number":69,"context_line":"                adminContext \u003d (context.is_admin and"},{"line_number":70,"context_line":"                                context or context.elevated())"},{"line_number":71,"context_line":"                network \u003d plugin.get_network(adminContext, network_id)"},{"line_number":72,"context_line":"                plugin.schedule_network(adminContext, network)"},{"line_number":73,"context_line":"            for (host, topic) in self._get_dhcp_agents(context, network_id):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAANH%2F%2F9zM%3D","line":70,"updated":"2013-03-01 06:37:47.000000000","message":"These operations are out of order.  If context is None, it will throw and attribute exception.","commit_id":"2338153f9a493b24ddc694f29b9a5e8680346de4"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"985e0deee470b5681d8ff231eee767323e9b49c9","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                # because we want to give admin a chance to"},{"line_number":68,"context_line":"                # schedule network manually by API"},{"line_number":69,"context_line":"                adminContext \u003d (context.is_admin and"},{"line_number":70,"context_line":"                                context or context.elevated())"},{"line_number":71,"context_line":"                network \u003d plugin.get_network(adminContext, network_id)"},{"line_number":72,"context_line":"                plugin.schedule_network(adminContext, network)"},{"line_number":73,"context_line":"            for (host, topic) in self._get_dhcp_agents(context, network_id):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAANH%2F%2F9yU%3D","line":70,"in_reply_to":"AAAANH%2F%2F9zM%3D","updated":"2013-03-01 07:27:28.000000000","message":"Done","commit_id":"2338153f9a493b24ddc694f29b9a5e8680346de4"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"985e0deee470b5681d8ff231eee767323e9b49c9","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                # because we want to give admin a chance to"},{"line_number":68,"context_line":"                # schedule network manually by API"},{"line_number":69,"context_line":"                adminContext \u003d (context.is_admin and"},{"line_number":70,"context_line":"                                context or context.elevated())"},{"line_number":71,"context_line":"                network \u003d plugin.get_network(adminContext, network_id)"},{"line_number":72,"context_line":"                plugin.schedule_network(adminContext, network)"},{"line_number":73,"context_line":"            for (host, topic) in self._get_dhcp_agents(context, network_id):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAANH%2F%2F9xg%3D","line":70,"in_reply_to":"AAAANH%2F%2F9zM%3D","updated":"2013-03-01 07:58:36.000000000","message":"context should not be None, else all the cast, call will raise exception.","commit_id":"2338153f9a493b24ddc694f29b9a5e8680346de4"}],"quantum/db/agentschedulers_db.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"5b1946208123a65df82689d685559eadae6c6fa8","unresolved":false,"context_lines":[{"line_number":362,"context_line":"        original_agent \u003d self.get_agent(context, id)"},{"line_number":363,"context_line":"        # call the next inherited class\u0027s update_agent()"},{"line_number":364,"context_line":"        # which is currently the AgentDbMixin version"},{"line_number":365,"context_line":"        # do this first so agent is already updated in there"},{"line_number":366,"context_line":"        result \u003d super(AgentSchedulerDbMixin, self).update_agent("},{"line_number":367,"context_line":"            context, id, agent)"},{"line_number":368,"context_line":"        agent_data \u003d agent[\u0027agent\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAANH%2F%2F%2FJY%3D","line":365,"updated":"2013-02-28 14:48:58.000000000","message":"It this comment correct? When there are multiple method with a same name, the first method is called if I understand correctly.","commit_id":"5c19c363d3ccbaf9f46a28951e2c4e346726c9d0"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"5b1946208123a65df82689d685559eadae6c6fa8","unresolved":false,"context_lines":[{"line_number":364,"context_line":"        # which is currently the AgentDbMixin version"},{"line_number":365,"context_line":"        # do this first so agent is already updated in there"},{"line_number":366,"context_line":"        result \u003d super(AgentSchedulerDbMixin, self).update_agent("},{"line_number":367,"context_line":"            context, id, agent)"},{"line_number":368,"context_line":"        agent_data \u003d agent[\u0027agent\u0027]"},{"line_number":369,"context_line":"        if (\u0027admin_state_up\u0027 in agent_data and"},{"line_number":370,"context_line":"            original_agent[\u0027admin_state_up\u0027] !\u003d agent_data[\u0027admin_state_up\u0027]):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAANH%2F%2F%2FJU%3D","line":367,"updated":"2013-02-28 14:48:58.000000000","message":"The parent of AgentSchedulerDbMixin is AgentSchedulerPluginBase. Do you want to inherit AgentDbMixin?","commit_id":"5c19c363d3ccbaf9f46a28951e2c4e346726c9d0"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":364,"context_line":"        # which is currently the AgentDbMixin version"},{"line_number":365,"context_line":"        # do this first so agent is already updated in there"},{"line_number":366,"context_line":"        result \u003d super(AgentSchedulerDbMixin, self).update_agent("},{"line_number":367,"context_line":"            context, id, agent)"},{"line_number":368,"context_line":"        agent_data \u003d agent[\u0027agent\u0027]"},{"line_number":369,"context_line":"        if (\u0027admin_state_up\u0027 in agent_data and"},{"line_number":370,"context_line":"            original_agent[\u0027admin_state_up\u0027] !\u003d agent_data[\u0027admin_state_up\u0027]):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAANH%2F%2F%2FFY%3D","line":367,"in_reply_to":"AAAANH%2F%2F%2FJU%3D","updated":"2013-02-28 16:24:16.000000000","message":"This looks correct to me - it should call the first update_agent implementation in MRO","commit_id":"5c19c363d3ccbaf9f46a28951e2c4e346726c9d0"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"985e0deee470b5681d8ff231eee767323e9b49c9","unresolved":false,"context_lines":[{"line_number":364,"context_line":"        # which is currently the AgentDbMixin version"},{"line_number":365,"context_line":"        # do this first so agent is already updated in there"},{"line_number":366,"context_line":"        result \u003d super(AgentSchedulerDbMixin, self).update_agent("},{"line_number":367,"context_line":"            context, id, agent)"},{"line_number":368,"context_line":"        agent_data \u003d agent[\u0027agent\u0027]"},{"line_number":369,"context_line":"        if (\u0027admin_state_up\u0027 in agent_data and"},{"line_number":370,"context_line":"            original_agent[\u0027admin_state_up\u0027] !\u003d agent_data[\u0027admin_state_up\u0027]):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAANH%2F%2F%2FIE%3D","line":367,"in_reply_to":"AAAANH%2F%2F%2FJU%3D","updated":"2013-02-28 16:31:53.000000000","message":"will base AgentDbMixin","commit_id":"5c19c363d3ccbaf9f46a28951e2c4e346726c9d0"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":295,"context_line":"                self, context, created_network)"},{"line_number":296,"context_line":"            if not result:"},{"line_number":297,"context_line":"                LOG.warn(_(\u0027Fail scheduling network %s\u0027), created_network)"},{"line_number":298,"context_line":"            return result"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"    def auto_schedule_networks(self, context, host):"},{"line_number":301,"context_line":"        if self.network_scheduler:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAANH%2F%2F8Mo%3D","line":298,"updated":"2013-03-02 08:32:33.000000000","message":"This change needs to be removed. schedule_network is changed in the parent patch.","commit_id":"717f1972f032908630b0f5ed6dc0a0fdca16e3b3"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"985e0deee470b5681d8ff231eee767323e9b49c9","unresolved":false,"context_lines":[{"line_number":295,"context_line":"                self, context, created_network)"},{"line_number":296,"context_line":"            if not result:"},{"line_number":297,"context_line":"                LOG.warn(_(\u0027Fail scheduling network %s\u0027), created_network)"},{"line_number":298,"context_line":"            return result"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"    def auto_schedule_networks(self, context, host):"},{"line_number":301,"context_line":"        if self.network_scheduler:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAANH%2F%2F8K4%3D","line":298,"in_reply_to":"AAAANH%2F%2F8Mo%3D","updated":"2013-03-02 09:58:12.000000000","message":"Done","commit_id":"717f1972f032908630b0f5ed6dc0a0fdca16e3b3"}],"quantum/plugins/linuxbridge/lb_quantum_plugin.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":227,"context_line":"        self.network_scheduler \u003d importutils.import_object("},{"line_number":228,"context_line":"            cfg.CONF.network_scheduler_driver)"},{"line_number":229,"context_line":"        self.router_scheduler \u003d importutils.import_object("},{"line_number":230,"context_line":"            cfg.CONF.router_scheduler_driver)"},{"line_number":231,"context_line":"        LOG.debug(_(\"Linux Bridge Plugin initialization complete\"))"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    def _setup_rpc(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAANH%2F%2F8LU%3D","line":230,"updated":"2013-03-02 09:21:03.000000000","message":"Needs to register scheduler opts in linuxbridge/common/config.py","commit_id":"717f1972f032908630b0f5ed6dc0a0fdca16e3b3"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"985e0deee470b5681d8ff231eee767323e9b49c9","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        self.network_scheduler \u003d importutils.import_object("},{"line_number":228,"context_line":"            cfg.CONF.network_scheduler_driver)"},{"line_number":229,"context_line":"        self.router_scheduler \u003d importutils.import_object("},{"line_number":230,"context_line":"            cfg.CONF.router_scheduler_driver)"},{"line_number":231,"context_line":"        LOG.debug(_(\"Linux Bridge Plugin initialization complete\"))"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    def _setup_rpc(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAANH%2F%2F8Ks%3D","line":230,"in_reply_to":"AAAANH%2F%2F8LU%3D","updated":"2013-03-02 09:58:12.000000000","message":"Done","commit_id":"717f1972f032908630b0f5ed6dc0a0fdca16e3b3"}],"quantum/plugins/nicira/nicira_nvp_plugin/QuantumPlugin.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":218,"context_line":"                  nvp_sec.NVPSecurityGroups,"},{"line_number":219,"context_line":"                  nvp_meta.NvpMetadataAccess,"},{"line_number":220,"context_line":"                  agents_db.AgentDbMixin,"},{"line_number":221,"context_line":"                  agentschedulers_db.AgentSchedulerDbMixin):"},{"line_number":222,"context_line":"    \"\"\""},{"line_number":223,"context_line":"    NvpPluginV2 is a Quantum plugin that provides L2 Virtual Network"},{"line_number":224,"context_line":"    functionality using NVP."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAANH%2F%2F%2FEo%3D","side":"PARENT","line":221,"updated":"2013-02-28 16:24:16.000000000","message":"I second Akihiro\u0027s thought here.\nThe behaviour of a class should not depend on method resolution order.","commit_id":"c5072518ca69e772836105f7c677dd62ca8150e6"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"985e0deee470b5681d8ff231eee767323e9b49c9","unresolved":false,"context_lines":[{"line_number":218,"context_line":"                  nvp_sec.NVPSecurityGroups,"},{"line_number":219,"context_line":"                  nvp_meta.NvpMetadataAccess,"},{"line_number":220,"context_line":"                  agents_db.AgentDbMixin,"},{"line_number":221,"context_line":"                  agentschedulers_db.AgentSchedulerDbMixin):"},{"line_number":222,"context_line":"    \"\"\""},{"line_number":223,"context_line":"    NvpPluginV2 is a Quantum plugin that provides L2 Virtual Network"},{"line_number":224,"context_line":"    functionality using NVP."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAANH%2F%2F%2FAY%3D","side":"PARENT","line":221,"in_reply_to":"AAAANH%2F%2F%2FEo%3D","updated":"2013-02-28 16:31:53.000000000","message":"Done","commit_id":"c5072518ca69e772836105f7c677dd62ca8150e6"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":1354,"context_line":"            self._extend_port_dict_security_group(context, port_data)"},{"line_number":1355,"context_line":"            self._extend_port_qos_queue(context, port_data)"},{"line_number":1356,"context_line":"        net \u003d self.get_network(context, port_data[\u0027network_id\u0027])"},{"line_number":1357,"context_line":"        self.schedule_network(context, None, net)"},{"line_number":1358,"context_line":"        return port_data"},{"line_number":1359,"context_line":""},{"line_number":1360,"context_line":"    def update_port(self, context, id, port):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAANH%2F%2F%2FD0%3D","side":"PARENT","line":1357,"updated":"2013-02-28 16:24:16.000000000","message":"I guess this are removed for the change in scheduling logic?","commit_id":"c5072518ca69e772836105f7c677dd62ca8150e6"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"985e0deee470b5681d8ff231eee767323e9b49c9","unresolved":false,"context_lines":[{"line_number":1354,"context_line":"            self._extend_port_dict_security_group(context, port_data)"},{"line_number":1355,"context_line":"            self._extend_port_qos_queue(context, port_data)"},{"line_number":1356,"context_line":"        net \u003d self.get_network(context, port_data[\u0027network_id\u0027])"},{"line_number":1357,"context_line":"        self.schedule_network(context, None, net)"},{"line_number":1358,"context_line":"        return port_data"},{"line_number":1359,"context_line":""},{"line_number":1360,"context_line":"    def update_port(self, context, id, port):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAANH%2F%2F%2FAU%3D","side":"PARENT","line":1357,"in_reply_to":"AAAANH%2F%2F%2FD0%3D","updated":"2013-02-28 16:31:53.000000000","message":"Yes","commit_id":"c5072518ca69e772836105f7c677dd62ca8150e6"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"unresolved":false,"context_lines":[{"line_number":956,"context_line":"                                                   net_binding)"},{"line_number":957,"context_line":"            self._extend_network_port_security_dict(context, new_net)"},{"line_number":958,"context_line":"            self._extend_network_dict_l3(context, new_net)"},{"line_number":959,"context_line":"        self.schedule_network(context, network[\u0027network\u0027], new_net)"},{"line_number":960,"context_line":"        return new_net"},{"line_number":961,"context_line":""},{"line_number":962,"context_line":"    def delete_network(self, context, id):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAANH%2F%2F%2Bq8%3D","side":"PARENT","line":959,"updated":"2013-02-28 19:21:54.000000000","message":"I\u0027m confused why both scheduler_networks calls are removed in this file.  \n\nNote: NVP plugin does not expose manual scheduling, and just relies on automatic scheduling.","commit_id":"c5072518ca69e772836105f7c677dd62ca8150e6"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"985e0deee470b5681d8ff231eee767323e9b49c9","unresolved":false,"context_lines":[{"line_number":956,"context_line":"                                                   net_binding)"},{"line_number":957,"context_line":"            self._extend_network_port_security_dict(context, new_net)"},{"line_number":958,"context_line":"            self._extend_network_dict_l3(context, new_net)"},{"line_number":959,"context_line":"        self.schedule_network(context, network[\u0027network\u0027], new_net)"},{"line_number":960,"context_line":"        return new_net"},{"line_number":961,"context_line":""},{"line_number":962,"context_line":"    def delete_network(self, context, id):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAANH%2F%2F%2BGA%3D","side":"PARENT","line":959,"in_reply_to":"AAAANH%2F%2F%2BQ0%3D","updated":"2013-03-01 00:49:19.000000000","message":"Dan, sorry, I failed to see the supported_extension_aliases in this file. I will restore schedule in create port since this plugin does not support agent-scheduler extension at all.","commit_id":"c5072518ca69e772836105f7c677dd62ca8150e6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":956,"context_line":"                                                   net_binding)"},{"line_number":957,"context_line":"            self._extend_network_port_security_dict(context, new_net)"},{"line_number":958,"context_line":"            self._extend_network_dict_l3(context, new_net)"},{"line_number":959,"context_line":"        self.schedule_network(context, network[\u0027network\u0027], new_net)"},{"line_number":960,"context_line":"        return new_net"},{"line_number":961,"context_line":""},{"line_number":962,"context_line":"    def delete_network(self, context, id):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAANH%2F%2F%2BQ0%3D","side":"PARENT","line":959,"in_reply_to":"AAAANH%2F%2F%2Bq8%3D","updated":"2013-02-28 22:57:02.000000000","message":"schedule_network() is moved to api/rpc/agentnotifiers/dhcp_rpc_agent_api.py, but it is hard to understand later. It would be better to move it back here (create_port below). IMO, at least should separate schedule_network() and notification to dhcp-agent. It makes it easy to understand.","commit_id":"c5072518ca69e772836105f7c677dd62ca8150e6"}],"quantum/plugins/openvswitch/ovs_quantum_plugin.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"5b1946208123a65df82689d685559eadae6c6fa8","unresolved":false,"context_lines":[{"line_number":216,"context_line":"                         extraroute_db.ExtraRoute_db_mixin,"},{"line_number":217,"context_line":"                         sg_db_rpc.SecurityGroupServerRpcMixin,"},{"line_number":218,"context_line":"                         agentschedulers_db.AgentSchedulerDbMixin,"},{"line_number":219,"context_line":"                         agents_db.AgentDbMixin):"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    \"\"\"Implement the Quantum abstractions using Open vSwitch."},{"line_number":222,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAANH%2F%2F%2FJk%3D","line":219,"updated":"2013-02-28 14:48:58.000000000","message":"I know you changed the order of these two lines to use update_agent() in AgentSchedulerDbMixin. But it is risky to depends on the order of base classes.\nCan\u0027t AgentSchedulerDbMixin inherit AgentDbMixin?","commit_id":"5c19c363d3ccbaf9f46a28951e2c4e346726c9d0"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"985e0deee470b5681d8ff231eee767323e9b49c9","unresolved":false,"context_lines":[{"line_number":216,"context_line":"                         extraroute_db.ExtraRoute_db_mixin,"},{"line_number":217,"context_line":"                         sg_db_rpc.SecurityGroupServerRpcMixin,"},{"line_number":218,"context_line":"                         agentschedulers_db.AgentSchedulerDbMixin,"},{"line_number":219,"context_line":"                         agents_db.AgentDbMixin):"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    \"\"\"Implement the Quantum abstractions using Open vSwitch."},{"line_number":222,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAANH%2F%2F%2FIg%3D","line":219,"in_reply_to":"AAAANH%2F%2F%2FJk%3D","updated":"2013-02-28 16:31:53.000000000","message":"I will have a try","commit_id":"5c19c363d3ccbaf9f46a28951e2c4e346726c9d0"}]}
