)]}'
{"etc/dhcp_agent.ini":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"03bf0fe1cc2e226289d35f5318c78b43e6d2c103","unresolved":false,"context_lines":[{"line_number":40,"context_line":"#  specific host routes to the DHCP request.  The metadata service will only"},{"line_number":41,"context_line":"#  be activated when the subnet gateway_ip is None.  The guest instance must"},{"line_number":42,"context_line":"#  be configured to request host routes via DHCP"},{"line_number":43,"context_line":"enable_isolated_metadata \u003d True"}],"source_content_type":"text/x-properties","patch_set":2,"id":"AAAAM3%2F%2FKCY%3D","line":43,"updated":"2013-02-05 10:45:24.000000000","message":"I think that he default can be commented out.","commit_id":"0cbde3e0bb59cdde02801da3f5eaaf1895e24bc9"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"424567e312d2489d7a9030e01a9b6345396b31a1","unresolved":false,"context_lines":[{"line_number":40,"context_line":"#  specific host routes to the DHCP request.  The metadata service will only"},{"line_number":41,"context_line":"#  be activated when the subnet gateway_ip is None.  The guest instance must"},{"line_number":42,"context_line":"#  be configured to request host routes via DHCP"},{"line_number":43,"context_line":"enable_isolated_metadata \u003d True"}],"source_content_type":"text/x-properties","patch_set":2,"id":"AAAAM3%2F%2FITs%3D","line":43,"in_reply_to":"AAAAM3%2F%2FJLI%3D","updated":"2013-02-06 05:51:46.000000000","message":"Good to know.  I\u0027ve deactivated it for now.","commit_id":"0cbde3e0bb59cdde02801da3f5eaaf1895e24bc9"},{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"change_message_id":"166867a2d5f92d2cf77f5ce515a6f0a66ea8b26a","unresolved":false,"context_lines":[{"line_number":40,"context_line":"#  specific host routes to the DHCP request.  The metadata service will only"},{"line_number":41,"context_line":"#  be activated when the subnet gateway_ip is None.  The guest instance must"},{"line_number":42,"context_line":"#  be configured to request host routes via DHCP"},{"line_number":43,"context_line":"enable_isolated_metadata \u003d True"}],"source_content_type":"text/x-properties","patch_set":2,"id":"AAAAM3%2F%2FJLI%3D","line":43,"in_reply_to":"AAAAM3%2F%2FKCY%3D","updated":"2013-02-05 19:05:46.000000000","message":"IMO, the default should be false.\nWe have tested host_route function.\nThe dhcp client act very different in different OS.\nIn windows, if the dhcp client send host_route attribute, it will clear the host_route by configured by user. This may lead the problem.","commit_id":"0cbde3e0bb59cdde02801da3f5eaaf1895e24bc9"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"5a78489dd1a23307d45a6b8a9589618dc7d9e296","unresolved":false,"context_lines":[{"line_number":34,"context_line":"#  networks. Setting this value to True will cause the DHCP server to append"},{"line_number":35,"context_line":"#  specific host routes to the DHCP request.  The metadata service will only"},{"line_number":36,"context_line":"#  be activated when the subnet gateway_ip is None.  The guest instance must"},{"line_number":37,"context_line":"#  be configured to request host routes via DHCP"},{"line_number":38,"context_line":"# enable_isolated_metadata \u003d False"}],"source_content_type":"text/x-properties","patch_set":5,"id":"AAAAM3%2F%2FEWE%3D","line":37,"updated":"2013-02-08 04:37:53.000000000","message":"I think it could be helpful to add a line here mentioning that this only works if the client\u0027s dhcp client  supports dhcp code 121.","commit_id":"c28372295b368d2028888b8353dad8d9a3177475"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":34,"context_line":"#  networks. Setting this value to True will cause the DHCP server to append"},{"line_number":35,"context_line":"#  specific host routes to the DHCP request.  The metadata service will only"},{"line_number":36,"context_line":"#  be activated when the subnet gateway_ip is None.  The guest instance must"},{"line_number":37,"context_line":"#  be configured to request host routes via DHCP"},{"line_number":38,"context_line":"# enable_isolated_metadata \u003d False"}],"source_content_type":"text/x-properties","patch_set":5,"id":"AAAAM3%2F%2FEUQ%3D","line":37,"in_reply_to":"AAAAM3%2F%2FEWE%3D","updated":"2013-02-08 05:06:04.000000000","message":"Done","commit_id":"c28372295b368d2028888b8353dad8d9a3177475"}],"quantum/agent/dhcp_agent.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"03bf0fe1cc2e226289d35f5318c78b43e6d2c103","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        for subnet in network.subnets:"},{"line_number":152,"context_line":"            if subnet.enable_dhcp:"},{"line_number":153,"context_line":"                if self.call_driver(\u0027enable\u0027, network):"},{"line_number":154,"context_line":"                    self.enable_isolated_metadata_proxy(network)"},{"line_number":155,"context_line":"                    self.cache.put(network)"},{"line_number":156,"context_line":"                break"},{"line_number":157,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FKCU%3D","line":154,"updated":"2013-02-05 10:45:24.000000000","message":"Should this be called if namespaces are enabled?","commit_id":"0cbde3e0bb59cdde02801da3f5eaaf1895e24bc9"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"424567e312d2489d7a9030e01a9b6345396b31a1","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        for subnet in network.subnets:"},{"line_number":152,"context_line":"            if subnet.enable_dhcp:"},{"line_number":153,"context_line":"                if self.call_driver(\u0027enable\u0027, network):"},{"line_number":154,"context_line":"                    self.enable_isolated_metadata_proxy(network)"},{"line_number":155,"context_line":"                    self.cache.put(network)"},{"line_number":156,"context_line":"                break"},{"line_number":157,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FITk%3D","line":154,"in_reply_to":"AAAAM3%2F%2FKCU%3D","updated":"2013-02-06 05:51:46.000000000","message":"Done","commit_id":"0cbde3e0bb59cdde02801da3f5eaaf1895e24bc9"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"03bf0fe1cc2e226289d35f5318c78b43e6d2c103","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        \"\"\"Disable DHCP for a network known to the agent.\"\"\""},{"line_number":160,"context_line":"        network \u003d self.cache.get_network_by_id(network_id)"},{"line_number":161,"context_line":"        if network:"},{"line_number":162,"context_line":"            self.disable_isolated_metadata_proxy(network)"},{"line_number":163,"context_line":"            if self.call_driver(\u0027disable\u0027, network):"},{"line_number":164,"context_line":"                self.cache.remove(network)"},{"line_number":165,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FKCQ%3D","line":162,"updated":"2013-02-05 10:45:24.000000000","message":"Ditto","commit_id":"0cbde3e0bb59cdde02801da3f5eaaf1895e24bc9"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"424567e312d2489d7a9030e01a9b6345396b31a1","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        \"\"\"Disable DHCP for a network known to the agent.\"\"\""},{"line_number":160,"context_line":"        network \u003d self.cache.get_network_by_id(network_id)"},{"line_number":161,"context_line":"        if network:"},{"line_number":162,"context_line":"            self.disable_isolated_metadata_proxy(network)"},{"line_number":163,"context_line":"            if self.call_driver(\u0027disable\u0027, network):"},{"line_number":164,"context_line":"                self.cache.remove(network)"},{"line_number":165,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FITg%3D","line":162,"in_reply_to":"AAAAM3%2F%2FKCQ%3D","updated":"2013-02-06 05:51:46.000000000","message":"Done","commit_id":"0cbde3e0bb59cdde02801da3f5eaaf1895e24bc9"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"03bf0fe1cc2e226289d35f5318c78b43e6d2c103","unresolved":false,"context_lines":[{"line_number":477,"context_line":"            ip_cidr \u003d \u0027%s/%s\u0027 % (fixed_ip.ip_address, net.prefixlen)"},{"line_number":478,"context_line":"            ip_cidrs.append(ip_cidr)"},{"line_number":479,"context_line":""},{"line_number":480,"context_line":"        if self.conf.enable_isolated_metadata:"},{"line_number":481,"context_line":"            ip_cidrs.append(METADATA_DEFAULT_IP)"},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"        self.driver.init_l3(interface_name, ip_cidrs,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FKCI%3D","line":480,"updated":"2013-02-05 10:45:24.000000000","message":"same as before - if namespaces are enabled","commit_id":"0cbde3e0bb59cdde02801da3f5eaaf1895e24bc9"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"424567e312d2489d7a9030e01a9b6345396b31a1","unresolved":false,"context_lines":[{"line_number":477,"context_line":"            ip_cidr \u003d \u0027%s/%s\u0027 % (fixed_ip.ip_address, net.prefixlen)"},{"line_number":478,"context_line":"            ip_cidrs.append(ip_cidr)"},{"line_number":479,"context_line":""},{"line_number":480,"context_line":"        if self.conf.enable_isolated_metadata:"},{"line_number":481,"context_line":"            ip_cidrs.append(METADATA_DEFAULT_IP)"},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"        self.driver.init_l3(interface_name, ip_cidrs,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FITc%3D","line":480,"in_reply_to":"AAAAM3%2F%2FKCI%3D","updated":"2013-02-06 05:51:46.000000000","message":"Done","commit_id":"0cbde3e0bb59cdde02801da3f5eaaf1895e24bc9"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":42,"context_line":"NS_PREFIX \u003d \u0027qdhcp-\u0027"},{"line_number":43,"context_line":"METADATA_DEFAULT_IP \u003d \u0027169.254.169.254/24\u0027"},{"line_number":44,"context_line":"METADATA_PORT \u003d 80"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FGC0%3D","line":43,"updated":"2013-02-07 10:36:49.000000000","message":"(One question) Why do we need to use /24 as netmask?\n/32 doesn\u0027t work?","commit_id":"22fbf849932a5d03270da70f225d91441b9e1670"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"424567e312d2489d7a9030e01a9b6345396b31a1","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":42,"context_line":"NS_PREFIX \u003d \u0027qdhcp-\u0027"},{"line_number":43,"context_line":"METADATA_DEFAULT_IP \u003d \u0027169.254.169.254/24\u0027"},{"line_number":44,"context_line":"METADATA_PORT \u003d 80"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FFQg%3D","line":43,"in_reply_to":"AAAAM3%2F%2FGC0%3D","updated":"2013-02-07 18:35:06.000000000","message":"Oops.  I used the wrong netmask for the 169.254.x.x network it should be /16.  (A 32 won\u0027t work because it will set the netmask to 255.255.255.255 on the listening socket.)","commit_id":"22fbf849932a5d03270da70f225d91441b9e1670"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"5a78489dd1a23307d45a6b8a9589618dc7d9e296","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":42,"context_line":"NS_PREFIX \u003d \u0027qdhcp-\u0027"},{"line_number":43,"context_line":"METADATA_DEFAULT_IP \u003d \u0027169.254.169.254/16\u0027"},{"line_number":44,"context_line":"METADATA_PORT \u003d 80"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2FEWU%3D","line":43,"updated":"2013-02-08 04:37:53.000000000","message":"should this be /32 ? Or should we say 169.254.0.0/16 instead?","commit_id":"c28372295b368d2028888b8353dad8d9a3177475"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":42,"context_line":"NS_PREFIX \u003d \u0027qdhcp-\u0027"},{"line_number":43,"context_line":"METADATA_DEFAULT_IP \u003d \u0027169.254.169.254/16\u0027"},{"line_number":44,"context_line":"METADATA_PORT \u003d 80"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2FDxs%3D","line":43,"in_reply_to":"AAAAM3%2F%2FETk%3D","updated":"2013-02-08 16:17:40.000000000","message":"That would not work because init_l3() would add 169.254.0.0 as an address on the dhcp interface.","commit_id":"c28372295b368d2028888b8353dad8d9a3177475"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"5a78489dd1a23307d45a6b8a9589618dc7d9e296","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":42,"context_line":"NS_PREFIX \u003d \u0027qdhcp-\u0027"},{"line_number":43,"context_line":"METADATA_DEFAULT_IP \u003d \u0027169.254.169.254/16\u0027"},{"line_number":44,"context_line":"METADATA_PORT \u003d 80"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2FETk%3D","line":43,"in_reply_to":"AAAAM3%2F%2FEUY%3D","updated":"2013-02-08 05:23:00.000000000","message":"nit: in this case i think we should write it as 169.254.0.0/16","commit_id":"c28372295b368d2028888b8353dad8d9a3177475"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":42,"context_line":"NS_PREFIX \u003d \u0027qdhcp-\u0027"},{"line_number":43,"context_line":"METADATA_DEFAULT_IP \u003d \u0027169.254.169.254/16\u0027"},{"line_number":44,"context_line":"METADATA_PORT \u003d 80"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2FEUY%3D","line":43,"in_reply_to":"AAAAM3%2F%2FEWU%3D","updated":"2013-02-08 05:06:04.000000000","message":"The init_l3() method requires the fixed_ips to be in cidr notation.","commit_id":"c28372295b368d2028888b8353dad8d9a3177475"}],"quantum/agent/linux/dhcp.py":[{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"unresolved":false,"context_lines":[{"line_number":319,"context_line":"            host_routes \u003d [\"%s,%s\" % (hr.destination, hr.nexthop)"},{"line_number":320,"context_line":"                           for hr in subnet.host_routes]"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"            # Add host routes for isolated network segments"},{"line_number":323,"context_line":"            enable_metadata \u003d ("},{"line_number":324,"context_line":"                self.conf.enable_isolated_metadata"},{"line_number":325,"context_line":"                and not subnet.gateway_ip"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FFQY%3D","line":322,"updated":"2013-02-07 18:29:28.000000000","message":"How about to have extra config value add_metadata_ip_on_host_route here?\nSome OpenFlow based plugin looks adding flow table to route the metadata server on dhcp server, IMO it good to configure the host_route distribution here even if we launch metadata server on dhcp area.","commit_id":"22fbf849932a5d03270da70f225d91441b9e1670"}]}
