)]}'
{"nova/network/l3.py":[{"author":{"_account_id":2170,"name":"Dave Lapsley","email":"david.lapsley@metacloud.com","username":"dlapsley"},"change_message_id":"7914477223371bb75fc58f173baf933a151f6c28","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from nova import log as logging"},{"line_number":22,"context_line":"from nova.network import linux_net"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"LOG \u003d logging.getLogger(\"nova.network.quantum.l3\")"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"FLAGS \u003d flags.FLAGS"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F%2FEI%3D","line":24,"updated":"2012-01-24 13:32:32.000000000","message":"Is it worth adding some LOG statements to the classes in this file?","commit_id":"38c8a28b70beaa0af501c274247ba07b8f609402"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"92488a8e5d50bfc8c1c694f39993d6a94faf6ae1","unresolved":false,"context_lines":[{"line_number":33,"context_line":"           random.randint(0x00, 0xff),"},{"line_number":34,"context_line":"           random.randint(0x00, 0xff)]"},{"line_number":35,"context_line":"    return \u0027:\u0027.join(map(lambda x: \"%02x\" % x, mac))"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class L3Driver(object):"},{"line_number":39,"context_line":"    \"\"\"Abstract class that defines a generic L3 API\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F%2FFw%3D","line":36,"updated":"2012-01-24 09:27:00.000000000","message":"isn\u0027t this just a duplicate of a method in the main manager.py?  I would either get a ref to the network manager and use that method, or move this function into utils.py","commit_id":"38c8a28b70beaa0af501c274247ba07b8f609402"},{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"change_message_id":"6ad91e684f53dadd1df64228f69f708678c28216","unresolved":false,"context_lines":[{"line_number":33,"context_line":"           random.randint(0x00, 0xff),"},{"line_number":34,"context_line":"           random.randint(0x00, 0xff)]"},{"line_number":35,"context_line":"    return \u0027:\u0027.join(map(lambda x: \"%02x\" % x, mac))"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class L3Driver(object):"},{"line_number":39,"context_line":"    \"\"\"Abstract class that defines a generic L3 API\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F%2FDc%3D","line":36,"in_reply_to":"AAAAEH%2F%2F%2FFw%3D","updated":"2012-01-24 14:57:27.000000000","message":"Done","commit_id":"38c8a28b70beaa0af501c274247ba07b8f609402"},{"author":{"_account_id":2170,"name":"Dave Lapsley","email":"david.lapsley@metacloud.com","username":"dlapsley"},"change_message_id":"7914477223371bb75fc58f173baf933a151f6c28","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        linux_net.metadata_forward()"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def is_initialized(self):"},{"line_number":90,"context_line":"        return True"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def initialize_network(self, cidr):"},{"line_number":93,"context_line":"        linux_net.add_snat_rule(cidr)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F%2FEo%3D","line":90,"updated":"2012-01-24 13:32:32.000000000","message":"Does is_initialized() \u003d\u003d True mean initialize() has been called? If so, need a state variable to be set in initilialize() and checked in is_initialized()","commit_id":"38c8a28b70beaa0af501c274247ba07b8f609402"},{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"change_message_id":"6ad91e684f53dadd1df64228f69f708678c28216","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        linux_net.metadata_forward()"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def is_initialized(self):"},{"line_number":90,"context_line":"        return True"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def initialize_network(self, cidr):"},{"line_number":93,"context_line":"        linux_net.add_snat_rule(cidr)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F%2FDY%3D","line":90,"in_reply_to":"AAAAEH%2F%2F%2FEo%3D","updated":"2012-01-24 14:57:27.000000000","message":"Done","commit_id":"38c8a28b70beaa0af501c274247ba07b8f609402"},{"author":{"_account_id":2170,"name":"Dave Lapsley","email":"david.lapsley@metacloud.com","username":"dlapsley"},"change_message_id":"3c1a6fa7f24acbcf7040fff1fc5b6984d059cbd7","unresolved":false,"context_lines":[{"line_number":71,"context_line":"class LinuxNetL3(L3Driver):"},{"line_number":72,"context_line":"    \"\"\"L3 driver that uses linux_net as the backend\"\"\""},{"line_number":73,"context_line":"    def __init__(self):"},{"line_number":74,"context_line":"        self.initialized \u003d False "},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def initialize(self, **kwargs):"},{"line_number":77,"context_line":"        if self.initialized:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAEH%2F%2F%2FBc%3D","line":74,"updated":"2012-01-24 15:33:16.000000000","message":"Minor whitespace issue.","commit_id":"36b0af196d146059f668ed47832faf48cc6dfc51"}],"nova/network/manager.py":[{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"92488a8e5d50bfc8c1c694f39993d6a94faf6ae1","unresolved":false,"context_lines":[{"line_number":230,"context_line":"            if floating_ip.get(\u0027fixed_ip\u0027, None):"},{"line_number":231,"context_line":"                fixed_address \u003d floating_ip[\u0027fixed_ip\u0027][\u0027address\u0027]"},{"line_number":232,"context_line":"                # NOTE(vish): The False here is because we ignore the case"},{"line_number":233,"context_line":"                #             that the ip is already bound."},{"line_number":234,"context_line":"                self.l3driver.add_floating_ip(floating_ip[\u0027address\u0027],"},{"line_number":235,"context_line":"                        fixed_address, floating_ip[\u0027interface\u0027])"},{"line_number":236,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F%2FGI%3D","line":233,"updated":"2012-01-24 09:27:00.000000000","message":"does Vish\u0027s comment here apply to anything anymore? I don\u0027t know what \u0027False\u0027 it is referring to?","commit_id":"38c8a28b70beaa0af501c274247ba07b8f609402"},{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"change_message_id":"6ad91e684f53dadd1df64228f69f708678c28216","unresolved":false,"context_lines":[{"line_number":230,"context_line":"            if floating_ip.get(\u0027fixed_ip\u0027, None):"},{"line_number":231,"context_line":"                fixed_address \u003d floating_ip[\u0027fixed_ip\u0027][\u0027address\u0027]"},{"line_number":232,"context_line":"                # NOTE(vish): The False here is because we ignore the case"},{"line_number":233,"context_line":"                #             that the ip is already bound."},{"line_number":234,"context_line":"                self.l3driver.add_floating_ip(floating_ip[\u0027address\u0027],"},{"line_number":235,"context_line":"                        fixed_address, floating_ip[\u0027interface\u0027])"},{"line_number":236,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F%2FDM%3D","line":233,"in_reply_to":"AAAAEH%2F%2F%2FGI%3D","updated":"2012-01-24 14:57:27.000000000","message":"Done","commit_id":"38c8a28b70beaa0af501c274247ba07b8f609402"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"92488a8e5d50bfc8c1c694f39993d6a94faf6ae1","unresolved":false,"context_lines":[{"line_number":470,"context_line":"        fixed_address \u003d self.db.floating_ip_disassociate(context, address)"},{"line_number":471,"context_line":""},{"line_number":472,"context_line":"        # go go driver time"},{"line_number":473,"context_line":"        self.l3driver.add_floating_ip(address, fixed_address, interface)"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"    @wrap_check_policy"},{"line_number":476,"context_line":"    def get_floating_ip(self, context, id):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F%2FGE%3D","line":473,"updated":"2012-01-24 09:27:00.000000000","message":"this should be remove_floating_ip","commit_id":"38c8a28b70beaa0af501c274247ba07b8f609402"},{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"change_message_id":"6ad91e684f53dadd1df64228f69f708678c28216","unresolved":false,"context_lines":[{"line_number":470,"context_line":"        fixed_address \u003d self.db.floating_ip_disassociate(context, address)"},{"line_number":471,"context_line":""},{"line_number":472,"context_line":"        # go go driver time"},{"line_number":473,"context_line":"        self.l3driver.add_floating_ip(address, fixed_address, interface)"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"    @wrap_check_policy"},{"line_number":476,"context_line":"    def get_floating_ip(self, context, id):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F%2FDI%3D","line":473,"in_reply_to":"AAAAEH%2F%2F%2FGE%3D","updated":"2012-01-24 14:57:27.000000000","message":"Done","commit_id":"38c8a28b70beaa0af501c274247ba07b8f609402"},{"author":{"_account_id":2170,"name":"Dave Lapsley","email":"david.lapsley@metacloud.com","username":"dlapsley"},"change_message_id":"7914477223371bb75fc58f173baf933a151f6c28","unresolved":false,"context_lines":[{"line_number":637,"context_line":"        self.compute_api \u003d compute_api.API()"},{"line_number":638,"context_line":""},{"line_number":639,"context_line":"        if not \"l3_lib\" in kwargs:"},{"line_number":640,"context_line":"            l3_lib \u003d FLAGS.l3_lib"},{"line_number":641,"context_line":"        self.l3driver \u003d utils.import_object(l3_lib)"},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"        super(NetworkManager, self).__init__(service_name\u003d\u0027network\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F%2FEM%3D","line":640,"updated":"2012-01-24 13:32:32.000000000","message":"per Dan\u0027s comment below... is this what you were planning?\n\nelse:\n   l3_lib \u003d kwargs[\u0027l3_lib\u0027]","commit_id":"38c8a28b70beaa0af501c274247ba07b8f609402"},{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"change_message_id":"6ad91e684f53dadd1df64228f69f708678c28216","unresolved":false,"context_lines":[{"line_number":637,"context_line":"        self.compute_api \u003d compute_api.API()"},{"line_number":638,"context_line":""},{"line_number":639,"context_line":"        if not \"l3_lib\" in kwargs:"},{"line_number":640,"context_line":"            l3_lib \u003d FLAGS.l3_lib"},{"line_number":641,"context_line":"        self.l3driver \u003d utils.import_object(l3_lib)"},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"        super(NetworkManager, self).__init__(service_name\u003d\u0027network\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F%2FDA%3D","line":640,"in_reply_to":"AAAAEH%2F%2F%2FEM%3D","updated":"2012-01-24 14:57:27.000000000","message":"Done","commit_id":"38c8a28b70beaa0af501c274247ba07b8f609402"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"92488a8e5d50bfc8c1c694f39993d6a94faf6ae1","unresolved":false,"context_lines":[{"line_number":638,"context_line":""},{"line_number":639,"context_line":"        if not \"l3_lib\" in kwargs:"},{"line_number":640,"context_line":"            l3_lib \u003d FLAGS.l3_lib"},{"line_number":641,"context_line":"        self.l3driver \u003d utils.import_object(l3_lib)"},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"        super(NetworkManager, self).__init__(service_name\u003d\u0027network\u0027,"},{"line_number":644,"context_line":"                                                *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F%2FF8%3D","line":641,"updated":"2012-01-24 09:27:00.000000000","message":"don\u0027t seem to ever handle the ase where l3_lib is in kwargs... was that intended to be used for testing?","commit_id":"38c8a28b70beaa0af501c274247ba07b8f609402"},{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"change_message_id":"6ad91e684f53dadd1df64228f69f708678c28216","unresolved":false,"context_lines":[{"line_number":638,"context_line":""},{"line_number":639,"context_line":"        if not \"l3_lib\" in kwargs:"},{"line_number":640,"context_line":"            l3_lib \u003d FLAGS.l3_lib"},{"line_number":641,"context_line":"        self.l3driver \u003d utils.import_object(l3_lib)"},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"        super(NetworkManager, self).__init__(service_name\u003d\u0027network\u0027,"},{"line_number":644,"context_line":"                                                *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F%2FDE%3D","line":641,"in_reply_to":"AAAAEH%2F%2F%2FF8%3D","updated":"2012-01-24 14:57:27.000000000","message":"Done","commit_id":"38c8a28b70beaa0af501c274247ba07b8f609402"},{"author":{"_account_id":2170,"name":"Dave Lapsley","email":"david.lapsley@metacloud.com","username":"dlapsley"},"change_message_id":"7914477223371bb75fc58f173baf933a151f6c28","unresolved":false,"context_lines":[{"line_number":1569,"context_line":"        \"\"\""},{"line_number":1570,"context_line":"        super(FlatDHCPManager, self).init_host()"},{"line_number":1571,"context_line":"        self.init_host_floating_ips()"},{"line_number":1572,"context_line":"        self.l3driver.initialize()"},{"line_number":1573,"context_line":""},{"line_number":1574,"context_line":"    def _setup_network(self, context, network_ref):"},{"line_number":1575,"context_line":"        \"\"\"Sets up network on this host.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F%2FEk%3D","line":1572,"updated":"2012-01-24 13:32:32.000000000","message":"In old version, init_host() and ensure_metadata_ip() calls occur before FlatDHCPManager.init_host() with metadata_forward() occurring after. Was there a reason for this?\n\nNew version groups all of the functionality into the l3driver.initialize() call.","commit_id":"38c8a28b70beaa0af501c274247ba07b8f609402"},{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"change_message_id":"6ad91e684f53dadd1df64228f69f708678c28216","unresolved":false,"context_lines":[{"line_number":1569,"context_line":"        \"\"\""},{"line_number":1570,"context_line":"        super(FlatDHCPManager, self).init_host()"},{"line_number":1571,"context_line":"        self.init_host_floating_ips()"},{"line_number":1572,"context_line":"        self.l3driver.initialize()"},{"line_number":1573,"context_line":""},{"line_number":1574,"context_line":"    def _setup_network(self, context, network_ref):"},{"line_number":1575,"context_line":"        \"\"\"Sets up network on this host.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F%2FC8%3D","line":1572,"in_reply_to":"AAAAEH%2F%2F%2FEk%3D","updated":"2012-01-24 14:57:27.000000000","message":"I don\u0027t think the grouping matters -- init_host_floating_ips doesn\u0027t do much, but I do think we need to initialize() before calling that.  I\u0027ll change it.","commit_id":"38c8a28b70beaa0af501c274247ba07b8f609402"},{"author":{"_account_id":2170,"name":"Dave Lapsley","email":"david.lapsley@metacloud.com","username":"dlapsley"},"change_message_id":"7914477223371bb75fc58f173baf933a151f6c28","unresolved":false,"context_lines":[{"line_number":1617,"context_line":"        self.l3driver.initialize()"},{"line_number":1618,"context_line":""},{"line_number":1619,"context_line":"        NetworkManager.init_host(self)"},{"line_number":1620,"context_line":"        self.init_host_floating_ips()"},{"line_number":1621,"context_line":""},{"line_number":1622,"context_line":"    def allocate_fixed_ip(self, context, instance_id, network, **kwargs):"},{"line_number":1623,"context_line":"        \"\"\"Gets a fixed ip from the pool.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F%2FEg%3D","line":1620,"updated":"2012-01-24 13:32:32.000000000","message":"Same comment as above. Is there a reason self.driver.metadata_forward() is called after this in the previous version. If so, need to split that out of l3driver.initialize().","commit_id":"38c8a28b70beaa0af501c274247ba07b8f609402"},{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"change_message_id":"6ad91e684f53dadd1df64228f69f708678c28216","unresolved":false,"context_lines":[{"line_number":1617,"context_line":"        self.l3driver.initialize()"},{"line_number":1618,"context_line":""},{"line_number":1619,"context_line":"        NetworkManager.init_host(self)"},{"line_number":1620,"context_line":"        self.init_host_floating_ips()"},{"line_number":1621,"context_line":""},{"line_number":1622,"context_line":"    def allocate_fixed_ip(self, context, instance_id, network, **kwargs):"},{"line_number":1623,"context_line":"        \"\"\"Gets a fixed ip from the pool.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F%2FC0%3D","line":1620,"in_reply_to":"AAAAEH%2F%2F%2FEg%3D","updated":"2012-01-24 14:57:27.000000000","message":"it doesn\u0027t seem like the rules are connected so I don\u0027t think the ordering/grouping matters here..","commit_id":"38c8a28b70beaa0af501c274247ba07b8f609402"},{"author":{"_account_id":2170,"name":"Dave Lapsley","email":"david.lapsley@metacloud.com","username":"dlapsley"},"change_message_id":"3c1a6fa7f24acbcf7040fff1fc5b6984d059cbd7","unresolved":false,"context_lines":[{"line_number":634,"context_line":"        self.network_api \u003d network_api.API()"},{"line_number":635,"context_line":"        self.compute_api \u003d compute_api.API()"},{"line_number":636,"context_line":""},{"line_number":637,"context_line":"        l3_lib \u003d kwargs.get(\"l3_lib\", FLAGS.l3_lib)"},{"line_number":638,"context_line":"        self.l3driver \u003d utils.import_object(l3_lib)"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"        super(NetworkManager, self).__init__(service_name\u003d\u0027network\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAEH%2F%2F%2FBY%3D","line":637,"updated":"2012-01-24 15:33:16.000000000","message":"Do we need to add a check for None or empty string on l3_lib?","commit_id":"36b0af196d146059f668ed47832faf48cc6dfc51"}],"nova/network/quantum/manager.py":[{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"92488a8e5d50bfc8c1c694f39993d6a94faf6ae1","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        self.l3driver.initialize()"},{"line_number":99,"context_line":"        # .. and for each network"},{"line_number":100,"context_line":"        for c in cidrs:"},{"line_number":101,"context_line":"            self.l3driver.initialize_network(c)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def _get_nova_id(self, instance\u003dNone):"},{"line_number":104,"context_line":"        # When creating the network we need to pass in an identifier for"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F%2FFk%3D","line":101,"updated":"2012-01-24 09:27:00.000000000","message":"these calls to initialize_network will add a lot of entries to the snat chain, but my understanding is that those are redundant, given the fact the the call above to l3driver.initialize() added an snat rule for the entire fixed ip range.  Is that correct?  The same could probably be said for the initialize_network() calls below.  I think its still makes sense to call initialize_network() here, but perhaps the linux_net implementation of that should be empty, rather than setting up an snat rule?","commit_id":"38c8a28b70beaa0af501c274247ba07b8f609402"},{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"change_message_id":"6ad91e684f53dadd1df64228f69f708678c28216","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        self.l3driver.initialize()"},{"line_number":99,"context_line":"        # .. and for each network"},{"line_number":100,"context_line":"        for c in cidrs:"},{"line_number":101,"context_line":"            self.l3driver.initialize_network(c)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def _get_nova_id(self, instance\u003dNone):"},{"line_number":104,"context_line":"        # When creating the network we need to pass in an identifier for"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F%2FCw%3D","line":101,"in_reply_to":"AAAAEH%2F%2F%2FFk%3D","updated":"2012-01-24 14:57:27.000000000","message":"Good point.. I\u0027ll make it empty.","commit_id":"38c8a28b70beaa0af501c274247ba07b8f609402"},{"author":{"_account_id":447,"name":"dan wendlandt","email":"dan@nicira.com","username":"danwent"},"change_message_id":"92488a8e5d50bfc8c1c694f39993d6a94faf6ae1","unresolved":false,"context_lines":[{"line_number":353,"context_line":"                    quantum_net_id, interface_id)"},{"line_number":354,"context_line":"            if not port:  # No dhcp server has been started"},{"line_number":355,"context_line":"                self.l3driver.initialize_gateway(network_ref)"},{"line_number":356,"context_line":"                dev \u003d self.driver.get_dev(network_ref)"},{"line_number":357,"context_line":"                LOG.debug(\"Intializing DHCP for network: %s\" %"},{"line_number":358,"context_line":"                    network_ref)"},{"line_number":359,"context_line":"                self.q_conn.create_and_attach_port(q_tenant_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F%2FFc%3D","line":356,"updated":"2012-01-24 09:27:00.000000000","message":"Does this logic work correctly if the host is restarted + the local ovs ports are wiped away?  I am wondering if we could get in a state where the the quantum port exists, but the underlying OVS device + dnsmasq process need to be recreated, but won\u0027t be.  I wonder if we need to separate out the creation of the quantum port from the underlying creation of the OVS interface.","commit_id":"38c8a28b70beaa0af501c274247ba07b8f609402"},{"author":{"_account_id":233,"name":"Brad Hall","email":"brad@nicira.com","username":"bgh"},"change_message_id":"6ad91e684f53dadd1df64228f69f708678c28216","unresolved":false,"context_lines":[{"line_number":353,"context_line":"                    quantum_net_id, interface_id)"},{"line_number":354,"context_line":"            if not port:  # No dhcp server has been started"},{"line_number":355,"context_line":"                self.l3driver.initialize_gateway(network_ref)"},{"line_number":356,"context_line":"                dev \u003d self.driver.get_dev(network_ref)"},{"line_number":357,"context_line":"                LOG.debug(\"Intializing DHCP for network: %s\" %"},{"line_number":358,"context_line":"                    network_ref)"},{"line_number":359,"context_line":"                self.q_conn.create_and_attach_port(q_tenant_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAEH%2F%2F%2FCs%3D","line":356,"in_reply_to":"AAAAEH%2F%2F%2FFc%3D","updated":"2012-01-24 14:57:27.000000000","message":"I\u0027m not sure.. I\u0027ll do some testing today and see what happens.","commit_id":"38c8a28b70beaa0af501c274247ba07b8f609402"},{"author":{"_account_id":385,"name":"Jason Kölker","email":"jason@koelker.net","username":"jason-koelker"},"change_message_id":"9608a308dd02010ef31b95debe92fdec123d1e45","unresolved":false,"context_lines":[{"line_number":105,"context_line":"                cidrs.append(net[\u0027cidr\u0027])"},{"line_number":106,"context_line":"        # .. and for each network"},{"line_number":107,"context_line":"        for c in cidrs:"},{"line_number":108,"context_line":"            self.l3driver.initialize_network(c)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def _get_nova_id(self, instance\u003dNone):"},{"line_number":111,"context_line":"        # When creating the network we need to pass in an identifier for"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAEH%2F%2F%2BM4%3D","line":108,"updated":"2012-01-25 16:43:28.000000000","message":"Instead of building up cidrs to iterate over it, this could just be collapsed into the previous loop. Not a biggie though as I suspect there are future plans for cidrs.","commit_id":"21e698d2a18400139ec3ac570493a1dee5e6e41b"}]}
