{"action":"created","issue":{"url":"https://api.github.com/repos/flux-framework/flux-core/issues/648","repository_url":"https://api.github.com/repos/flux-framework/flux-core","labels_url":"https://api.github.com/repos/flux-framework/flux-core/issues/648/labels{/name}","comments_url":"https://api.github.com/repos/flux-framework/flux-core/issues/648/comments","events_url":"https://api.github.com/repos/flux-framework/flux-core/issues/648/events","html_url":"https://github.com/flux-framework/flux-core/pull/648","id":148793127,"number":648,"title":"implement ssh connector","user":{"login":"garlick","id":169947,"avatar_url":"https://avatars.githubusercontent.com/u/169947?v=3","gravatar_id":"","url":"https://api.github.com/users/garlick","html_url":"https://github.com/garlick","followers_url":"https://api.github.com/users/garlick/followers","following_url":"https://api.github.com/users/garlick/following{/other_user}","gists_url":"https://api.github.com/users/garlick/gists{/gist_id}","starred_url":"https://api.github.com/users/garlick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/garlick/subscriptions","organizations_url":"https://api.github.com/users/garlick/orgs","repos_url":"https://api.github.com/users/garlick/repos","events_url":"https://api.github.com/users/garlick/events{/privacy}","received_events_url":"https://api.github.com/users/garlick/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/flux-framework/flux-core/labels/review","name":"review","color":"ededed"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":79,"created_at":"2016-04-15T23:39:59Z","updated_at":"2016-04-27T23:06:42Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/flux-framework/flux-core/pulls/648","html_url":"https://github.com/flux-framework/flux-core/pull/648","diff_url":"https://github.com/flux-framework/flux-core/pull/648.diff","patch_url":"https://github.com/flux-framework/flux-core/pull/648.patch"},"body":"As discussed in #644, this PR implements a new ssh:// connector.\r\n\r\nUnfinished but wanted to get it up here for any prelim. review.\r\n\r\nI had to create a new `popen()` like function called `pxopen()` that uses a socketpair to establish bidirectional communication with a subprocess, which will usually be /usr/bin./ssh or maybe /usr/bin/rsh on our clusters.  It seems a bit odd to have `flux_open()` behind the scenes do a fork/exec - hopefully that is not going to cause problems.\r\n\r\nThe remote command is currently `flux proxy` as proposed in #645 although maybe the first pass on this should just use netcat."},"comment":{"url":"https://api.github.com/repos/flux-framework/flux-core/issues/comments/215259292","html_url":"https://github.com/flux-framework/flux-core/pull/648#issuecomment-215259292","issue_url":"https://api.github.com/repos/flux-framework/flux-core/issues/648","id":215259292,"user":{"login":"grondo","id":741970,"avatar_url":"https://avatars.githubusercontent.com/u/741970?v=3","gravatar_id":"","url":"https://api.github.com/users/grondo","html_url":"https://github.com/grondo","followers_url":"https://api.github.com/users/grondo/followers","following_url":"https://api.github.com/users/grondo/following{/other_user}","gists_url":"https://api.github.com/users/grondo/gists{/gist_id}","starred_url":"https://api.github.com/users/grondo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/grondo/subscriptions","organizations_url":"https://api.github.com/users/grondo/orgs","repos_url":"https://api.github.com/users/grondo/repos","events_url":"https://api.github.com/users/grondo/events{/privacy}","received_events_url":"https://api.github.com/users/grondo/received_events","type":"User","site_admin":false},"created_at":"2016-04-27T23:06:41Z","updated_at":"2016-04-27T23:06:41Z","body":"> How about:\r\n> `flux proxy JOB [CMD ...]`\r\n\r\nPerfect! Something like that is exactly what I was thinking!\r\n"}}