)]}'
{"etc/tempest.conf.sample":[{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"0d4d9e1ffee4617bb8f321a95108cbc182c8de9b","unresolved":false,"context_lines":[{"line_number":1115,"context_line":"#auth_method \u003d keypair"},{"line_number":1116,"context_line":""},{"line_number":1117,"context_line":"# Default IP version for ssh connections. (integer value)"},{"line_number":1118,"context_line":"# Deprecated group/name - [compute]/ip_version_for_ssh"},{"line_number":1119,"context_line":"#ip_version_for_ssh \u003d 4"},{"line_number":1120,"context_line":""},{"line_number":1121,"context_line":"# Timeout in seconds to wait for ping to succeed. (integer value)"}],"source_content_type":"application/octet-stream","patch_set":51,"id":"fa32b979_965bd185","line":1118,"updated":"2015-06-24 20:51:58.000000000","message":"I think we should remove options\n\n    [compute]/ip_version_for_ssh\n    [compute]/ssh_channel_timeout\n    [compute]/ssh_timeout\n\nfrom config.py. These options are not used anywhere.","commit_id":"4b7f43a5e9711e5c2628936834d97372b616d874"}],"tempest/common/utils/linux/remote_client.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"b541b0682967614ac88fdc39fbf9055275c6a3cd","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        ip_version \u003d CONF.validation.ip_version_for_ssh"},{"line_number":37,"context_line":"        connect_timeout \u003d CONF.validation.connect_timeout"},{"line_number":38,"context_line":"        if isinstance(server, six.string_types):"},{"line_number":39,"context_line":"            self.ip_address \u003d server"},{"line_number":40,"context_line":"        else:"},{"line_number":41,"context_line":"            addresses \u003d server[\u0027addresses\u0027][network]"},{"line_number":42,"context_line":"            for address in addresses:"}],"source_content_type":"text/x-python","patch_set":33,"id":"7aaa499b_d03c8295","line":39,"updated":"2015-04-13 15:33:53.000000000","message":"Why do you need a instance variable here? i don\u0027t see where else (out side this method) you need to access this variable.","commit_id":"57cc7ecdb11e33b20f2e299e6b0e30a4b99c88a4"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"b541b0682967614ac88fdc39fbf9055275c6a3cd","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            msg \u003d \"Server %s is reachable via ssh\" % self.ip_address"},{"line_number":64,"context_line":"            raise exceptions.ServerValidationFailed(msg)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def _ping_ip_address(self, ip_address, should_succeed\u003dTrue,"},{"line_number":67,"context_line":"                         ping_timeout\u003dNone):"},{"line_number":68,"context_line":"        timeout \u003d ping_timeout or CONF.validation.ping_timeout"},{"line_number":69,"context_line":"        cmd \u003d [\u0027ping\u0027, \u0027-c1\u0027, \u0027-w1\u0027, ip_address]"}],"source_content_type":"text/x-python","patch_set":33,"id":"7aaa499b_b041f60d","line":66,"updated":"2015-04-13 15:33:53.000000000","message":"This should be a static method.","commit_id":"57cc7ecdb11e33b20f2e299e6b0e30a4b99c88a4"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"449e8de8674beb81fe22dbbce593555134f36829","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                    break"},{"line_number":46,"context_line":"            else:"},{"line_number":47,"context_line":"                raise exceptions.ServerUnreachable()"},{"line_number":48,"context_line":"        if should_ping:"},{"line_number":49,"context_line":"            msg \u003d \"Timed out waiting for %s to become reachable\"\\"},{"line_number":50,"context_line":"                % ip_address"},{"line_number":51,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":39,"id":"7a016987_637251af","line":48,"updated":"2015-05-18 08:39:34.000000000","message":"I do not feel the icmp ping test is belongs to the ssh remote client.","commit_id":"a5fb64dbbbb820d27c7332debadbd51b5b52f8e4"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"bbca9cbb77cffb958633b004e1e7b44c7d667db1","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                    break"},{"line_number":46,"context_line":"            else:"},{"line_number":47,"context_line":"                raise exceptions.ServerUnreachable()"},{"line_number":48,"context_line":"        if should_ping:"},{"line_number":49,"context_line":"            msg \u003d \"Timed out waiting for %s to become reachable\"\\"},{"line_number":50,"context_line":"                % ip_address"},{"line_number":51,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":39,"id":"7a016987_ef361fe6","line":48,"in_reply_to":"7a016987_438bd5c3","updated":"2015-05-18 13:16:23.000000000","message":"Actually it is not an early failure, It does two test instead of one.\n\nI have two issue with the pinging first strategy.:\n\n- We had an issue where the ssh did not worked unless you pinged the instance. The ping before ssh fixed a hidden issue. In our case it was a router miss-configuration, but since we are using many special network device an early ping can hide other deployment or driver issues.\n\n- We already have complains agings tempest because we assuming the network implementation handle icmp statefull rules.\nhttps://bugs.launchpad.net/tempest/+bug/1363986\nA working ping is not pre-requisite for ssh,\nssh can work with disabled icmp echo. \n\n\nNOTE: The RemoteClient can be considered as higher level of abstraction for having the server do certain things. The ssh and icmp echo can be considered as an implementation detail and by model other than ssh implementation could exists like \u0027Windows Management Framework\u0027.","commit_id":"a5fb64dbbbb820d27c7332debadbd51b5b52f8e4"},{"author":{"_account_id":1839,"name":"nithya-ganesan","email":"nithya.ganesan@hp.com","username":"nithya-ganesan"},"change_message_id":"4f5734b9085b047214a887b14532f96bab555a93","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                    break"},{"line_number":46,"context_line":"            else:"},{"line_number":47,"context_line":"                raise exceptions.ServerUnreachable()"},{"line_number":48,"context_line":"        if should_ping:"},{"line_number":49,"context_line":"            msg \u003d \"Timed out waiting for %s to become reachable\"\\"},{"line_number":50,"context_line":"                % ip_address"},{"line_number":51,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":39,"id":"7a016987_438bd5c3","line":48,"in_reply_to":"7a016987_637251af","updated":"2015-05-18 09:24:56.000000000","message":"Hi Attila,\n\nThanks for looking at the code. \n\nThe idea here is to have a early failure.  If the VM is not pingable we can get an early failure instead of waiting for ssh timeout. This will help in a shorter test run for the cases where ssh is turned on and the VM fails to be pingable. The boolean should_ping can be used in cases where the VM is not expected to be pingable\n\nRegards\nNithya","commit_id":"a5fb64dbbbb820d27c7332debadbd51b5b52f8e4"},{"author":{"_account_id":1839,"name":"nithya-ganesan","email":"nithya.ganesan@hp.com","username":"nithya-ganesan"},"change_message_id":"56aac25f1df1e0e7cdfa813df66764ef1268d264","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                    break"},{"line_number":46,"context_line":"            else:"},{"line_number":47,"context_line":"                raise exceptions.ServerUnreachable()"},{"line_number":48,"context_line":"        if should_ping:"},{"line_number":49,"context_line":"            msg \u003d \"Timed out waiting for %s to become reachable\"\\"},{"line_number":50,"context_line":"                % ip_address"},{"line_number":51,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":39,"id":"fa32b979_fb4a4854","line":48,"in_reply_to":"7a016987_ef361fe6","updated":"2015-06-18 09:44:20.000000000","message":"Removing the ping test from ssh remote client. Will build the abstraction in a separate patch to allow the minimal basic content of ssh auth strategy to get merged.","commit_id":"a5fb64dbbbb820d27c7332debadbd51b5b52f8e4"},{"author":{"_account_id":7227,"name":"Timur Nurlygayanov","email":"tnurlygayanov@mirantis.com","username":"tnurlygayanov"},"change_message_id":"b5c3739034d418aee6854b260d04ab995581cdf4","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    # NOTE(afazekas): It should always get an address instead of server"},{"line_number":29,"context_line":"    def __init__(self, server, username, password\u003dNone, pkey\u003dNone):"},{"line_number":30,"context_line":"        self.ssh_client \u003d None"},{"line_number":31,"context_line":"        ssh_timeout \u003d CONF.validation.ssh_timeout"},{"line_number":32,"context_line":"        network \u003d CONF.compute.network_for_ssh"},{"line_number":33,"context_line":"        ip_version \u003d CONF.validation.ip_version_for_ssh"}],"source_content_type":"text/x-python","patch_set":49,"id":"fa32b979_4961f2d2","line":30,"updated":"2015-06-19 11:06:52.000000000","message":"Why we need it here?","commit_id":"f59fad0ba873482d05ac29ca3097dac6bacaeae3"}],"tempest/exceptions.py":[{"author":{"_account_id":7227,"name":"Timur Nurlygayanov","email":"tnurlygayanov@mirantis.com","username":"tnurlygayanov"},"change_message_id":"06b1eb68c38c812bc37b544928a226aea97f8e0e","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"class ServerValidationFailed(TempestException):"},{"line_number":132,"context_line":"    message \u003d \" %(msg) %\""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"class ServerUnreachable(TempestException):"}],"source_content_type":"text/x-python","patch_set":39,"id":"5afe65bd_7e5fa741","line":132,"updated":"2015-06-03 09:01:20.000000000","message":"how will work the second \u0027%\u0027?","commit_id":"a5fb64dbbbb820d27c7332debadbd51b5b52f8e4"},{"author":{"_account_id":1839,"name":"nithya-ganesan","email":"nithya.ganesan@hp.com","username":"nithya-ganesan"},"change_message_id":"56aac25f1df1e0e7cdfa813df66764ef1268d264","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"class ServerValidationFailed(TempestException):"},{"line_number":132,"context_line":"    message \u003d \" %(msg) %\""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"class ServerUnreachable(TempestException):"}],"source_content_type":"text/x-python","patch_set":39,"id":"fa32b979_3bb3d051","line":132,"in_reply_to":"5afe65bd_7e5fa741","updated":"2015-06-18 09:44:20.000000000","message":"Will fix in the upcoming patch","commit_id":"a5fb64dbbbb820d27c7332debadbd51b5b52f8e4"}]}
