{"action":"created","comment":{"url":"https://api.github.com/repos/mchang6137/throttlebot/pulls/comments/196900733","pull_request_review_id":130538434,"id":196900733,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5NjkwMDczMw==","diff_hunk":"@@ -6,11 +6,18 @@ def get_client(ip):\n     client.connect(ip, username=\"quilt\", password=\"\")\n     return client\n \n-def ssh_exec(ssh_client, cmd):\n-    _, _, stderr = ssh_client.exec_command(cmd)\n+def ssh_exec(ssh_client, cmd, contains_container_id=False, return_error=False):","path":"src/remote_execution.py","position":6,"original_position":6,"commit_id":"a4831fdd2172dbe02a3c8316c3ed4a07d5d5eef0","original_commit_id":"a4831fdd2172dbe02a3c8316c3ed4a07d5d5eef0","user":{"login":"emersonhsieh","id":2308546,"node_id":"MDQ6VXNlcjIzMDg1NDY=","avatar_url":"https://avatars1.githubusercontent.com/u/2308546?v=4","gravatar_id":"","url":"https://api.github.com/users/emersonhsieh","html_url":"https://github.com/emersonhsieh","followers_url":"https://api.github.com/users/emersonhsieh/followers","following_url":"https://api.github.com/users/emersonhsieh/following{/other_user}","gists_url":"https://api.github.com/users/emersonhsieh/gists{/gist_id}","starred_url":"https://api.github.com/users/emersonhsieh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/emersonhsieh/subscriptions","organizations_url":"https://api.github.com/users/emersonhsieh/orgs","repos_url":"https://api.github.com/users/emersonhsieh/repos","events_url":"https://api.github.com/users/emersonhsieh/events{/privacy}","received_events_url":"https://api.github.com/users/emersonhsieh/received_events","type":"User","site_admin":false},"body":"If I don't make the distinction between regular commands (such as package installation) and docker commands that contains container_id, then I would have to raise a SystemError for every single ssh_exec error that occur to signify that the command failed to execute. However, the current behavior is that regular ssh_exec errors don't raise SystemErrors. For my implementation, I only want to catch container_id errors only, so I added this flag to distinguish the commands.","created_at":"2018-06-20T18:40:13Z","updated_at":"2018-06-20T18:40:13Z","html_url":"https://github.com/mchang6137/throttlebot/pull/48#discussion_r196900733","pull_request_url":"https://api.github.com/repos/mchang6137/throttlebot/pulls/48","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/mchang6137/throttlebot/pulls/comments/196900733"},"html":{"href":"https://github.com/mchang6137/throttlebot/pull/48#discussion_r196900733"},"pull_request":{"href":"https://api.github.com/repos/mchang6137/throttlebot/pulls/48"}},"in_reply_to_id":196852083},"pull_request":{"url":"https://api.github.com/repos/mchang6137/throttlebot/pulls/48","id":195928831,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk1OTI4ODMx","html_url":"https://github.com/mchang6137/throttlebot/pull/48","diff_url":"https://github.com/mchang6137/throttlebot/pull/48.diff","patch_url":"https://github.com/mchang6137/throttlebot/pull/48.patch","issue_url":"https://api.github.com/repos/mchang6137/throttlebot/issues/48","number":48,"state":"open","locked":false,"title":"Change Container ID of Disconnected Services","user":{"login":"emersonhsieh","id":2308546,"node_id":"MDQ6VXNlcjIzMDg1NDY=","avatar_url":"https://avatars1.githubusercontent.com/u/2308546?v=4","gravatar_id":"","url":"https://api.github.com/users/emersonhsieh","html_url":"https://github.com/emersonhsieh","followers_url":"https://api.github.com/users/emersonhsieh/followers","following_url":"https://api.github.com/users/emersonhsieh/following{/other_user}","gists_url":"https://api.github.com/users/emersonhsieh/gists{/gist_id}","starred_url":"https://api.github.com/users/emersonhsieh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/emersonhsieh/subscriptions","organizations_url":"https://api.github.com/users/emersonhsieh/orgs","repos_url":"https://api.github.com/users/emersonhsieh/repos","events_url":"https://api.github.com/users/emersonhsieh/events{/privacy}","received_events_url":"https://api.github.com/users/emersonhsieh/received_events","type":"User","site_admin":false},"body":"When the container ID of a service has been changed, the update_mr_id function polls the new cluster, saves new information into redis, grabs the service information from redis, and updates the existing service with the wrong container ID.","created_at":"2018-06-19T19:10:16Z","updated_at":"2018-06-20T18:40:13Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ed20c0c2ce0e37cf30bfd98d770533ebab90dad1","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/mchang6137/throttlebot/pulls/48/commits","review_comments_url":"https://api.github.com/repos/mchang6137/throttlebot/pulls/48/comments","review_comment_url":"https://api.github.com/repos/mchang6137/throttlebot/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mchang6137/throttlebot/issues/48/comments","statuses_url":"https://api.github.com/repos/mchang6137/throttlebot/statuses/a4831fdd2172dbe02a3c8316c3ed4a07d5d5eef0","head":{"label":"emersonhsieh:disconnect_state","ref":"disconnect_state","sha":"a4831fdd2172dbe02a3c8316c3ed4a07d5d5eef0","user":{"login":"emersonhsieh","id":2308546,"node_id":"MDQ6VXNlcjIzMDg1NDY=","avatar_url":"https://avatars1.githubusercontent.com/u/2308546?v=4","gravatar_id":"","url":"https://api.github.com/users/emersonhsieh","html_url":"https://github.com/emersonhsieh","followers_url":"https://api.github.com/users/emersonhsieh/followers","following_url":"https://api.github.com/users/emersonhsieh/following{/other_user}","gists_url":"https://api.github.com/users/emersonhsieh/gists{/gist_id}","starred_url":"https://api.github.com/users/emersonhsieh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/emersonhsieh/subscriptions","organizations_url":"https://api.github.com/users/emersonhsieh/orgs","repos_url":"https://api.github.com/users/emersonhsieh/repos","events_url":"https://api.github.com/users/emersonhsieh/events{/privacy}","received_events_url":"https://api.github.com/users/emersonhsieh/received_events","type":"User","site_admin":false},"repo":{"id":126095107,"node_id":"MDEwOlJlcG9zaXRvcnkxMjYwOTUxMDc=","name":"throttlebot","full_name":"emersonhsieh/throttlebot","owner":{"login":"emersonhsieh","id":2308546,"node_id":"MDQ6VXNlcjIzMDg1NDY=","avatar_url":"https://avatars1.githubusercontent.com/u/2308546?v=4","gravatar_id":"","url":"https://api.github.com/users/emersonhsieh","html_url":"https://github.com/emersonhsieh","followers_url":"https://api.github.com/users/emersonhsieh/followers","following_url":"https://api.github.com/users/emersonhsieh/following{/other_user}","gists_url":"https://api.github.com/users/emersonhsieh/gists{/gist_id}","starred_url":"https://api.github.com/users/emersonhsieh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/emersonhsieh/subscriptions","organizations_url":"https://api.github.com/users/emersonhsieh/orgs","repos_url":"https://api.github.com/users/emersonhsieh/repos","events_url":"https://api.github.com/users/emersonhsieh/events{/privacy}","received_events_url":"https://api.github.com/users/emersonhsieh/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/emersonhsieh/throttlebot","description":"Understanding Performance through Stress Injection","fork":true,"url":"https://api.github.com/repos/emersonhsieh/throttlebot","forks_url":"https://api.github.com/repos/emersonhsieh/throttlebot/forks","keys_url":"https://api.github.com/repos/emersonhsieh/throttlebot/keys{/key_id}","collaborators_url":"https://api.github.com/repos/emersonhsieh/throttlebot/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/emersonhsieh/throttlebot/teams","hooks_url":"https://api.github.com/repos/emersonhsieh/throttlebot/hooks","issue_events_url":"https://api.github.com/repos/emersonhsieh/throttlebot/issues/events{/number}","events_url":"https://api.github.com/repos/emersonhsieh/throttlebot/events","assignees_url":"https://api.github.com/repos/emersonhsieh/throttlebot/assignees{/user}","branches_url":"https://api.github.com/repos/emersonhsieh/throttlebot/branches{/branch}","tags_url":"https://api.github.com/repos/emersonhsieh/throttlebot/tags","blobs_url":"https://api.github.com/repos/emersonhsieh/throttlebot/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/emersonhsieh/throttlebot/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/emersonhsieh/throttlebot/git/refs{/sha}","trees_url":"https://api.github.com/repos/emersonhsieh/throttlebot/git/trees{/sha}","statuses_url":"https://api.github.com/repos/emersonhsieh/throttlebot/statuses/{sha}","languages_url":"https://api.github.com/repos/emersonhsieh/throttlebot/languages","stargazers_url":"https://api.github.com/repos/emersonhsieh/throttlebot/stargazers","contributors_url":"https://api.github.com/repos/emersonhsieh/throttlebot/contributors","subscribers_url":"https://api.github.com/repos/emersonhsieh/throttlebot/subscribers","subscription_url":"https://api.github.com/repos/emersonhsieh/throttlebot/subscription","commits_url":"https://api.github.com/repos/emersonhsieh/throttlebot/commits{/sha}","git_commits_url":"https://api.github.com/repos/emersonhsieh/throttlebot/git/commits{/sha}","comments_url":"https://api.github.com/repos/emersonhsieh/throttlebot/comments{/number}","issue_comment_url":"https://api.github.com/repos/emersonhsieh/throttlebot/issues/comments{/number}","contents_url":"https://api.github.com/repos/emersonhsieh/throttlebot/contents/{+path}","compare_url":"https://api.github.com/repos/emersonhsieh/throttlebot/compare/{base}...{head}","merges_url":"https://api.github.com/repos/emersonhsieh/throttlebot/merges","archive_url":"https://api.github.com/repos/emersonhsieh/throttlebot/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/emersonhsieh/throttlebot/downloads","issues_url":"https://api.github.com/repos/emersonhsieh/throttlebot/issues{/number}","pulls_url":"https://api.github.com/repos/emersonhsieh/throttlebot/pulls{/number}","milestones_url":"https://api.github.com/repos/emersonhsieh/throttlebot/milestones{/number}","notifications_url":"https://api.github.com/repos/emersonhsieh/throttlebot/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/emersonhsieh/throttlebot/labels{/name}","releases_url":"https://api.github.com/repos/emersonhsieh/throttlebot/releases{/id}","deployments_url":"https://api.github.com/repos/emersonhsieh/throttlebot/deployments","created_at":"2018-03-20T23:19:53Z","updated_at":"2018-05-30T12:20:32Z","pushed_at":"2018-06-20T07:20:13Z","git_url":"git://github.com/emersonhsieh/throttlebot.git","ssh_url":"git@github.com:emersonhsieh/throttlebot.git","clone_url":"https://github.com/emersonhsieh/throttlebot.git","svn_url":"https://github.com/emersonhsieh/throttlebot","homepage":null,"size":6014,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"mchang6137:master","ref":"master","sha":"ebc09fcc7bc1622a4ae2980e1ecb3dfef73d2c81","user":{"login":"mchang6137","id":6517122,"node_id":"MDQ6VXNlcjY1MTcxMjI=","avatar_url":"https://avatars1.githubusercontent.com/u/6517122?v=4","gravatar_id":"","url":"https://api.github.com/users/mchang6137","html_url":"https://github.com/mchang6137","followers_url":"https://api.github.com/users/mchang6137/followers","following_url":"https://api.github.com/users/mchang6137/following{/other_user}","gists_url":"https://api.github.com/users/mchang6137/gists{/gist_id}","starred_url":"https://api.github.com/users/mchang6137/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mchang6137/subscriptions","organizations_url":"https://api.github.com/users/mchang6137/orgs","repos_url":"https://api.github.com/users/mchang6137/repos","events_url":"https://api.github.com/users/mchang6137/events{/privacy}","received_events_url":"https://api.github.com/users/mchang6137/received_events","type":"User","site_admin":false},"repo":{"id":85127138,"node_id":"MDEwOlJlcG9zaXRvcnk4NTEyNzEzOA==","name":"throttlebot","full_name":"mchang6137/throttlebot","owner":{"login":"mchang6137","id":6517122,"node_id":"MDQ6VXNlcjY1MTcxMjI=","avatar_url":"https://avatars1.githubusercontent.com/u/6517122?v=4","gravatar_id":"","url":"https://api.github.com/users/mchang6137","html_url":"https://github.com/mchang6137","followers_url":"https://api.github.com/users/mchang6137/followers","following_url":"https://api.github.com/users/mchang6137/following{/other_user}","gists_url":"https://api.github.com/users/mchang6137/gists{/gist_id}","starred_url":"https://api.github.com/users/mchang6137/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mchang6137/subscriptions","organizations_url":"https://api.github.com/users/mchang6137/orgs","repos_url":"https://api.github.com/users/mchang6137/repos","events_url":"https://api.github.com/users/mchang6137/events{/privacy}","received_events_url":"https://api.github.com/users/mchang6137/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mchang6137/throttlebot","description":"Understanding Performance through Stress Injection","fork":false,"url":"https://api.github.com/repos/mchang6137/throttlebot","forks_url":"https://api.github.com/repos/mchang6137/throttlebot/forks","keys_url":"https://api.github.com/repos/mchang6137/throttlebot/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mchang6137/throttlebot/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mchang6137/throttlebot/teams","hooks_url":"https://api.github.com/repos/mchang6137/throttlebot/hooks","issue_events_url":"https://api.github.com/repos/mchang6137/throttlebot/issues/events{/number}","events_url":"https://api.github.com/repos/mchang6137/throttlebot/events","assignees_url":"https://api.github.com/repos/mchang6137/throttlebot/assignees{/user}","branches_url":"https://api.github.com/repos/mchang6137/throttlebot/branches{/branch}","tags_url":"https://api.github.com/repos/mchang6137/throttlebot/tags","blobs_url":"https://api.github.com/repos/mchang6137/throttlebot/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mchang6137/throttlebot/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mchang6137/throttlebot/git/refs{/sha}","trees_url":"https://api.github.com/repos/mchang6137/throttlebot/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mchang6137/throttlebot/statuses/{sha}","languages_url":"https://api.github.com/repos/mchang6137/throttlebot/languages","stargazers_url":"https://api.github.com/repos/mchang6137/throttlebot/stargazers","contributors_url":"https://api.github.com/repos/mchang6137/throttlebot/contributors","subscribers_url":"https://api.github.com/repos/mchang6137/throttlebot/subscribers","subscription_url":"https://api.github.com/repos/mchang6137/throttlebot/subscription","commits_url":"https://api.github.com/repos/mchang6137/throttlebot/commits{/sha}","git_commits_url":"https://api.github.com/repos/mchang6137/throttlebot/git/commits{/sha}","comments_url":"https://api.github.com/repos/mchang6137/throttlebot/comments{/number}","issue_comment_url":"https://api.github.com/repos/mchang6137/throttlebot/issues/comments{/number}","contents_url":"https://api.github.com/repos/mchang6137/throttlebot/contents/{+path}","compare_url":"https://api.github.com/repos/mchang6137/throttlebot/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mchang6137/throttlebot/merges","archive_url":"https://api.github.com/repos/mchang6137/throttlebot/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mchang6137/throttlebot/downloads","issues_url":"https://api.github.com/repos/mchang6137/throttlebot/issues{/number}","pulls_url":"https://api.github.com/repos/mchang6137/throttlebot/pulls{/number}","milestones_url":"https://api.github.com/repos/mchang6137/throttlebot/milestones{/number}","notifications_url":"https://api.github.com/repos/mchang6137/throttlebot/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mchang6137/throttlebot/labels{/name}","releases_url":"https://api.github.com/repos/mchang6137/throttlebot/releases{/id}","deployments_url":"https://api.github.com/repos/mchang6137/throttlebot/deployments","created_at":"2017-03-15T22:27:56Z","updated_at":"2018-05-01T23:50:55Z","pushed_at":"2018-06-20T07:20:14Z","git_url":"git://github.com/mchang6137/throttlebot.git","ssh_url":"git@github.com:mchang6137/throttlebot.git","clone_url":"https://github.com/mchang6137/throttlebot.git","svn_url":"https://github.com/mchang6137/throttlebot","homepage":null,"size":5893,"stargazers_count":3,"watchers_count":3,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":9,"mirror_url":null,"archived":false,"open_issues_count":3,"license":null,"forks":9,"open_issues":3,"watchers":3,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mchang6137/throttlebot/pulls/48"},"html":{"href":"https://github.com/mchang6137/throttlebot/pull/48"},"issue":{"href":"https://api.github.com/repos/mchang6137/throttlebot/issues/48"},"comments":{"href":"https://api.github.com/repos/mchang6137/throttlebot/issues/48/comments"},"review_comments":{"href":"https://api.github.com/repos/mchang6137/throttlebot/pulls/48/comments"},"review_comment":{"href":"https://api.github.com/repos/mchang6137/throttlebot/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mchang6137/throttlebot/pulls/48/commits"},"statuses":{"href":"https://api.github.com/repos/mchang6137/throttlebot/statuses/a4831fdd2172dbe02a3c8316c3ed4a07d5d5eef0"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"emersonhsieh"}}