{"action":"created","comment":{"url":"https://api.github.com/repos/softlayer/softlayer-python/pulls/comments/75152959","id":75152959,"diff_hunk":"@@ -0,0 +1,23 @@\n+\"\"\"Failback from a replicant volume.\"\"\"\n+# :license: MIT, see LICENSE for more details.\n+\n+import click\n+import SoftLayer\n+from SoftLayer.CLI import environment\n+\n+\n+@click.command()\n+@click.argument('volume-id')\n+@click.option('--replicant-id', help=\"ID of the replicant volume\")\n+@environment.pass_env\n+def cli(env, volume_id, replicant_id):\n+    \"\"\"Failback a block volume from the given replicant volume.\"\"\"\n+    block_storage_manager = SoftLayer.BlockStorageManager(env.client)\n+\n+    success = block_storage_manager.failback_from_replicant(\n+        volume_id,\n+        replicant_id\n+    )\n+\n+    if success:","path":"SoftLayer/CLI/block/replication/failback.py","position":22,"original_position":22,"commit_id":"8a62c2c55fdf5e6572be9c8ae22eedd62e8eb738","original_commit_id":"8a62c2c55fdf5e6572be9c8ae22eedd62e8eb738","user":{"login":"sudorandom","id":310004,"avatar_url":"https://avatars.githubusercontent.com/u/310004?v=3","gravatar_id":"","url":"https://api.github.com/users/sudorandom","html_url":"https://github.com/sudorandom","followers_url":"https://api.github.com/users/sudorandom/followers","following_url":"https://api.github.com/users/sudorandom/following{/other_user}","gists_url":"https://api.github.com/users/sudorandom/gists{/gist_id}","starred_url":"https://api.github.com/users/sudorandom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sudorandom/subscriptions","organizations_url":"https://api.github.com/users/sudorandom/orgs","repos_url":"https://api.github.com/users/sudorandom/repos","events_url":"https://api.github.com/users/sudorandom/events{/privacy}","received_events_url":"https://api.github.com/users/sudorandom/received_events","type":"User","site_admin":false},"body":"If success is `False`, shouldn't we return some kind of error message to the user? I'm not sure what conditions `False` would be returned over returning an exception.","created_at":"2016-08-17T16:05:25Z","updated_at":"2016-08-17T16:05:25Z","html_url":"https://github.com/softlayer/softlayer-python/pull/752#discussion_r75152959","pull_request_url":"https://api.github.com/repos/softlayer/softlayer-python/pulls/752","_links":{"self":{"href":"https://api.github.com/repos/softlayer/softlayer-python/pulls/comments/75152959"},"html":{"href":"https://github.com/softlayer/softlayer-python/pull/752#discussion_r75152959"},"pull_request":{"href":"https://api.github.com/repos/softlayer/softlayer-python/pulls/752"}}},"pull_request":{"url":"https://api.github.com/repos/softlayer/softlayer-python/pulls/752","id":81571756,"html_url":"https://github.com/softlayer/softlayer-python/pull/752","diff_url":"https://github.com/softlayer/softlayer-python/pull/752.diff","patch_url":"https://github.com/softlayer/softlayer-python/pull/752.patch","issue_url":"https://api.github.com/repos/softlayer/softlayer-python/issues/752","number":752,"state":"open","locked":false,"title":"Add File & Block replication commands and output","user":{"login":"dpickle2","id":16600741,"avatar_url":"https://avatars.githubusercontent.com/u/16600741?v=3","gravatar_id":"","url":"https://api.github.com/users/dpickle2","html_url":"https://github.com/dpickle2","followers_url":"https://api.github.com/users/dpickle2/followers","following_url":"https://api.github.com/users/dpickle2/following{/other_user}","gists_url":"https://api.github.com/users/dpickle2/gists{/gist_id}","starred_url":"https://api.github.com/users/dpickle2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dpickle2/subscriptions","organizations_url":"https://api.github.com/users/dpickle2/orgs","repos_url":"https://api.github.com/users/dpickle2/repos","events_url":"https://api.github.com/users/dpickle2/events{/privacy}","received_events_url":"https://api.github.com/users/dpickle2/received_events","type":"User","site_admin":false},"body":"This pull request includes several new commands and updates\r\nto CLI output for supporting File and Block volume replication.\r\n\r\nCode developed collaboratively by:\r\n    ccorales95  Cristina Corales <ccorales95@gmail.com>\r\n    kyubifire   Nilo Lisboa <nilo_bl@hotmail.com>\r\n    VuKevin     Kevin Vu <VuKevin@icloud.com>\r\n    dpickle2    David Pickle <dpickle29@gmail.com>\r\n\r\n* Add support for ordering replicant volumes [Block & File]\r\n\r\n* Add support for replicant failover & failback [Block & File]\r\n\r\n* Add additional output for commands:\r\n    Add replicant info to volume-detail output [Block & File]\r\n    Show replicant volumes in volume-list output [Block & File]","created_at":"2016-08-17T01:33:10Z","updated_at":"2016-08-17T16:05:25Z","closed_at":null,"merged_at":null,"merge_commit_sha":"9d46b8d2474b9b34d6ca72968a30e3071f966b18","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/softlayer/softlayer-python/pulls/752/commits","review_comments_url":"https://api.github.com/repos/softlayer/softlayer-python/pulls/752/comments","review_comment_url":"https://api.github.com/repos/softlayer/softlayer-python/pulls/comments{/number}","comments_url":"https://api.github.com/repos/softlayer/softlayer-python/issues/752/comments","statuses_url":"https://api.github.com/repos/softlayer/softlayer-python/statuses/8a62c2c55fdf5e6572be9c8ae22eedd62e8eb738","head":{"label":"kyubifire:replication","ref":"replication","sha":"8a62c2c55fdf5e6572be9c8ae22eedd62e8eb738","user":{"login":"kyubifire","id":14795365,"avatar_url":"https://avatars.githubusercontent.com/u/14795365?v=3","gravatar_id":"","url":"https://api.github.com/users/kyubifire","html_url":"https://github.com/kyubifire","followers_url":"https://api.github.com/users/kyubifire/followers","following_url":"https://api.github.com/users/kyubifire/following{/other_user}","gists_url":"https://api.github.com/users/kyubifire/gists{/gist_id}","starred_url":"https://api.github.com/users/kyubifire/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kyubifire/subscriptions","organizations_url":"https://api.github.com/users/kyubifire/orgs","repos_url":"https://api.github.com/users/kyubifire/repos","events_url":"https://api.github.com/users/kyubifire/events{/privacy}","received_events_url":"https://api.github.com/users/kyubifire/received_events","type":"User","site_admin":false},"repo":{"id":61662598,"name":"softlayer-python","full_name":"kyubifire/softlayer-python","owner":{"login":"kyubifire","id":14795365,"avatar_url":"https://avatars.githubusercontent.com/u/14795365?v=3","gravatar_id":"","url":"https://api.github.com/users/kyubifire","html_url":"https://github.com/kyubifire","followers_url":"https://api.github.com/users/kyubifire/followers","following_url":"https://api.github.com/users/kyubifire/following{/other_user}","gists_url":"https://api.github.com/users/kyubifire/gists{/gist_id}","starred_url":"https://api.github.com/users/kyubifire/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kyubifire/subscriptions","organizations_url":"https://api.github.com/users/kyubifire/orgs","repos_url":"https://api.github.com/users/kyubifire/repos","events_url":"https://api.github.com/users/kyubifire/events{/privacy}","received_events_url":"https://api.github.com/users/kyubifire/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/kyubifire/softlayer-python","description":"A set of Python libraries that assist in calling the SoftLayer API.","fork":true,"url":"https://api.github.com/repos/kyubifire/softlayer-python","forks_url":"https://api.github.com/repos/kyubifire/softlayer-python/forks","keys_url":"https://api.github.com/repos/kyubifire/softlayer-python/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kyubifire/softlayer-python/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kyubifire/softlayer-python/teams","hooks_url":"https://api.github.com/repos/kyubifire/softlayer-python/hooks","issue_events_url":"https://api.github.com/repos/kyubifire/softlayer-python/issues/events{/number}","events_url":"https://api.github.com/repos/kyubifire/softlayer-python/events","assignees_url":"https://api.github.com/repos/kyubifire/softlayer-python/assignees{/user}","branches_url":"https://api.github.com/repos/kyubifire/softlayer-python/branches{/branch}","tags_url":"https://api.github.com/repos/kyubifire/softlayer-python/tags","blobs_url":"https://api.github.com/repos/kyubifire/softlayer-python/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kyubifire/softlayer-python/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kyubifire/softlayer-python/git/refs{/sha}","trees_url":"https://api.github.com/repos/kyubifire/softlayer-python/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kyubifire/softlayer-python/statuses/{sha}","languages_url":"https://api.github.com/repos/kyubifire/softlayer-python/languages","stargazers_url":"https://api.github.com/repos/kyubifire/softlayer-python/stargazers","contributors_url":"https://api.github.com/repos/kyubifire/softlayer-python/contributors","subscribers_url":"https://api.github.com/repos/kyubifire/softlayer-python/subscribers","subscription_url":"https://api.github.com/repos/kyubifire/softlayer-python/subscription","commits_url":"https://api.github.com/repos/kyubifire/softlayer-python/commits{/sha}","git_commits_url":"https://api.github.com/repos/kyubifire/softlayer-python/git/commits{/sha}","comments_url":"https://api.github.com/repos/kyubifire/softlayer-python/comments{/number}","issue_comment_url":"https://api.github.com/repos/kyubifire/softlayer-python/issues/comments{/number}","contents_url":"https://api.github.com/repos/kyubifire/softlayer-python/contents/{+path}","compare_url":"https://api.github.com/repos/kyubifire/softlayer-python/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kyubifire/softlayer-python/merges","archive_url":"https://api.github.com/repos/kyubifire/softlayer-python/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kyubifire/softlayer-python/downloads","issues_url":"https://api.github.com/repos/kyubifire/softlayer-python/issues{/number}","pulls_url":"https://api.github.com/repos/kyubifire/softlayer-python/pulls{/number}","milestones_url":"https://api.github.com/repos/kyubifire/softlayer-python/milestones{/number}","notifications_url":"https://api.github.com/repos/kyubifire/softlayer-python/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kyubifire/softlayer-python/labels{/name}","releases_url":"https://api.github.com/repos/kyubifire/softlayer-python/releases{/id}","deployments_url":"https://api.github.com/repos/kyubifire/softlayer-python/deployments","created_at":"2016-06-21T19:51:10Z","updated_at":"2016-07-06T15:40:24Z","pushed_at":"2016-08-17T01:28:24Z","git_url":"git://github.com/kyubifire/softlayer-python.git","ssh_url":"git@github.com:kyubifire/softlayer-python.git","clone_url":"https://github.com/kyubifire/softlayer-python.git","svn_url":"https://github.com/kyubifire/softlayer-python","homepage":"http://softlayer.github.io/softlayer-python/","size":9490,"stargazers_count":1,"watchers_count":1,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":5,"forks":0,"open_issues":5,"watchers":1,"default_branch":"master"}},"base":{"label":"softlayer:master","ref":"master","sha":"b07a1908540da81b6415d734908986427161a835","user":{"login":"softlayer","id":49550,"avatar_url":"https://avatars.githubusercontent.com/u/49550?v=3","gravatar_id":"","url":"https://api.github.com/users/softlayer","html_url":"https://github.com/softlayer","followers_url":"https://api.github.com/users/softlayer/followers","following_url":"https://api.github.com/users/softlayer/following{/other_user}","gists_url":"https://api.github.com/users/softlayer/gists{/gist_id}","starred_url":"https://api.github.com/users/softlayer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/softlayer/subscriptions","organizations_url":"https://api.github.com/users/softlayer/orgs","repos_url":"https://api.github.com/users/softlayer/repos","events_url":"https://api.github.com/users/softlayer/events{/privacy}","received_events_url":"https://api.github.com/users/softlayer/received_events","type":"Organization","site_admin":false},"repo":{"id":622291,"name":"softlayer-python","full_name":"softlayer/softlayer-python","owner":{"login":"softlayer","id":49550,"avatar_url":"https://avatars.githubusercontent.com/u/49550?v=3","gravatar_id":"","url":"https://api.github.com/users/softlayer","html_url":"https://github.com/softlayer","followers_url":"https://api.github.com/users/softlayer/followers","following_url":"https://api.github.com/users/softlayer/following{/other_user}","gists_url":"https://api.github.com/users/softlayer/gists{/gist_id}","starred_url":"https://api.github.com/users/softlayer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/softlayer/subscriptions","organizations_url":"https://api.github.com/users/softlayer/orgs","repos_url":"https://api.github.com/users/softlayer/repos","events_url":"https://api.github.com/users/softlayer/events{/privacy}","received_events_url":"https://api.github.com/users/softlayer/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/softlayer/softlayer-python","description":"A set of Python libraries that assist in calling the SoftLayer API.","fork":false,"url":"https://api.github.com/repos/softlayer/softlayer-python","forks_url":"https://api.github.com/repos/softlayer/softlayer-python/forks","keys_url":"https://api.github.com/repos/softlayer/softlayer-python/keys{/key_id}","collaborators_url":"https://api.github.com/repos/softlayer/softlayer-python/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/softlayer/softlayer-python/teams","hooks_url":"https://api.github.com/repos/softlayer/softlayer-python/hooks","issue_events_url":"https://api.github.com/repos/softlayer/softlayer-python/issues/events{/number}","events_url":"https://api.github.com/repos/softlayer/softlayer-python/events","assignees_url":"https://api.github.com/repos/softlayer/softlayer-python/assignees{/user}","branches_url":"https://api.github.com/repos/softlayer/softlayer-python/branches{/branch}","tags_url":"https://api.github.com/repos/softlayer/softlayer-python/tags","blobs_url":"https://api.github.com/repos/softlayer/softlayer-python/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/softlayer/softlayer-python/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/softlayer/softlayer-python/git/refs{/sha}","trees_url":"https://api.github.com/repos/softlayer/softlayer-python/git/trees{/sha}","statuses_url":"https://api.github.com/repos/softlayer/softlayer-python/statuses/{sha}","languages_url":"https://api.github.com/repos/softlayer/softlayer-python/languages","stargazers_url":"https://api.github.com/repos/softlayer/softlayer-python/stargazers","contributors_url":"https://api.github.com/repos/softlayer/softlayer-python/contributors","subscribers_url":"https://api.github.com/repos/softlayer/softlayer-python/subscribers","subscription_url":"https://api.github.com/repos/softlayer/softlayer-python/subscription","commits_url":"https://api.github.com/repos/softlayer/softlayer-python/commits{/sha}","git_commits_url":"https://api.github.com/repos/softlayer/softlayer-python/git/commits{/sha}","comments_url":"https://api.github.com/repos/softlayer/softlayer-python/comments{/number}","issue_comment_url":"https://api.github.com/repos/softlayer/softlayer-python/issues/comments{/number}","contents_url":"https://api.github.com/repos/softlayer/softlayer-python/contents/{+path}","compare_url":"https://api.github.com/repos/softlayer/softlayer-python/compare/{base}...{head}","merges_url":"https://api.github.com/repos/softlayer/softlayer-python/merges","archive_url":"https://api.github.com/repos/softlayer/softlayer-python/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/softlayer/softlayer-python/downloads","issues_url":"https://api.github.com/repos/softlayer/softlayer-python/issues{/number}","pulls_url":"https://api.github.com/repos/softlayer/softlayer-python/pulls{/number}","milestones_url":"https://api.github.com/repos/softlayer/softlayer-python/milestones{/number}","notifications_url":"https://api.github.com/repos/softlayer/softlayer-python/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/softlayer/softlayer-python/labels{/name}","releases_url":"https://api.github.com/repos/softlayer/softlayer-python/releases{/id}","deployments_url":"https://api.github.com/repos/softlayer/softlayer-python/deployments","created_at":"2010-04-21T20:36:31Z","updated_at":"2016-08-16T16:36:37Z","pushed_at":"2016-08-17T15:50:59Z","git_url":"git://github.com/softlayer/softlayer-python.git","ssh_url":"git@github.com:softlayer/softlayer-python.git","clone_url":"https://github.com/softlayer/softlayer-python.git","svn_url":"https://github.com/softlayer/softlayer-python","homepage":"http://softlayer.github.io/softlayer-python/","size":10839,"stargazers_count":122,"watchers_count":122,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":113,"mirror_url":null,"open_issues_count":29,"forks":113,"open_issues":29,"watchers":122,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/softlayer/softlayer-python/pulls/752"},"html":{"href":"https://github.com/softlayer/softlayer-python/pull/752"},"issue":{"href":"https://api.github.com/repos/softlayer/softlayer-python/issues/752"},"comments":{"href":"https://api.github.com/repos/softlayer/softlayer-python/issues/752/comments"},"review_comments":{"href":"https://api.github.com/repos/softlayer/softlayer-python/pulls/752/comments"},"review_comment":{"href":"https://api.github.com/repos/softlayer/softlayer-python/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/softlayer/softlayer-python/pulls/752/commits"},"statuses":{"href":"https://api.github.com/repos/softlayer/softlayer-python/statuses/8a62c2c55fdf5e6572be9c8ae22eedd62e8eb738"}}}}
{"actor":{"display_login":"sudorandom"}}