)]}'
{"octavia/amphorae/drivers/haproxy/ssh_driver.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"24c9755395907a7b8856d658660e831d9322fc54","unresolved":false,"context_lines":[{"line_number":136,"context_line":"            self._connect(hostname\u003damp.lb_network_ip)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"            _, stdout, _ \u003d self.client.exec_command("},{"line_number":139,"context_line":"                \"ip link | grep DOWNN -m 1 | awk \u0027{print $2}\u0027\")"},{"line_number":140,"context_line":"            output \u003d stdout.read()[:-2]"},{"line_number":141,"context_line":"            if not output:"},{"line_number":142,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":1,"id":"3acd31a7_6e6ec997","line":139,"range":{"start_line":139,"start_character":20,"end_line":139,"end_character":24},"updated":"2015-05-01 16:03:01.000000000","message":"Extra N","commit_id":"2b5b616fab57198cd4e10e7da1f9d08939367b03"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"24c9755395907a7b8856d658660e831d9322fc54","unresolved":false,"context_lines":[{"line_number":156,"context_line":"    def post_network_plug(self, amphora):"},{"line_number":157,"context_line":"        self._connect(hostname\u003damphora.lb_network_ip)"},{"line_number":158,"context_line":"        _, stdout, _ \u003d self.client.exec_command("},{"line_number":159,"context_line":"            \"ip link | grep DOWNN -m 1 | awk \u0027{print $2}\u0027\")"},{"line_number":160,"context_line":"        output \u003d stdout.read()[:-2]"},{"line_number":161,"context_line":"        if not output:"},{"line_number":162,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":1,"id":"3acd31a7_4e6d4d97","line":159,"updated":"2015-05-01 16:03:01.000000000","message":"Same","commit_id":"2b5b616fab57198cd4e10e7da1f9d08939367b03"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"b0383b41daf46f6622a5108fcd671f3dad71b90c","unresolved":false,"context_lines":[{"line_number":139,"context_line":"                \"ip link | grep DOWN -m 1 | awk \u0027{print $2}\u0027\")"},{"line_number":140,"context_line":"            output \u003d stdout.read()[:-2]"},{"line_number":141,"context_line":"            if not output:"},{"line_number":142,"context_line":"                continue"},{"line_number":143,"context_line":"            vip \u003d load_balancer.vip.ip_address"},{"line_number":144,"context_line":"            sections \u003d vip.split(\u0027.\u0027)[:3]"},{"line_number":145,"context_line":"            sections.append(\u0027255\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_639ffa50","line":142,"updated":"2015-05-01 20:54:54.000000000","message":"You\u0027ve still got an open client at this point -- you probably want to close it before continuing, as would happen if it made it to the end of the loop. Does paramiko support context managers with its connections?","commit_id":"47d266271f9e5982167a7e33db44d589f42fa74b"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"b0383b41daf46f6622a5108fcd671f3dad71b90c","unresolved":false,"context_lines":[{"line_number":159,"context_line":"            \"ip link | grep DOWN -m 1 | awk \u0027{print $2}\u0027\")"},{"line_number":160,"context_line":"        output \u003d stdout.read()[:-2]"},{"line_number":161,"context_line":"        if not output:"},{"line_number":162,"context_line":"            return"},{"line_number":163,"context_line":"        command \u003d (\"sudo sh -c \u0027echo \\\"\\nauto {0}\\niface {0} inet dhcp\\\" \""},{"line_number":164,"context_line":"                   \"\u003e\u003e /etc/network/interfaces; ifup {0}\u0027\".format(output))"},{"line_number":165,"context_line":"        self.client.exec_command(command)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_83cb3653","line":162,"range":{"start_line":162,"start_character":12,"end_line":162,"end_character":18},"updated":"2015-05-01 20:54:54.000000000","message":"Same as above.","commit_id":"47d266271f9e5982167a7e33db44d589f42fa74b"}]}
