{"action":"created","issue":{"url":"https://api.github.com/repos/StackStorm/st2/issues/2150","labels_url":"https://api.github.com/repos/StackStorm/st2/issues/2150/labels{/name}","comments_url":"https://api.github.com/repos/StackStorm/st2/issues/2150/comments","events_url":"https://api.github.com/repos/StackStorm/st2/issues/2150/events","html_url":"https://github.com/StackStorm/st2/pull/2150","id":114309088,"number":2150,"title":"Rough SSH Bastion Host Support (relates to #2144)","user":{"login":"lattwood","id":6198952,"avatar_url":"https://avatars.githubusercontent.com/u/6198952?v=3","gravatar_id":"","url":"https://api.github.com/users/lattwood","html_url":"https://github.com/lattwood","followers_url":"https://api.github.com/users/lattwood/followers","following_url":"https://api.github.com/users/lattwood/following{/other_user}","gists_url":"https://api.github.com/users/lattwood/gists{/gist_id}","starred_url":"https://api.github.com/users/lattwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lattwood/subscriptions","organizations_url":"https://api.github.com/users/lattwood/orgs","repos_url":"https://api.github.com/users/lattwood/repos","events_url":"https://api.github.com/users/lattwood/events{/privacy}","received_events_url":"https://api.github.com/users/lattwood/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":6,"created_at":"2015-10-30T16:45:56Z","updated_at":"2015-11-01T00:41:49Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/StackStorm/st2/pulls/2150","html_url":"https://github.com/StackStorm/st2/pull/2150","diff_url":"https://github.com/StackStorm/st2/pull/2150.diff","patch_url":"https://github.com/StackStorm/st2/pull/2150.patch"},"body":"- Added `ParamikoSSHBastionClient` as a subclass of `ParamikoSSHClient`, with overridden `connect` and `close` methods for connection bouncing.\r\n- Use `ParamikoSSHBastionClient` if a `!` exists in the host. The left side of the `!` is the bastion host, right side is the target host.\r\n- All connection parameters for the target host are used for connecting to the bastion host. See https://github.com/lattwood/st2/blob/7cf7ba0938d23ddba29ce6c55d39ac6e49f7aaea/st2actions/st2actions/runners/ssh/paramiko_ssh_bastion.py#L43-L51\r\n\r\nRudimentary testing was done with https://gist.github.com/lattwood/4c52ba7b8583ae4565eb, I'll be doing more extensive testing using `st2workroom` today. This touches on #2144 \r\n\r\nThis is the most python I've written so I apologize in advance if anything isn't done the python way.\r\n\r\nIs a CLA required or would Apache licensing suffice?"},"comment":{"url":"https://api.github.com/repos/StackStorm/st2/issues/comments/152783672","html_url":"https://github.com/StackStorm/st2/pull/2150#issuecomment-152783672","issue_url":"https://api.github.com/repos/StackStorm/st2/issues/2150","id":152783672,"user":{"login":"lattwood","id":6198952,"avatar_url":"https://avatars.githubusercontent.com/u/6198952?v=3","gravatar_id":"","url":"https://api.github.com/users/lattwood","html_url":"https://github.com/lattwood","followers_url":"https://api.github.com/users/lattwood/followers","following_url":"https://api.github.com/users/lattwood/following{/other_user}","gists_url":"https://api.github.com/users/lattwood/gists{/gist_id}","starred_url":"https://api.github.com/users/lattwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lattwood/subscriptions","organizations_url":"https://api.github.com/users/lattwood/orgs","repos_url":"https://api.github.com/users/lattwood/repos","events_url":"https://api.github.com/users/lattwood/events{/privacy}","received_events_url":"https://api.github.com/users/lattwood/received_events","type":"User","site_admin":false},"created_at":"2015-11-01T00:41:49Z","updated_at":"2015-11-01T00:41:49Z","body":"@manasdk much cleaner this way, just need to figure out unit tests"}}