{"action":"closed","number":214,"pull_request":{"url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/pulls/214","id":37077558,"html_url":"https://github.com/MirantisWorkloadMobility/CloudFerry/pull/214","diff_url":"https://github.com/MirantisWorkloadMobility/CloudFerry/pull/214.diff","patch_url":"https://github.com/MirantisWorkloadMobility/CloudFerry/pull/214.patch","issue_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/issues/214","number":214,"state":"closed","locked":false,"title":"[SAIC-192] VM migration should transfer VM state","user":{"login":"Settis","id":1427656,"avatar_url":"https://avatars.githubusercontent.com/u/1427656?v=3","gravatar_id":"","url":"https://api.github.com/users/Settis","html_url":"https://github.com/Settis","followers_url":"https://api.github.com/users/Settis/followers","following_url":"https://api.github.com/users/Settis/following{/other_user}","gists_url":"https://api.github.com/users/Settis/gists{/gist_id}","starred_url":"https://api.github.com/users/Settis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Settis/subscriptions","organizations_url":"https://api.github.com/users/Settis/orgs","repos_url":"https://api.github.com/users/Settis/repos","events_url":"https://api.github.com/users/Settis/events{/privacy}","received_events_url":"https://api.github.com/users/Settis/received_events","type":"User","site_admin":false},"body":" Overview\r\n-------------------\r\nCurrently cloudferry sets VM state to ACTIVE regardless of original VM state. This should be modified to keep original state on DST.\r\n\r\nSee http://docs.openstack.org/developer/nova/devref/vmstates.html for VM states reference.\r\n\r\nStates to support (DST must have VMs in the same state as on SRC):\r\n-------------------\r\n - Active\r\n - Shutoff/Stopped\r\n - Stopped\r\n - Resized (?)\r\n\r\nSpecial case:\r\n-------------------\r\n - Suspended\r\n - Paused\r\n\r\nFor these states:\r\n # Move VM to SHUTOFF state;\r\n # Do cold migration\r\n # On the destination these VMs should be in SHUTOFF state\r\n\r\nStates which are *not* migrated (VMs are simply skipped):\r\n-------------------\r\n - Error\r\n - Build\r\n - Deleting\r\n - Soft deleted\r\n - Rescued\r\n\r\nInstances which are not migrated must be noted in the logs\r\n\r\nStates transfer map\r\n-------------------\r\nSource VM state|Dest VM state\r\n------------ | -------------\r\nActive|Active\r\nShutoff/Stopped|Shutoff/Stopped\r\nResized|Active\r\nSuspended|Shutoff/Stopped\r\nPaused|Shutoff/Stopped\r\nShelved|Shutoff/Stopped\r\nShelved Offloaded|Shutoff/Stopped\r\nSoft deleted|-\r\nError|-\r\nBuild|-\r\nDeleting|-\r\nRescued|-","created_at":"2015-06-05T23:02:23Z","updated_at":"2015-06-11T20:29:29Z","closed_at":"2015-06-11T20:29:29Z","merged_at":"2015-06-11T20:29:29Z","merge_commit_sha":"fcaeae4510ca41e0b2791fa008ab3c19ec7dadf3","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/pulls/214/commits","review_comments_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/pulls/214/comments","review_comment_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/pulls/comments{/number}","comments_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/issues/214/comments","statuses_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/statuses/108bb2d14ba5c58a204e4f6855e03937237ca088","head":{"label":"Settis:vmStatuses","ref":"vmStatuses","sha":"108bb2d14ba5c58a204e4f6855e03937237ca088","user":{"login":"Settis","id":1427656,"avatar_url":"https://avatars.githubusercontent.com/u/1427656?v=3","gravatar_id":"","url":"https://api.github.com/users/Settis","html_url":"https://github.com/Settis","followers_url":"https://api.github.com/users/Settis/followers","following_url":"https://api.github.com/users/Settis/following{/other_user}","gists_url":"https://api.github.com/users/Settis/gists{/gist_id}","starred_url":"https://api.github.com/users/Settis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Settis/subscriptions","organizations_url":"https://api.github.com/users/Settis/orgs","repos_url":"https://api.github.com/users/Settis/repos","events_url":"https://api.github.com/users/Settis/events{/privacy}","received_events_url":"https://api.github.com/users/Settis/received_events","type":"User","site_admin":false},"repo":{"id":30263000,"name":"CloudFerry","full_name":"Settis/CloudFerry","owner":{"login":"Settis","id":1427656,"avatar_url":"https://avatars.githubusercontent.com/u/1427656?v=3","gravatar_id":"","url":"https://api.github.com/users/Settis","html_url":"https://github.com/Settis","followers_url":"https://api.github.com/users/Settis/followers","following_url":"https://api.github.com/users/Settis/following{/other_user}","gists_url":"https://api.github.com/users/Settis/gists{/gist_id}","starred_url":"https://api.github.com/users/Settis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Settis/subscriptions","organizations_url":"https://api.github.com/users/Settis/orgs","repos_url":"https://api.github.com/users/Settis/repos","events_url":"https://api.github.com/users/Settis/events{/privacy}","received_events_url":"https://api.github.com/users/Settis/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Settis/CloudFerry","description":"CloudFerry is a cloud virtual workloads migration tool designed and developed by Mirantis Inc. ","fork":true,"url":"https://api.github.com/repos/Settis/CloudFerry","forks_url":"https://api.github.com/repos/Settis/CloudFerry/forks","keys_url":"https://api.github.com/repos/Settis/CloudFerry/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Settis/CloudFerry/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Settis/CloudFerry/teams","hooks_url":"https://api.github.com/repos/Settis/CloudFerry/hooks","issue_events_url":"https://api.github.com/repos/Settis/CloudFerry/issues/events{/number}","events_url":"https://api.github.com/repos/Settis/CloudFerry/events","assignees_url":"https://api.github.com/repos/Settis/CloudFerry/assignees{/user}","branches_url":"https://api.github.com/repos/Settis/CloudFerry/branches{/branch}","tags_url":"https://api.github.com/repos/Settis/CloudFerry/tags","blobs_url":"https://api.github.com/repos/Settis/CloudFerry/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Settis/CloudFerry/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Settis/CloudFerry/git/refs{/sha}","trees_url":"https://api.github.com/repos/Settis/CloudFerry/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Settis/CloudFerry/statuses/{sha}","languages_url":"https://api.github.com/repos/Settis/CloudFerry/languages","stargazers_url":"https://api.github.com/repos/Settis/CloudFerry/stargazers","contributors_url":"https://api.github.com/repos/Settis/CloudFerry/contributors","subscribers_url":"https://api.github.com/repos/Settis/CloudFerry/subscribers","subscription_url":"https://api.github.com/repos/Settis/CloudFerry/subscription","commits_url":"https://api.github.com/repos/Settis/CloudFerry/commits{/sha}","git_commits_url":"https://api.github.com/repos/Settis/CloudFerry/git/commits{/sha}","comments_url":"https://api.github.com/repos/Settis/CloudFerry/comments{/number}","issue_comment_url":"https://api.github.com/repos/Settis/CloudFerry/issues/comments{/number}","contents_url":"https://api.github.com/repos/Settis/CloudFerry/contents/{+path}","compare_url":"https://api.github.com/repos/Settis/CloudFerry/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Settis/CloudFerry/merges","archive_url":"https://api.github.com/repos/Settis/CloudFerry/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Settis/CloudFerry/downloads","issues_url":"https://api.github.com/repos/Settis/CloudFerry/issues{/number}","pulls_url":"https://api.github.com/repos/Settis/CloudFerry/pulls{/number}","milestones_url":"https://api.github.com/repos/Settis/CloudFerry/milestones{/number}","notifications_url":"https://api.github.com/repos/Settis/CloudFerry/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Settis/CloudFerry/labels{/name}","releases_url":"https://api.github.com/repos/Settis/CloudFerry/releases{/id}","created_at":"2015-02-03T20:31:14Z","updated_at":"2015-02-03T20:31:15Z","pushed_at":"2015-06-09T23:36:51Z","git_url":"git://github.com/Settis/CloudFerry.git","ssh_url":"git@github.com:Settis/CloudFerry.git","clone_url":"https://github.com/Settis/CloudFerry.git","svn_url":"https://github.com/Settis/CloudFerry","homepage":null,"size":1466,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"MirantisWorkloadMobility:devel","ref":"devel","sha":"ec0cf9c4cc05f3fd17c86af8e1437eede05f8709","user":{"login":"MirantisWorkloadMobility","id":8500817,"avatar_url":"https://avatars.githubusercontent.com/u/8500817?v=3","gravatar_id":"","url":"https://api.github.com/users/MirantisWorkloadMobility","html_url":"https://github.com/MirantisWorkloadMobility","followers_url":"https://api.github.com/users/MirantisWorkloadMobility/followers","following_url":"https://api.github.com/users/MirantisWorkloadMobility/following{/other_user}","gists_url":"https://api.github.com/users/MirantisWorkloadMobility/gists{/gist_id}","starred_url":"https://api.github.com/users/MirantisWorkloadMobility/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MirantisWorkloadMobility/subscriptions","organizations_url":"https://api.github.com/users/MirantisWorkloadMobility/orgs","repos_url":"https://api.github.com/users/MirantisWorkloadMobility/repos","events_url":"https://api.github.com/users/MirantisWorkloadMobility/events{/privacy}","received_events_url":"https://api.github.com/users/MirantisWorkloadMobility/received_events","type":"User","site_admin":false},"repo":{"id":23142392,"name":"CloudFerry","full_name":"MirantisWorkloadMobility/CloudFerry","owner":{"login":"MirantisWorkloadMobility","id":8500817,"avatar_url":"https://avatars.githubusercontent.com/u/8500817?v=3","gravatar_id":"","url":"https://api.github.com/users/MirantisWorkloadMobility","html_url":"https://github.com/MirantisWorkloadMobility","followers_url":"https://api.github.com/users/MirantisWorkloadMobility/followers","following_url":"https://api.github.com/users/MirantisWorkloadMobility/following{/other_user}","gists_url":"https://api.github.com/users/MirantisWorkloadMobility/gists{/gist_id}","starred_url":"https://api.github.com/users/MirantisWorkloadMobility/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MirantisWorkloadMobility/subscriptions","organizations_url":"https://api.github.com/users/MirantisWorkloadMobility/orgs","repos_url":"https://api.github.com/users/MirantisWorkloadMobility/repos","events_url":"https://api.github.com/users/MirantisWorkloadMobility/events{/privacy}","received_events_url":"https://api.github.com/users/MirantisWorkloadMobility/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/MirantisWorkloadMobility/CloudFerry","description":"CloudFerry is a cloud virtual workloads migration tool designed and developed by Mirantis Inc. ","fork":false,"url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry","forks_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/forks","keys_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/keys{/key_id}","collaborators_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/teams","hooks_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/hooks","issue_events_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/issues/events{/number}","events_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/events","assignees_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/assignees{/user}","branches_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/branches{/branch}","tags_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/tags","blobs_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/git/refs{/sha}","trees_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/git/trees{/sha}","statuses_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/statuses/{sha}","languages_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/languages","stargazers_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/stargazers","contributors_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/contributors","subscribers_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/subscribers","subscription_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/subscription","commits_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/commits{/sha}","git_commits_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/git/commits{/sha}","comments_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/comments{/number}","issue_comment_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/issues/comments{/number}","contents_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/contents/{+path}","compare_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/compare/{base}...{head}","merges_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/merges","archive_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/downloads","issues_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/issues{/number}","pulls_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/pulls{/number}","milestones_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/milestones{/number}","notifications_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/labels{/name}","releases_url":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/releases{/id}","created_at":"2014-08-20T09:00:38Z","updated_at":"2015-03-24T23:32:05Z","pushed_at":"2015-06-11T20:29:30Z","git_url":"git://github.com/MirantisWorkloadMobility/CloudFerry.git","ssh_url":"git@github.com:MirantisWorkloadMobility/CloudFerry.git","clone_url":"https://github.com/MirantisWorkloadMobility/CloudFerry.git","svn_url":"https://github.com/MirantisWorkloadMobility/CloudFerry","homepage":null,"size":3089,"stargazers_count":7,"watchers_count":7,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":16,"mirror_url":null,"open_issues_count":5,"forks":16,"open_issues":5,"watchers":7,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/pulls/214"},"html":{"href":"https://github.com/MirantisWorkloadMobility/CloudFerry/pull/214"},"issue":{"href":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/issues/214"},"comments":{"href":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/issues/214/comments"},"review_comments":{"href":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/pulls/214/comments"},"review_comment":{"href":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/pulls/214/commits"},"statuses":{"href":"https://api.github.com/repos/MirantisWorkloadMobility/CloudFerry/statuses/108bb2d14ba5c58a204e4f6855e03937237ca088"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"roman-verchikov","id":386276,"avatar_url":"https://avatars.githubusercontent.com/u/386276?v=3","gravatar_id":"","url":"https://api.github.com/users/roman-verchikov","html_url":"https://github.com/roman-verchikov","followers_url":"https://api.github.com/users/roman-verchikov/followers","following_url":"https://api.github.com/users/roman-verchikov/following{/other_user}","gists_url":"https://api.github.com/users/roman-verchikov/gists{/gist_id}","starred_url":"https://api.github.com/users/roman-verchikov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roman-verchikov/subscriptions","organizations_url":"https://api.github.com/users/roman-verchikov/orgs","repos_url":"https://api.github.com/users/roman-verchikov/repos","events_url":"https://api.github.com/users/roman-verchikov/events{/privacy}","received_events_url":"https://api.github.com/users/roman-verchikov/received_events","type":"User","site_admin":false},"comments":15,"review_comments":0,"commits":1,"additions":62,"deletions":3,"changed_files":6}}