)]}'
{"tempest/common/utils/linux/remote_client.py":[{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"16a7a7b7d6cbe59c61cf9351bd74059b12f68068","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            else:"},{"line_number":48,"context_line":"                raise exceptions.ServerUnreachable()"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        if wait_until \u003d\u003d \u0027PINGABLE\u0027:"},{"line_number":51,"context_line":"            ping_timeout \u003d CONF.validation.ping_timeout"},{"line_number":52,"context_line":"            cmd \u003d [\u0027ping\u0027, \u0027-c1\u0027, \u0027-w\u0027 + str(ping_timeout), ip_address]"},{"line_number":53,"context_line":"            subprocess.Popen(cmd, stdout\u003dsubprocess.PIPE).stdout.read()"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a68dd71_9cad5086","line":50,"updated":"2016-01-23 03:36:12.000000000","message":"We should define the \u0027self.ssh_client\u0027 variable in this case as well. Otherwise no method in this class will work since the \u0027self.ssh_client\u0027 variable will not be defined and the \u0027exec_command\u0027 method will fail.","commit_id":"b9ade37cc9c0c8d6d5eb5f6e85436794de2543a1"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"65ffc24817237f6dbe27051d9b1f24344d1c71b0","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            else:"},{"line_number":48,"context_line":"                raise exceptions.ServerUnreachable()"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        if wait_until \u003d\u003d \u0027PINGABLE\u0027:"},{"line_number":51,"context_line":"            ping_timeout \u003d CONF.validation.ping_timeout"},{"line_number":52,"context_line":"            cmd \u003d [\u0027ping\u0027, \u0027-c1\u0027, \u0027-w\u0027 + str(ping_timeout), ip_address]"},{"line_number":53,"context_line":"            subprocess.Popen(cmd, stdout\u003dsubprocess.PIPE).stdout.read()"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a68dd71_db8717b3","line":50,"in_reply_to":"9a68dd71_11f842c2","updated":"2016-01-25 15:21:46.000000000","message":"OK, thanks for clarification :)","commit_id":"b9ade37cc9c0c8d6d5eb5f6e85436794de2543a1"},{"author":{"_account_id":10016,"name":"Joseph Lanoux","email":"joseph.lanoux@hpe.com","username":"lanoux"},"change_message_id":"df419ac1eb3a6d1520f7713e99239c2d3dca6388","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            else:"},{"line_number":48,"context_line":"                raise exceptions.ServerUnreachable()"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        if wait_until \u003d\u003d \u0027PINGABLE\u0027:"},{"line_number":51,"context_line":"            ping_timeout \u003d CONF.validation.ping_timeout"},{"line_number":52,"context_line":"            cmd \u003d [\u0027ping\u0027, \u0027-c1\u0027, \u0027-w\u0027 + str(ping_timeout), ip_address]"},{"line_number":53,"context_line":"            subprocess.Popen(cmd, stdout\u003dsubprocess.PIPE).stdout.read()"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a68dd71_11f842c2","line":50,"in_reply_to":"9a68dd71_9cad5086","updated":"2016-01-25 10:00:06.000000000","message":"This is exactly the difference I wanted to highlight between PINGABLE and SSHABLE. If we just want a PINGABLE server (there is no test currently), it means we don\u0027t want to wait until SSHABLE and we don\u0027t want to perform any SSH validation. Otherwise, the test needs to ask for a SSHABLE server.","commit_id":"b9ade37cc9c0c8d6d5eb5f6e85436794de2543a1"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"16a7a7b7d6cbe59c61cf9351bd74059b12f68068","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        if wait_until \u003d\u003d \u0027PINGABLE\u0027:"},{"line_number":51,"context_line":"            ping_timeout \u003d CONF.validation.ping_timeout"},{"line_number":52,"context_line":"            cmd \u003d [\u0027ping\u0027, \u0027-c1\u0027, \u0027-w\u0027 + str(ping_timeout), ip_address]"},{"line_number":53,"context_line":"            subprocess.Popen(cmd, stdout\u003dsubprocess.PIPE).stdout.read()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        if wait_until \u003d\u003d \u0027SSHABLE\u0027:"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a68dd71_9ce470e0","line":52,"updated":"2016-01-23 03:36:12.000000000","message":"What about using the \u0027ping_host\u0027 method here?","commit_id":"b9ade37cc9c0c8d6d5eb5f6e85436794de2543a1"},{"author":{"_account_id":10016,"name":"Joseph Lanoux","email":"joseph.lanoux@hpe.com","username":"lanoux"},"change_message_id":"df419ac1eb3a6d1520f7713e99239c2d3dca6388","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        if wait_until \u003d\u003d \u0027PINGABLE\u0027:"},{"line_number":51,"context_line":"            ping_timeout \u003d CONF.validation.ping_timeout"},{"line_number":52,"context_line":"            cmd \u003d [\u0027ping\u0027, \u0027-c1\u0027, \u0027-w\u0027 + str(ping_timeout), ip_address]"},{"line_number":53,"context_line":"            subprocess.Popen(cmd, stdout\u003dsubprocess.PIPE).stdout.read()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        if wait_until \u003d\u003d \u0027SSHABLE\u0027:"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a68dd71_117b6229","line":52,"in_reply_to":"9a68dd71_9ce470e0","updated":"2016-01-25 10:00:06.000000000","message":"As I said above, if we wait_until SSHABLE and use ping_host, we are further down having just a PINGABLE server. We have a SSHABLE server and we loose the meaning of just pinging.","commit_id":"b9ade37cc9c0c8d6d5eb5f6e85436794de2543a1"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7874db835d185814dc1914cf5efa57fc09a93aca","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        ping_timeout \u003d CONF.validation.ping_timeout"},{"line_number":35,"context_line":"        ssh_timeout \u003d CONF.validation.ssh_timeout"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        # Wait until the server become sshable."},{"line_number":38,"context_line":"        try:"},{"line_number":39,"context_line":"            self.ssh_client \u003d ssh.Client("},{"line_number":40,"context_line":"                ip_address, username, password,"},{"line_number":41,"context_line":"                ssh_timeout, pkey\u003dpkey,"},{"line_number":42,"context_line":"                channel_timeout\u003dconnect_timeout)"},{"line_number":43,"context_line":"        except Exception:"},{"line_number":44,"context_line":"            # If the server is not sshable, try to ping it for debug"},{"line_number":45,"context_line":"            # purpose."}],"source_content_type":"text/x-python","patch_set":21,"id":"3a57f1b5_d35b4953","line":42,"range":{"start_line":37,"start_character":0,"end_line":42,"end_character":48},"updated":"2016-02-10 04:58:01.000000000","message":"This actually just create object of ssh client, based on that can we say server is sshable?\n\nI mean we are not trying to do any ssh here in actual.","commit_id":"5147b2d712daacb54e6a8f36e7d29dded561b609"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"dc1043a917c20206b92c290e2b3ffcfc1f8ca4f5","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        ping_timeout \u003d CONF.validation.ping_timeout"},{"line_number":35,"context_line":"        ssh_timeout \u003d CONF.validation.ssh_timeout"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        # Wait until the server become sshable."},{"line_number":38,"context_line":"        try:"},{"line_number":39,"context_line":"            self.ssh_client \u003d ssh.Client("},{"line_number":40,"context_line":"                ip_address, username, password,"},{"line_number":41,"context_line":"                ssh_timeout, pkey\u003dpkey,"},{"line_number":42,"context_line":"                channel_timeout\u003dconnect_timeout)"},{"line_number":43,"context_line":"        except Exception:"},{"line_number":44,"context_line":"            # If the server is not sshable, try to ping it for debug"},{"line_number":45,"context_line":"            # purpose."}],"source_content_type":"text/x-python","patch_set":21,"id":"3a57f1b5_d7aa4a70","line":42,"range":{"start_line":37,"start_character":0,"end_line":42,"end_character":48},"in_reply_to":"3a57f1b5_cbb62d3d","updated":"2016-02-10 10:18:28.000000000","message":"I did not find that it try to connect to server, is not it just create object of ssh.Client\n\nhttps://github.com/openstack/tempest-lib/blob/master/tempest_lib/common/ssh.py#L38","commit_id":"5147b2d712daacb54e6a8f36e7d29dded561b609"},{"author":{"_account_id":10016,"name":"Joseph Lanoux","email":"joseph.lanoux@hpe.com","username":"lanoux"},"change_message_id":"c35b1238fc0b639cd2d3b77597fc93cfa69aab68","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        ping_timeout \u003d CONF.validation.ping_timeout"},{"line_number":35,"context_line":"        ssh_timeout \u003d CONF.validation.ssh_timeout"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        # Wait until the server become sshable."},{"line_number":38,"context_line":"        try:"},{"line_number":39,"context_line":"            self.ssh_client \u003d ssh.Client("},{"line_number":40,"context_line":"                ip_address, username, password,"},{"line_number":41,"context_line":"                ssh_timeout, pkey\u003dpkey,"},{"line_number":42,"context_line":"                channel_timeout\u003dconnect_timeout)"},{"line_number":43,"context_line":"        except Exception:"},{"line_number":44,"context_line":"            # If the server is not sshable, try to ping it for debug"},{"line_number":45,"context_line":"            # purpose."}],"source_content_type":"text/x-python","patch_set":21,"id":"3a57f1b5_cbb62d3d","line":42,"range":{"start_line":37,"start_character":0,"end_line":42,"end_character":48},"in_reply_to":"3a57f1b5_d35b4953","updated":"2016-02-10 08:51:50.000000000","message":"The ssh_client that is called here actually tries to connect to the server with the credentials/key provided. So when it returns the remote_client, the server is sshable.","commit_id":"5147b2d712daacb54e6a8f36e7d29dded561b609"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7874db835d185814dc1914cf5efa57fc09a93aca","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                ip_address, username, password,"},{"line_number":41,"context_line":"                ssh_timeout, pkey\u003dpkey,"},{"line_number":42,"context_line":"                channel_timeout\u003dconnect_timeout)"},{"line_number":43,"context_line":"        except Exception:"},{"line_number":44,"context_line":"            # If the server is not sshable, try to ping it for debug"},{"line_number":45,"context_line":"            # purpose."},{"line_number":46,"context_line":"            LOG.exception(\u0027The server with the IP address %s is not\u0027"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a57f1b5_732ff5a1","line":43,"range":{"start_line":43,"start_character":24,"end_line":43,"end_character":25},"updated":"2016-02-10 04:58:01.000000000","message":"Not sure in which case this exception will occur?","commit_id":"5147b2d712daacb54e6a8f36e7d29dded561b609"},{"author":{"_account_id":10016,"name":"Joseph Lanoux","email":"joseph.lanoux@hpe.com","username":"lanoux"},"change_message_id":"c35b1238fc0b639cd2d3b77597fc93cfa69aab68","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                ip_address, username, password,"},{"line_number":41,"context_line":"                ssh_timeout, pkey\u003dpkey,"},{"line_number":42,"context_line":"                channel_timeout\u003dconnect_timeout)"},{"line_number":43,"context_line":"        except Exception:"},{"line_number":44,"context_line":"            # If the server is not sshable, try to ping it for debug"},{"line_number":45,"context_line":"            # purpose."},{"line_number":46,"context_line":"            LOG.exception(\u0027The server with the IP address %s is not\u0027"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a57f1b5_8bd59544","line":43,"range":{"start_line":43,"start_character":24,"end_line":43,"end_character":25},"in_reply_to":"3a57f1b5_732ff5a1","updated":"2016-02-10 08:51:50.000000000","message":"This exception will occur when the ssh_client fails to establish a ssh connection. The change adds a ping check to provide additional information about the server connectivity as sometimes a server can be pingable but not sshable.","commit_id":"5147b2d712daacb54e6a8f36e7d29dded561b609"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7874db835d185814dc1914cf5efa57fc09a93aca","unresolved":false,"context_lines":[{"line_number":51,"context_line":"                subprocess.Popen(cmd,"},{"line_number":52,"context_line":"                                 stdout\u003dsubprocess.PIPE).stdout.read()"},{"line_number":53,"context_line":"            except Exception:"},{"line_number":54,"context_line":"                LOG.exception(\u0027The server with the IP address %s is\u0027"},{"line_number":55,"context_line":"                              \u0027 neither sshable nor pingable\u0027"},{"line_number":56,"context_line":"                              % ip_address)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def exec_command(self, cmd):"},{"line_number":59,"context_line":"        # Shell options below add more clearness on failures,"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a57f1b5_f61f5359","line":56,"range":{"start_line":54,"start_character":0,"end_line":56,"end_character":43},"updated":"2016-02-10 04:58:01.000000000","message":"So in case of not sshable or pingable, are we sure to not raise exception and juts log?\n\nIf we raise here we can avoid tests to try for ssh again.","commit_id":"5147b2d712daacb54e6a8f36e7d29dded561b609"},{"author":{"_account_id":10016,"name":"Joseph Lanoux","email":"joseph.lanoux@hpe.com","username":"lanoux"},"change_message_id":"c35b1238fc0b639cd2d3b77597fc93cfa69aab68","unresolved":false,"context_lines":[{"line_number":51,"context_line":"                subprocess.Popen(cmd,"},{"line_number":52,"context_line":"                                 stdout\u003dsubprocess.PIPE).stdout.read()"},{"line_number":53,"context_line":"            except Exception:"},{"line_number":54,"context_line":"                LOG.exception(\u0027The server with the IP address %s is\u0027"},{"line_number":55,"context_line":"                              \u0027 neither sshable nor pingable\u0027"},{"line_number":56,"context_line":"                              % ip_address)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def exec_command(self, cmd):"},{"line_number":59,"context_line":"        # Shell options below add more clearness on failures,"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a57f1b5_4b147df4","line":56,"range":{"start_line":54,"start_character":0,"end_line":56,"end_character":43},"in_reply_to":"3a57f1b5_f61f5359","updated":"2016-02-10 08:51:50.000000000","message":"I\u0027m not sure I understand your comment. In the case the server is neither sshable nor pingable, this will fill the logs and will allow us to build some statistics on server connectivity.\nIt\u0027s not because one ssh validation fails that the other ssh validation will fail. So we shouldn\u0027t stop ssh validation to occur in the Tempest run.","commit_id":"5147b2d712daacb54e6a8f36e7d29dded561b609"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"change_message_id":"106d91a5e0b32804526b75e5657829fc17f91074","unresolved":false,"context_lines":[{"line_number":42,"context_line":"                ssh_timeout, pkey\u003dpkey,"},{"line_number":43,"context_line":"                channel_timeout\u003dconnect_timeout)"},{"line_number":44,"context_line":"            self.ssh_client.validate_authentication()"},{"line_number":45,"context_line":"        except Exception:"},{"line_number":46,"context_line":"            # If the server is not sshable, try to ping it for debug"},{"line_number":47,"context_line":"            # purpose."},{"line_number":48,"context_line":"            LOG.exception(\u0027The server with the IP address %s is not\u0027"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a57f1b5_351e210d","line":45,"updated":"2016-02-10 16:33:18.000000000","message":"By catching any exception here, you lose any information about why paramiko failed to connect. There\u0027s only a few possible exceptions (see https://github.com/openstack/tempest-lib/blob/master/tempest_lib/common/ssh.py#L79 as an example), so it might make more sense to catch those specifically and somehow pass that data along in the error message","commit_id":"8a72b259bdc1b973c71bd1b50ebaccf71e950994"},{"author":{"_account_id":10016,"name":"Joseph Lanoux","email":"joseph.lanoux@hpe.com","username":"lanoux"},"change_message_id":"9bebb032b619867c458f780b1c400d940b211693","unresolved":false,"context_lines":[{"line_number":42,"context_line":"                ssh_timeout, pkey\u003dpkey,"},{"line_number":43,"context_line":"                channel_timeout\u003dconnect_timeout)"},{"line_number":44,"context_line":"            self.ssh_client.validate_authentication()"},{"line_number":45,"context_line":"        except Exception:"},{"line_number":46,"context_line":"            # If the server is not sshable, try to ping it for debug"},{"line_number":47,"context_line":"            # purpose."},{"line_number":48,"context_line":"            LOG.exception(\u0027The server with the IP address %s is not\u0027"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a57f1b5_39b27795","line":45,"in_reply_to":"3a57f1b5_351e210d","updated":"2016-02-11 09:00:01.000000000","message":"Hmm, I don\u0027t think so. I just checked and when ssh is failing, we\u0027re catching properly the error message from the ssh lib.","commit_id":"8a72b259bdc1b973c71bd1b50ebaccf71e950994"},{"author":{"_account_id":9152,"name":"Castulo J. Martinez","email":"castulo.martinez@intel.com","username":"cas"},"change_message_id":"c55a80d4b4e53107627b75768032bd3a64a1e402","unresolved":false,"context_lines":[{"line_number":51,"context_line":"                cmd \u003d [\u0027ping\u0027, \u0027-c1\u0027, \u0027-w\u0027 + str(ping_timeout),"},{"line_number":52,"context_line":"                       ip_address]"},{"line_number":53,"context_line":"                subprocess.Popen(cmd,"},{"line_number":54,"context_line":"                                 stdout\u003dsubprocess.PIPE).stdout.read()"},{"line_number":55,"context_line":"            except Exception:"},{"line_number":56,"context_line":"                LOG.exception(\u0027The server with the IP address %s is\u0027"},{"line_number":57,"context_line":"                              \u0027 neither sshable nor pingable\u0027"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a57f1b5_fb8633da","line":54,"updated":"2016-02-10 19:22:20.000000000","message":"Wouldn\u0027t be useful to add a log message here to highlight that the ping was successful?","commit_id":"8a72b259bdc1b973c71bd1b50ebaccf71e950994"},{"author":{"_account_id":10016,"name":"Joseph Lanoux","email":"joseph.lanoux@hpe.com","username":"lanoux"},"change_message_id":"9bebb032b619867c458f780b1c400d940b211693","unresolved":false,"context_lines":[{"line_number":51,"context_line":"                cmd \u003d [\u0027ping\u0027, \u0027-c1\u0027, \u0027-w\u0027 + str(ping_timeout),"},{"line_number":52,"context_line":"                       ip_address]"},{"line_number":53,"context_line":"                subprocess.Popen(cmd,"},{"line_number":54,"context_line":"                                 stdout\u003dsubprocess.PIPE).stdout.read()"},{"line_number":55,"context_line":"            except Exception:"},{"line_number":56,"context_line":"                LOG.exception(\u0027The server with the IP address %s is\u0027"},{"line_number":57,"context_line":"                              \u0027 neither sshable nor pingable\u0027"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a57f1b5_f9ab7f1b","line":54,"in_reply_to":"3a57f1b5_fb8633da","updated":"2016-02-11 09:00:01.000000000","message":"Done","commit_id":"8a72b259bdc1b973c71bd1b50ebaccf71e950994"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"e3bf8a191b3592478536949fe373e17ba7ba543b","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            try:"},{"line_number":51,"context_line":"                cmd \u003d [\u0027ping\u0027, \u0027-c1\u0027, \u0027-w\u0027 + str(ping_timeout),"},{"line_number":52,"context_line":"                       ip_address]"},{"line_number":53,"context_line":"                subprocess.Popen(cmd,"},{"line_number":54,"context_line":"                                 stdout\u003dsubprocess.PIPE).stdout.read()"},{"line_number":55,"context_line":"                LOG.info(\u0027The server with the IP address %s is\u0027"},{"line_number":56,"context_line":"                         \u0027 successfully pingable\u0027 % ip_address)"}],"source_content_type":"text/x-python","patch_set":24,"id":"3a57f1b5_8a6f8bc4","line":53,"updated":"2016-02-11 09:40:04.000000000","message":"This won\u0027t work. Please try this code in a python shell: no exception will ever be raised.","commit_id":"7e45c57b64a61093ac1d488a84a0e5a89f160a16"},{"author":{"_account_id":10016,"name":"Joseph Lanoux","email":"joseph.lanoux@hpe.com","username":"lanoux"},"change_message_id":"2e1b94e73ba18d672f00c637206aca18720db2de","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            try:"},{"line_number":51,"context_line":"                cmd \u003d [\u0027ping\u0027, \u0027-c1\u0027, \u0027-w\u0027 + str(ping_timeout),"},{"line_number":52,"context_line":"                       ip_address]"},{"line_number":53,"context_line":"                subprocess.Popen(cmd,"},{"line_number":54,"context_line":"                                 stdout\u003dsubprocess.PIPE).stdout.read()"},{"line_number":55,"context_line":"                LOG.info(\u0027The server with the IP address %s is\u0027"},{"line_number":56,"context_line":"                         \u0027 successfully pingable\u0027 % ip_address)"}],"source_content_type":"text/x-python","patch_set":24,"id":"3a57f1b5_89e1c8d2","line":53,"in_reply_to":"3a57f1b5_8a6f8bc4","updated":"2016-02-11 14:43:35.000000000","message":"Done","commit_id":"7e45c57b64a61093ac1d488a84a0e5a89f160a16"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"530d652bee9716355b21fe37feabdbdaf491c511","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                ip_address, username, password,"},{"line_number":42,"context_line":"                ssh_timeout, pkey\u003dpkey,"},{"line_number":43,"context_line":"                channel_timeout\u003dconnect_timeout)"},{"line_number":44,"context_line":"            self.validate_authentication()"},{"line_number":45,"context_line":"        except Exception:"},{"line_number":46,"context_line":"            # If the server is not sshable, try to ping it for debug"},{"line_number":47,"context_line":"            # purpose."}],"source_content_type":"text/x-python","patch_set":25,"id":"bae84128_78e44ce0","line":44,"updated":"2016-02-23 10:07:27.000000000","message":"You are moving the call to `validate_authentication` in the constructor. If you take a look at get_remote_client() in manager.py, it now means that `validate_authentication()` is called twice. Is that what you want ?","commit_id":"1fe386eec82e24c469c31dcb3a2b2d895dc3e3b6"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"d32ef934478f6e8a29588a243bae705dc0b2b50a","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"            # Set ssh_client to None to prevent the waiting of a second"},{"line_number":74,"context_line":"            # timeout when validate_authentication failed."},{"line_number":75,"context_line":"            self.ssh_client \u003d None"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def hostname_equals_servername(self, expected_hostname):"},{"line_number":78,"context_line":"        # Get host name using command \"hostname\""}],"source_content_type":"text/x-python","patch_set":28,"id":"bae84128_915c667e","line":75,"updated":"2016-02-23 21:41:59.000000000","message":"I am not sure this line is needed. What/where is the \"second timeout\" you mentioned ?\n\nAlso you need to add a \"raise\" statement here. Otherwise [1] will never be executed and we would loose some useful information.\n\n[1]\nhttps://github.com/openstack/tempest/blob/be5b666103d2c16e577a20950d2c96435f4b5e60/tempest/scenario/manager.py#L378","commit_id":"8971c599133a3fda71dff831cea8a7e7af0c5085"},{"author":{"_account_id":10016,"name":"Joseph Lanoux","email":"joseph.lanoux@hpe.com","username":"lanoux"},"change_message_id":"2c9e3e9ed22f98f43b823dd8a0ac0be7d6145496","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"            # Set ssh_client to None to prevent the waiting of a second"},{"line_number":74,"context_line":"            # timeout when validate_authentication failed."},{"line_number":75,"context_line":"            self.ssh_client \u003d None"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def hostname_equals_servername(self, expected_hostname):"},{"line_number":78,"context_line":"        # Get host name using command \"hostname\""}],"source_content_type":"text/x-python","patch_set":28,"id":"bae84128_da70b00d","line":75,"in_reply_to":"bae84128_915c667e","updated":"2016-02-24 09:10:16.000000000","message":"Most of the tests are first calling remote_client to initialize the ssh_client and then to run a ssh check. This is this ssh check I\u0027m referring too and that is using ssh_timeout again. When the ssh_client is None, the ssh check fails straight away.\n\nRegarding the raise, it is not needed as unfortunately, there again, there is duplication and inconsistency. The code path that is used here for ssh logging is the one in ssh.py of tempest-lib: https://github.com/openstack/tempest-lib/blob/master/tempest_lib/common/ssh.py#L53 and provides the same information than in the one you mentionned.","commit_id":"8971c599133a3fda71dff831cea8a7e7af0c5085"}],"tempest/scenario/test_network_v6.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"e3bf8a191b3592478536949fe373e17ba7ba543b","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        fip \u003d self.create_floating_ip(thing\u003dsrv)"},{"line_number":125,"context_line":"        ips \u003d self.define_server_ips(srv\u003dsrv)"},{"line_number":126,"context_line":"        ssh \u003d self.get_remote_client("},{"line_number":127,"context_line":"            fip.floating_ip_address,"},{"line_number":128,"context_line":"            username\u003dusername)"},{"line_number":129,"context_line":"        return ssh, ips, srv[\"id\"]"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"3a57f1b5_bf9647ee","line":127,"updated":"2016-02-11 09:40:04.000000000","message":"Unrelated change.","commit_id":"7e45c57b64a61093ac1d488a84a0e5a89f160a16"},{"author":{"_account_id":10016,"name":"Joseph Lanoux","email":"joseph.lanoux@hpe.com","username":"lanoux"},"change_message_id":"2e1b94e73ba18d672f00c637206aca18720db2de","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        fip \u003d self.create_floating_ip(thing\u003dsrv)"},{"line_number":125,"context_line":"        ips \u003d self.define_server_ips(srv\u003dsrv)"},{"line_number":126,"context_line":"        ssh \u003d self.get_remote_client("},{"line_number":127,"context_line":"            fip.floating_ip_address,"},{"line_number":128,"context_line":"            username\u003dusername)"},{"line_number":129,"context_line":"        return ssh, ips, srv[\"id\"]"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"3a57f1b5_09c71846","line":127,"in_reply_to":"3a57f1b5_bf9647ee","updated":"2016-02-11 14:43:35.000000000","message":"Done","commit_id":"7e45c57b64a61093ac1d488a84a0e5a89f160a16"}]}
