)]}'
{"octavia/amphorae/backends/agent/api_server/plug.py":[{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"70408abcb67ba7978907de7c9707be312fb2298b","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    flags \u003d os.O_WRONLY | os.O_CREAT | os.O_TRUNC"},{"line_number":80,"context_line":"    # mode 00644"},{"line_number":81,"context_line":"    mode \u003d stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IROTH"},{"line_number":82,"context_line":"    with os.fdopen(os.open(name, flags, mode), \u0027w\u0027) as file:"},{"line_number":83,"context_line":"        file.write(\u0027auto lo\\n\u0027)"},{"line_number":84,"context_line":"        file.write(\u0027iface lo inet loopback\\n\u0027)"},{"line_number":85,"context_line":"        if not CONF.amphora_agent.agent_server_network_file:"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_eeea370e","line":82,"range":{"start_line":82,"start_character":55,"end_line":82,"end_character":59},"updated":"2016-07-31 07:39:50.000000000","message":"nit: this shadows a python keyword","commit_id":"9104cbf7fa62e34d256cc2455dde58a940f097e7"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"7c4191220fdd401d8432685b10d824d6a44d8838","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    flags \u003d os.O_WRONLY | os.O_CREAT | os.O_TRUNC"},{"line_number":80,"context_line":"    # mode 00644"},{"line_number":81,"context_line":"    mode \u003d stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IROTH"},{"line_number":82,"context_line":"    with os.fdopen(os.open(name, flags, mode), \u0027w\u0027) as file:"},{"line_number":83,"context_line":"        file.write(\u0027auto lo\\n\u0027)"},{"line_number":84,"context_line":"        file.write(\u0027iface lo inet loopback\\n\u0027)"},{"line_number":85,"context_line":"        if not CONF.amphora_agent.agent_server_network_file:"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_afa796bb","line":82,"range":{"start_line":82,"start_character":55,"end_line":82,"end_character":59},"in_reply_to":"bacf61ea_eeea370e","updated":"2016-07-31 20:40:35.000000000","message":"This is pre-existing code, but ok, I can fix this....","commit_id":"9104cbf7fa62e34d256cc2455dde58a940f097e7"},{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"af013649e53d2c2636aa841a0f907d758cac0d42","unresolved":false,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    with os.fdopen(os.open(interface_file_path, flags, mode),"},{"line_number":173,"context_line":"                   \u0027w\u0027) as text_file:"},{"line_number":174,"context_line":"        if fixed_ips is None:"},{"line_number":175,"context_line":"            text \u003d template_port.render(interface\u003dnetns_interface)"},{"line_number":176,"context_line":"            text_file.write(text)"},{"line_number":177,"context_line":"        else:"},{"line_number":178,"context_line":"            ip_count \u003d -1"},{"line_number":179,"context_line":"            for fixed_ip in fixed_ips:"}],"source_content_type":"text/x-python","patch_set":8,"id":"bacf61ea_8c314b0e","line":176,"range":{"start_line":174,"start_character":0,"end_line":176,"end_character":33},"updated":"2016-08-03 23:29:47.000000000","message":"This is just a nit, but given the changes to the amphora rest driver, it seems like once this code merges, these lines are likely never to be executed, because the vrrp_ip that gets plugged in here by default is likely never to be blank. I could be wrong though, and keeping this code inside a conditional means a newer amphora image can work with an older REST driver (which does seem unlikely to happen, but I suppose isn\u0027t impossible). In any case, it might be worthwhile to put a TODO in to remove this conditional after a release cycle, since it is extremely unlikely that anyone will be running a controller or amphora image that\u0027s so old as to not have the code in this patch set at that point.\n\nIn any case, I don\u0027t feel strongly enough about this to block a merge, and in my tests everything looks to be working as expected.","commit_id":"53ac6823fa3d8b618578b9cf101b53a00d9b75d4"}],"octavia/amphorae/backends/agent/api_server/server.py":[{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"70408abcb67ba7978907de7c9707be312fb2298b","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        assert \u0027mac_address\u0027 in net_info"},{"line_number":120,"context_line":"        vrrp_ip \u003d None"},{"line_number":121,"context_line":"        if \u0027vrrp_ip\u0027 in net_info:"},{"line_number":122,"context_line":"            vrrp_ip \u003d net_info[\u0027vrrp_ip\u0027]"},{"line_number":123,"context_line":"    except Exception:"},{"line_number":124,"context_line":"        raise exceptions.BadRequest(description\u003d\u0027Invalid subnet information\u0027)"},{"line_number":125,"context_line":"    return plug.plug_vip(vip,"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_0e7fcb66","line":122,"updated":"2016-07-31 07:39:50.000000000","message":"vrrp_ip \u003d net_info.get(\u0027vrrp_ip\u0027)","commit_id":"9104cbf7fa62e34d256cc2455dde58a940f097e7"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"6ac1ddd5ec587fb13f2c9350d0f4439d0efaf791","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        assert \u0027mac_address\u0027 in net_info"},{"line_number":120,"context_line":"        vrrp_ip \u003d None"},{"line_number":121,"context_line":"        if \u0027vrrp_ip\u0027 in net_info:"},{"line_number":122,"context_line":"            vrrp_ip \u003d net_info[\u0027vrrp_ip\u0027]"},{"line_number":123,"context_line":"    except Exception:"},{"line_number":124,"context_line":"        raise exceptions.BadRequest(description\u003d\u0027Invalid subnet information\u0027)"},{"line_number":125,"context_line":"    return plug.plug_vip(vip,"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_3b048c48","line":122,"in_reply_to":"bacf61ea_0e7fcb66","updated":"2016-07-31 12:37:36.000000000","message":"Yeah, this is what I wanted to comment on, except I\u0027d go a bit further. This entire pattern can be removed and fixed as below.","commit_id":"9104cbf7fa62e34d256cc2455dde58a940f097e7"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"6ac1ddd5ec587fb13f2c9350d0f4439d0efaf791","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                         net_info[\u0027subnet_cidr\u0027],"},{"line_number":127,"context_line":"                         net_info[\u0027gateway\u0027],"},{"line_number":128,"context_line":"                         net_info[\u0027mac_address\u0027],"},{"line_number":129,"context_line":"                         vrrp_ip)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"@app.route(\u0027/\u0027 + api_server.VERSION + \u0027/plug/network\u0027, methods\u003d[\u0027POST\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_1b01c838","line":129,"updated":"2016-07-31 12:37:36.000000000","message":"Just use this here and it is the same as the whole set of lines above:\nnet_info.get(\u0027vrrp_id\u0027)","commit_id":"9104cbf7fa62e34d256cc2455dde58a940f097e7"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"7c4191220fdd401d8432685b10d824d6a44d8838","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                         net_info[\u0027subnet_cidr\u0027],"},{"line_number":127,"context_line":"                         net_info[\u0027gateway\u0027],"},{"line_number":128,"context_line":"                         net_info[\u0027mac_address\u0027],"},{"line_number":129,"context_line":"                         vrrp_ip)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"@app.route(\u0027/\u0027 + api_server.VERSION + \u0027/plug/network\u0027, methods\u003d[\u0027POST\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_ef0eae8a","line":129,"in_reply_to":"bacf61ea_1b01c838","updated":"2016-07-31 20:40:35.000000000","message":"Done","commit_id":"9104cbf7fa62e34d256cc2455dde58a940f097e7"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"70408abcb67ba7978907de7c9707be312fb2298b","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        assert \u0027mac_address\u0027 in port_info"},{"line_number":138,"context_line":"        fixed_ips \u003d None"},{"line_number":139,"context_line":"        if \u0027fixed_ips\u0027 in port_info:"},{"line_number":140,"context_line":"            fixed_ips \u003d port_info[\u0027fixed_ips\u0027]"},{"line_number":141,"context_line":"    except Exception:"},{"line_number":142,"context_line":"        raise exceptions.BadRequest(description\u003d\u0027Invalid port information\u0027)"},{"line_number":143,"context_line":"    return plug.plug_network(port_info[\u0027mac_address\u0027], fixed_ips)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_2e7a8f77","line":140,"updated":"2016-07-31 07:39:50.000000000","message":"fixed_ips \u003d port_info.get(\u0027fixed_ips\u0027)","commit_id":"9104cbf7fa62e34d256cc2455dde58a940f097e7"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"6ac1ddd5ec587fb13f2c9350d0f4439d0efaf791","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            fixed_ips \u003d port_info[\u0027fixed_ips\u0027]"},{"line_number":141,"context_line":"    except Exception:"},{"line_number":142,"context_line":"        raise exceptions.BadRequest(description\u003d\u0027Invalid port information\u0027)"},{"line_number":143,"context_line":"    return plug.plug_network(port_info[\u0027mac_address\u0027], fixed_ips)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"@app.route(\u0027/\u0027 + api_server.VERSION + \u0027/certificate\u0027, methods\u003d[\u0027PUT\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_7bfa8444","line":143,"updated":"2016-07-31 12:37:36.000000000","message":"port_info.get(\u0027fixed_ips\u0027)","commit_id":"9104cbf7fa62e34d256cc2455dde58a940f097e7"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"7c4191220fdd401d8432685b10d824d6a44d8838","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            fixed_ips \u003d port_info[\u0027fixed_ips\u0027]"},{"line_number":141,"context_line":"    except Exception:"},{"line_number":142,"context_line":"        raise exceptions.BadRequest(description\u003d\u0027Invalid port information\u0027)"},{"line_number":143,"context_line":"    return plug.plug_network(port_info[\u0027mac_address\u0027], fixed_ips)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"@app.route(\u0027/\u0027 + api_server.VERSION + \u0027/certificate\u0027, methods\u003d[\u0027PUT\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_4f289ae2","line":143,"in_reply_to":"bacf61ea_7bfa8444","updated":"2016-07-31 20:40:35.000000000","message":"Done","commit_id":"9104cbf7fa62e34d256cc2455dde58a940f097e7"}],"octavia/amphorae/backends/agent/api_server/templates/plug_port_ethX.conf.j2":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"6ac1ddd5ec587fb13f2c9350d0f4439d0efaf791","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":"#}"},{"line_number":16,"context_line":"# Generated by Octavia agent"},{"line_number":17,"context_line":"auto {{ interface }}"},{"line_number":18,"context_line":"{% if ip_address %}"},{"line_number":19,"context_line":"iface {{ interface }} inet{{ \u00276\u0027 if ipv6 }} static"},{"line_number":20,"context_line":"address {{ ip_address }}"}],"source_content_type":"text/x-jinja2","patch_set":5,"id":"bacf61ea_bb96bced","line":17,"updated":"2016-07-31 12:37:36.000000000","message":"The spacing in this file due to the way jinja works is a little wonky... lots of random newlines in places. I\u0027d love to look at cleaning this up, if only because of the mess it makes of the testing, but I can do that in my ipv6 patch since it touches this anyway.","commit_id":"9104cbf7fa62e34d256cc2455dde58a940f097e7"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"7c4191220fdd401d8432685b10d824d6a44d8838","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":"#}"},{"line_number":16,"context_line":"# Generated by Octavia agent"},{"line_number":17,"context_line":"auto {{ interface }}"},{"line_number":18,"context_line":"{% if ip_address %}"},{"line_number":19,"context_line":"iface {{ interface }} inet{{ \u00276\u0027 if ipv6 }} static"},{"line_number":20,"context_line":"address {{ ip_address }}"}],"source_content_type":"text/x-jinja2","patch_set":5,"id":"bacf61ea_4f41baa8","line":17,"in_reply_to":"bacf61ea_bb96bced","updated":"2016-07-31 20:40:35.000000000","message":"I keep forgetting about the white space stripping \u0027-\u0027 that is required.  I have updated these.","commit_id":"9104cbf7fa62e34d256cc2455dde58a940f097e7"}],"octavia/amphorae/backends/agent/api_server/templates/plug_vip_ethX.conf.j2":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"6ac1ddd5ec587fb13f2c9350d0f4439d0efaf791","unresolved":false,"context_lines":[{"line_number":17,"context_line":"# Generated by Octavia agent"},{"line_number":18,"context_line":"auto {{ interface }} {{ interface }}:0"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"{% if vrrp_ip %}"},{"line_number":21,"context_line":"iface {{ interface }} inet static"},{"line_number":22,"context_line":"address {{ vrrp_ip }}"},{"line_number":23,"context_line":"broadcast {{ broadcast }}"}],"source_content_type":"text/x-jinja2","patch_set":5,"id":"bacf61ea_9b9bf817","line":20,"updated":"2016-07-31 12:37:36.000000000","message":"Same comment about spacing as the other template file.","commit_id":"9104cbf7fa62e34d256cc2455dde58a940f097e7"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"7c4191220fdd401d8432685b10d824d6a44d8838","unresolved":false,"context_lines":[{"line_number":17,"context_line":"# Generated by Octavia agent"},{"line_number":18,"context_line":"auto {{ interface }} {{ interface }}:0"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"{% if vrrp_ip %}"},{"line_number":21,"context_line":"iface {{ interface }} inet static"},{"line_number":22,"context_line":"address {{ vrrp_ip }}"},{"line_number":23,"context_line":"broadcast {{ broadcast }}"}],"source_content_type":"text/x-jinja2","patch_set":5,"id":"bacf61ea_2f3e0628","line":20,"in_reply_to":"bacf61ea_9b9bf817","updated":"2016-07-31 20:40:35.000000000","message":"Done","commit_id":"9104cbf7fa62e34d256cc2455dde58a940f097e7"}],"octavia/amphorae/drivers/haproxy/rest_api_driver.py":[{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"39f89719467c23b02b73140325ab32bc12a59291","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        fixed_ips \u003d []"},{"line_number":140,"context_line":"        for fixed_ip in port.fixed_ips:"},{"line_number":141,"context_line":"            ip \u003d {\u0027ip_address\u0027: fixed_ip.ip_address,"},{"line_number":142,"context_line":"                  \u0027subnet_cidr\u0027: fixed_ip.subnet.cidr}"},{"line_number":143,"context_line":"            fixed_ips.append(ip)"},{"line_number":144,"context_line":"        port_info \u003d {\u0027mac_address\u0027: port.mac_address,"},{"line_number":145,"context_line":"                     \u0027fixed_ips\u0027: fixed_ips}"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_ee9cf7c1","line":142,"updated":"2016-07-31 07:36:27.000000000","message":"do we have access to the subnet.host_routes? if so we should stuff them in here because they will be needed for the static routes.  If they\u0027re not already in then perhaps another patch would be best to add them in.","commit_id":"9104cbf7fa62e34d256cc2455dde58a940f097e7"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"7c4191220fdd401d8432685b10d824d6a44d8838","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        fixed_ips \u003d []"},{"line_number":140,"context_line":"        for fixed_ip in port.fixed_ips:"},{"line_number":141,"context_line":"            ip \u003d {\u0027ip_address\u0027: fixed_ip.ip_address,"},{"line_number":142,"context_line":"                  \u0027subnet_cidr\u0027: fixed_ip.subnet.cidr}"},{"line_number":143,"context_line":"            fixed_ips.append(ip)"},{"line_number":144,"context_line":"        port_info \u003d {\u0027mac_address\u0027: port.mac_address,"},{"line_number":145,"context_line":"                     \u0027fixed_ips\u0027: fixed_ips}"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_0fe6a2af","line":142,"in_reply_to":"bacf61ea_ee9cf7c1","updated":"2016-07-31 20:40:35.000000000","message":"No I don\u0027t see routes in your network data model: https://github.com/openstack/octavia/blob/master/octavia/network/data_models.py\n\nI\u0027m guessing you are talking about the subnetroutes table in neutron db which we don\u0027t pull in.\n\nI am travelling next week, would you be able to create that follow on patch?","commit_id":"9104cbf7fa62e34d256cc2455dde58a940f097e7"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"a7d4d1f51a1d79c60d7a984c00f1d8052a40ab5f","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        fixed_ips \u003d []"},{"line_number":140,"context_line":"        for fixed_ip in port.fixed_ips:"},{"line_number":141,"context_line":"            ip \u003d {\u0027ip_address\u0027: fixed_ip.ip_address,"},{"line_number":142,"context_line":"                  \u0027subnet_cidr\u0027: fixed_ip.subnet.cidr}"},{"line_number":143,"context_line":"            fixed_ips.append(ip)"},{"line_number":144,"context_line":"        port_info \u003d {\u0027mac_address\u0027: port.mac_address,"},{"line_number":145,"context_line":"                     \u0027fixed_ips\u0027: fixed_ips}"}],"source_content_type":"text/x-python","patch_set":7,"id":"bacf61ea_2a127457","line":142,"updated":"2016-07-31 21:00:06.000000000","message":"yeah i can do a follow up patch to have host routes.  It\u0027ll probably make sense to then have a fixed_ip sub dictionary called subnet.  I can do that in my follow up patch if you want, but it might make sense to just do it here.\n\nexample:\n\nip \u003d {\u0027ip_address\u0027: fixed_ip.ip_address,\n      \u0027subnet\u0027: {\u0027cidr\u0027: fixed_ip.subnet.cidr}}\n\nat that point we can probably just make a to_dict method on the network models, if it doesn\u0027t already exist and make this code simpler as well.  I can do that in my PS though.","commit_id":"5a48471e8ce036259da3089887bf80b259b961c5"}],"octavia/tests/functional/amphorae/backend/agent/api_server/test_server.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"6ac1ddd5ec587fb13f2c9350d0f4439d0efaf791","unresolved":false,"context_lines":[{"line_number":553,"context_line":"            handle.write.assert_any_call("},{"line_number":554,"context_line":"                \u0027\\n# Generated by Octavia agent\\n\u0027"},{"line_number":555,"context_line":"                \u0027auto eth\u0027 + test_int_num +"},{"line_number":556,"context_line":"                \u0027\\n\\niface eth\u0027 + test_int_num + \u0027 inet dhcp\\n\\n\u0027)"},{"line_number":557,"context_line":"            mock_check_output.assert_called_with("},{"line_number":558,"context_line":"                [\u0027ip\u0027, \u0027netns\u0027, \u0027exec\u0027, consts.AMPHORA_NAMESPACE,"},{"line_number":559,"context_line":"                 \u0027ifup\u0027, \u0027eth\u0027 + test_int_num], stderr\u003d-2)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_dba1f047","line":556,"updated":"2016-07-31 12:37:36.000000000","message":"This is what I mean by the test code getting really wonky due to spacing. It should not be full of random newlines.\nAlso, I wonder if we need ipv6/ipv4 versions of this test as well, judging by this and the code below that specifies IPs... :/","commit_id":"9104cbf7fa62e34d256cc2455dde58a940f097e7"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"7c4191220fdd401d8432685b10d824d6a44d8838","unresolved":false,"context_lines":[{"line_number":553,"context_line":"            handle.write.assert_any_call("},{"line_number":554,"context_line":"                \u0027\\n# Generated by Octavia agent\\n\u0027"},{"line_number":555,"context_line":"                \u0027auto eth\u0027 + test_int_num +"},{"line_number":556,"context_line":"                \u0027\\n\\niface eth\u0027 + test_int_num + \u0027 inet dhcp\\n\\n\u0027)"},{"line_number":557,"context_line":"            mock_check_output.assert_called_with("},{"line_number":558,"context_line":"                [\u0027ip\u0027, \u0027netns\u0027, \u0027exec\u0027, consts.AMPHORA_NAMESPACE,"},{"line_number":559,"context_line":"                 \u0027ifup\u0027, \u0027eth\u0027 + test_int_num], stderr\u003d-2)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_4f27fac9","line":556,"in_reply_to":"bacf61ea_dba1f047","updated":"2016-07-31 20:40:35.000000000","message":"Done","commit_id":"9104cbf7fa62e34d256cc2455dde58a940f097e7"}],"octavia/tests/functional/amphorae/backend/agent/api_server/test_server_sysvinit.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"6ac1ddd5ec587fb13f2c9350d0f4439d0efaf791","unresolved":false,"context_lines":[{"line_number":660,"context_line":"            handle.write.assert_any_call("},{"line_number":661,"context_line":"                \u0027\\n# Generated by Octavia agent\\n\u0027"},{"line_number":662,"context_line":"                \u0027auto blah blah:0\\n\u0027"},{"line_number":663,"context_line":"                \u0027\\n\\n\u0027"},{"line_number":664,"context_line":"                \u0027iface blah inet dhcp\\n\u0027"},{"line_number":665,"context_line":"                \u0027\\n\\n\u0027"},{"line_number":666,"context_line":"                \u0027iface blah:0 inet static\\n\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_9bc2d8e7","line":663,"updated":"2016-07-31 12:37:36.000000000","message":"Ugh.","commit_id":"9104cbf7fa62e34d256cc2455dde58a940f097e7"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"7c4191220fdd401d8432685b10d824d6a44d8838","unresolved":false,"context_lines":[{"line_number":660,"context_line":"            handle.write.assert_any_call("},{"line_number":661,"context_line":"                \u0027\\n# Generated by Octavia agent\\n\u0027"},{"line_number":662,"context_line":"                \u0027auto blah blah:0\\n\u0027"},{"line_number":663,"context_line":"                \u0027\\n\\n\u0027"},{"line_number":664,"context_line":"                \u0027iface blah inet dhcp\\n\u0027"},{"line_number":665,"context_line":"                \u0027\\n\\n\u0027"},{"line_number":666,"context_line":"                \u0027iface blah:0 inet static\\n\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_8f4732bb","line":663,"in_reply_to":"bacf61ea_9bc2d8e7","updated":"2016-07-31 20:40:35.000000000","message":"Done","commit_id":"9104cbf7fa62e34d256cc2455dde58a940f097e7"}],"octavia/tests/unit/amphorae/drivers/haproxy/test_rest_api_driver.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"6ac1ddd5ec587fb13f2c9350d0f4439d0efaf791","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        self.subnet_info \u003d {\u0027subnet_cidr\u0027: FAKE_CIDR,"},{"line_number":62,"context_line":"                            \u0027gateway\u0027: FAKE_GATEWAY,"},{"line_number":63,"context_line":"                            \u0027mac_address\u0027: \u0027123\u0027,"},{"line_number":64,"context_line":"                            \u0027vrrp_ip\u0027: self.amp.vrrp_ip}"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    @mock.patch(\u0027octavia.common.tls_utils.cert_parser.load_certificates_data\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_dbb8d077","line":63,"updated":"2016-07-31 12:37:36.000000000","message":"I actually wish mac_address was also pulled out as FAKE_MAC_ADDRESS, since we use it everywhere... Again, I\u0027ll do it in my CR if you don\u0027t want to deal with it in this one.","commit_id":"9104cbf7fa62e34d256cc2455dde58a940f097e7"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"7c4191220fdd401d8432685b10d824d6a44d8838","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        self.subnet_info \u003d {\u0027subnet_cidr\u0027: FAKE_CIDR,"},{"line_number":62,"context_line":"                            \u0027gateway\u0027: FAKE_GATEWAY,"},{"line_number":63,"context_line":"                            \u0027mac_address\u0027: \u0027123\u0027,"},{"line_number":64,"context_line":"                            \u0027vrrp_ip\u0027: self.amp.vrrp_ip}"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    @mock.patch(\u0027octavia.common.tls_utils.cert_parser.load_certificates_data\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bacf61ea_af1836d4","line":63,"in_reply_to":"bacf61ea_dbb8d077","updated":"2016-07-31 20:40:35.000000000","message":"Done","commit_id":"9104cbf7fa62e34d256cc2455dde58a940f097e7"}]}
