)]}'
{"tempest/common/utils/linux/remote_client.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"f23923f97296cb598210c1dfa1c818864ff09d2a","unresolved":false,"context_lines":[{"line_number":258,"context_line":"        :protocol: the protocol used by the server. TCP by default."},{"line_number":259,"context_line":"        \"\"\""},{"line_number":260,"context_line":"        udp \u003d \u0027-u\u0027 if protocol.lower() \u003d\u003d \u0027udp\u0027 else \u0027\u0027"},{"line_number":261,"context_line":"        cmd \u003d \"sudo nc %(udp)s -p %(port)s -lk -e echo foolish \u0026\" % {"},{"line_number":262,"context_line":"            \u0027udp\u0027: udp, \u0027port\u0027: port}"},{"line_number":263,"context_line":"        return self.exec_command(cmd)"},{"line_number":264,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3a461143_28e4cd0b","line":261,"range":{"start_line":261,"start_character":55,"end_line":261,"end_character":62},"updated":"2017-02-02 14:50:17.000000000","message":"humm, I am not against this message ;-)","commit_id":"a389d4c3e1339679f4da40303abc5fb70a0967d3"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"f23923f97296cb598210c1dfa1c818864ff09d2a","unresolved":false,"context_lines":[{"line_number":286,"context_line":"                command\u003dcmd, exit_status\u003d0, stdout\u003dresponse, stderr\u003d\u0027\u0027)"},{"line_number":287,"context_line":"        return response"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"    def icmp_check(self, host, nic\u003dNone):"},{"line_number":290,"context_line":"        \"\"\"Wrapper for icmp connectivity checks\"\"\""},{"line_number":291,"context_line":"        return self.ping_host(host, nic\u003dnic)"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    def udp_check(self, host, **kwargs):"},{"line_number":294,"context_line":"        \"\"\"Wrapper for udp connectivity checks.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"3a461143_a830bd9f","line":291,"range":{"start_line":289,"start_character":0,"end_line":291,"end_character":44},"updated":"2017-02-02 14:50:17.000000000","message":"I feel this is just a wrapper without adding more merit..","commit_id":"a389d4c3e1339679f4da40303abc5fb70a0967d3"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"claudiu.belu@canonical.com","username":"claudiub"},"change_message_id":"6cdbb01e396474932170982030b9b89b9278acc3","unresolved":false,"context_lines":[{"line_number":286,"context_line":"                command\u003dcmd, exit_status\u003d0, stdout\u003dresponse, stderr\u003d\u0027\u0027)"},{"line_number":287,"context_line":"        return response"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"    def icmp_check(self, host, nic\u003dNone):"},{"line_number":290,"context_line":"        \"\"\"Wrapper for icmp connectivity checks\"\"\""},{"line_number":291,"context_line":"        return self.ping_host(host, nic\u003dnic)"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    def udp_check(self, host, **kwargs):"},{"line_number":294,"context_line":"        \"\"\"Wrapper for udp connectivity checks.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a430d35_21ac888b","line":291,"range":{"start_line":289,"start_character":0,"end_line":291,"end_character":44},"in_reply_to":"3a461143_a830bd9f","updated":"2017-02-07 14:17:05.000000000","message":"True. the only reason this is here, is because this is called like this: %(protocol)s_check, where protocol is given in the config option. same for udp and tcp.","commit_id":"a389d4c3e1339679f4da40303abc5fb70a0967d3"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"f23923f97296cb598210c1dfa1c818864ff09d2a","unresolved":false,"context_lines":[{"line_number":299,"context_line":"    def tcp_check(self, host, **kwargs):"},{"line_number":300,"context_line":"        \"\"\"Wrapper for tcp connectivity checks.\"\"\""},{"line_number":301,"context_line":"        kwargs.pop(\u0027nic\u0027, None)"},{"line_number":302,"context_line":"        return self.nc_host(host, **kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a461143_489f595f","line":302,"range":{"start_line":302,"start_character":28,"end_line":302,"end_character":34},"updated":"2017-02-02 14:50:17.000000000","message":"Why this method doesn\u0027t specify foolish as expected_response?\nThe message is hardcoded on a server side, and that seems necessary.","commit_id":"a389d4c3e1339679f4da40303abc5fb70a0967d3"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"claudiu.belu@canonical.com","username":"claudiub"},"change_message_id":"6cdbb01e396474932170982030b9b89b9278acc3","unresolved":false,"context_lines":[{"line_number":299,"context_line":"    def tcp_check(self, host, **kwargs):"},{"line_number":300,"context_line":"        \"\"\"Wrapper for tcp connectivity checks.\"\"\""},{"line_number":301,"context_line":"        kwargs.pop(\u0027nic\u0027, None)"},{"line_number":302,"context_line":"        return self.nc_host(host, **kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a430d35_21fba848","line":302,"range":{"start_line":302,"start_character":28,"end_line":302,"end_character":34},"in_reply_to":"3a461143_489f595f","updated":"2017-02-07 14:17:05.000000000","message":"So, the reason I have to do an explicit check for UDP, is simply because UDP packets do not expect a response. Meaning that sending an UDP packet will always succeed, regardless of any security group rules.\n\nFor TCP was a bit simpler: if there isn\u0027t any security group rules to allow TCP traffic, it\u0027ll timeout (as it expects a response).\n\nI could add an expected_response, but it is a bit redundant, IMO.","commit_id":"a389d4c3e1339679f4da40303abc5fb70a0967d3"}],"tempest/scenario/manager.py":[{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"8466b624b3427d92fc7009b897c683fbcb00fdf3","unresolved":false,"context_lines":[{"line_number":902,"context_line":"            except lib_exc.SSHExecCommandFailed:"},{"line_number":903,"context_line":"                LOG.warning(\u0027Failed to check %(method)s connectivity for IP: \u0027"},{"line_number":904,"context_line":"                            \u0027%(dest)s via a ssh connection from: %(source)s.\u0027,"},{"line_number":905,"context_line":"                            dict(method\u003dmethod, dest\u003ddest,"},{"line_number":906,"context_line":"                                 source\u003dsource.ssh_client.host))"},{"line_number":907,"context_line":"                return not should_succeed"},{"line_number":908,"context_line":"            return should_succeed"}],"source_content_type":"text/x-python","patch_set":12,"id":"1f485f77_7737fc00","line":905,"range":{"start_line":905,"start_character":40,"end_line":905,"end_character":46},"updated":"2017-11-16 11:01:58.000000000","message":"undefined variable.","commit_id":"a165537ee0e1fe4ab010eb55eb2877433ee4b357"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"claudiu.belu@canonical.com","username":"claudiub"},"change_message_id":"cf3e5831c8d73359748713364a03db9b1aefac3b","unresolved":false,"context_lines":[{"line_number":902,"context_line":"            except lib_exc.SSHExecCommandFailed:"},{"line_number":903,"context_line":"                LOG.warning(\u0027Failed to check %(method)s connectivity for IP: \u0027"},{"line_number":904,"context_line":"                            \u0027%(dest)s via a ssh connection from: %(source)s.\u0027,"},{"line_number":905,"context_line":"                            dict(method\u003dmethod, dest\u003ddest,"},{"line_number":906,"context_line":"                                 source\u003dsource.ssh_client.host))"},{"line_number":907,"context_line":"                return not should_succeed"},{"line_number":908,"context_line":"            return should_succeed"}],"source_content_type":"text/x-python","patch_set":12,"id":"1f485f77_ccf73f59","line":905,"range":{"start_line":905,"start_character":40,"end_line":905,"end_character":46},"in_reply_to":"1f485f77_7737fc00","updated":"2017-11-16 14:13:02.000000000","message":"oups. :)","commit_id":"a165537ee0e1fe4ab010eb55eb2877433ee4b357"}],"tempest/scenario/test_security_groups_basic_ops.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"d71841c99be8adf345f576b6d9bf4f3e6736e672","unresolved":false,"context_lines":[{"line_number":409,"context_line":"            self._check_connectivity(access_point\u003daccess_point_ssh,"},{"line_number":410,"context_line":"                                     ip\u003dself._get_server_ip(server))"},{"line_number":411,"context_line":""},{"line_number":412,"context_line":"    def _test_cross_tenant_block(self, source_tenant, dest_tenant, protocol):"},{"line_number":413,"context_line":"        # if public router isn\u0027t defined, then dest_tenant access is via"},{"line_number":414,"context_line":"        # floating-ip"},{"line_number":415,"context_line":"        access_point_ssh \u003d self._connect_to_access_point(source_tenant)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_0bc9c978","line":412,"updated":"2016-10-11 14:27:56.000000000","message":"I\u0027d like _test_cross_tenant_block and _test_cross_tenant_allow to have the same signature. I.e they both accept a protocol OR a ruleset a their last paramater. But not a mix of the 2.","commit_id":"c57463b875e2c3c2628ac19fda67b62065787a8a"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"claudiu.belu@canonical.com","username":"claudiub"},"change_message_id":"242e97b6a9999cd93f529c39f0c4c26cdfd19efc","unresolved":false,"context_lines":[{"line_number":409,"context_line":"            self._check_connectivity(access_point\u003daccess_point_ssh,"},{"line_number":410,"context_line":"                                     ip\u003dself._get_server_ip(server))"},{"line_number":411,"context_line":""},{"line_number":412,"context_line":"    def _test_cross_tenant_block(self, source_tenant, dest_tenant, protocol):"},{"line_number":413,"context_line":"        # if public router isn\u0027t defined, then dest_tenant access is via"},{"line_number":414,"context_line":"        # floating-ip"},{"line_number":415,"context_line":"        access_point_ssh \u003d self._connect_to_access_point(source_tenant)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_36651145","line":412,"in_reply_to":"fa6399be_0bc9c978","updated":"2016-10-11 15:48:48.000000000","message":"Done","commit_id":"c57463b875e2c3c2628ac19fda67b62065787a8a"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"42a24ec61704232ea96201902237150e05d87091","unresolved":false,"context_lines":[{"line_number":498,"context_line":"                    access_point.nc_listen_host(protocol\u003dprotocol)"},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"            ruleset \u003d self._create_protocol_ruleset(protocol)"},{"line_number":501,"context_line":"            self._test_cross_tenant_block(source_tenant, dest_tenant, ruleset)"},{"line_number":502,"context_line":"            self._test_cross_tenant_allow(source_tenant, dest_tenant, ruleset)"},{"line_number":503,"context_line":"        except Exception:"},{"line_number":504,"context_line":"            for tenant in self.tenants.values():"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a430d35_d929cbe7","line":501,"updated":"2017-02-08 11:55:04.000000000","message":"Please pass the protocol here instead of the ruleset. That would be clearer.","commit_id":"428d125c4b527e65ad5092a68c8e8b5e486f2c56"}]}
