{"action":"created","comment":{"url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/pulls/comments/34372944","id":34372944,"diff_hunk":"@@ -15,11 +15,48 @@ It uses the OpenStack Pythons API:\n * python-glanceclient\n * python-cinderclient\n * python-neutronclient\n+* python-swiftclient\n \n Components\n ----------\n \n \n+How to use\n+----------\n+\n+The procedure works by invoking the scripts corresponding to different phases:\n+\n+*phase0: phase0_generateuserlist.py. This scripts generate the list of expired\n+trial users. The output of the script is the file users_lists.txt. This script\n+requires the admin credential.\n+\n+*phase1: phase1_resetpasswords.py. This scripts has as input the file\n+users_list.txt. It set a new random password for each user and generate the file\n+users_credentials.txt with the user, password and tenant for each user. This\n+script also requires the admin credential\n+\n+*phase2: phase2_stopvms.py. This scripts does not delete anything, yet. It\n+stops the VMs of the users and make private their shared images. The idea is\n+to grant a grace period to users to detect that their resources are not\n+available before they are beyond redemption. This script does not require the\n+admin account, because it applies the user' credential from users_credentials.txt.\n+It generates the file imagesinuse.pickle.\n+\n+*phase2b: phase2b_detectimagesinuse.py. This is an optional script, to detect images\n+owned by the user, but in use by other tenants. Theoretically deleting a image\n+in use by a VM doesn't break the VM, but if you prefer avoid deleting that\n+images, invoke this script before phase3. The script purge_images.py may be\n+invoked after, to delete the images with no VM anymore. This scripts requires\n+an admin credential.\n+\n+*phase3: phase3_delete.py. This is the point of no return. Resources are\n+removed and cannot be recover. This script does not require the admin","path":"README.rst","position":39,"original_position":39,"commit_id":"821972c04a0720c2afdc9cdffa977b1da275d41b","original_commit_id":"821972c04a0720c2afdc9cdffa977b1da275d41b","user":{"login":"flopezag","id":1379796,"avatar_url":"https://avatars.githubusercontent.com/u/1379796?v=3","gravatar_id":"","url":"https://api.github.com/users/flopezag","html_url":"https://github.com/flopezag","followers_url":"https://api.github.com/users/flopezag/followers","following_url":"https://api.github.com/users/flopezag/following{/other_user}","gists_url":"https://api.github.com/users/flopezag/gists{/gist_id}","starred_url":"https://api.github.com/users/flopezag/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/flopezag/subscriptions","organizations_url":"https://api.github.com/users/flopezag/orgs","repos_url":"https://api.github.com/users/flopezag/repos","events_url":"https://api.github.com/users/flopezag/events{/privacy}","received_events_url":"https://api.github.com/users/flopezag/received_events","type":"User","site_admin":false},"body":"cannot be recovered","created_at":"2015-07-10T16:48:06Z","updated_at":"2015-07-10T16:48:06Z","html_url":"https://github.com/chemaper/delete_os_tenant_resources/pull/8#discussion_r34372944","pull_request_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/pulls/8","_links":{"self":{"href":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/pulls/comments/34372944"},"html":{"href":"https://github.com/chemaper/delete_os_tenant_resources/pull/8#discussion_r34372944"},"pull_request":{"href":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/pulls/8"}}},"pull_request":{"url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/pulls/8","id":39700096,"html_url":"https://github.com/chemaper/delete_os_tenant_resources/pull/8","diff_url":"https://github.com/chemaper/delete_os_tenant_resources/pull/8.diff","patch_url":"https://github.com/chemaper/delete_os_tenant_resources/pull/8.patch","issue_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/issues/8","number":8,"state":"open","locked":false,"title":"Feature/claudia 5279","user":{"login":"chemaper","id":8962900,"avatar_url":"https://avatars.githubusercontent.com/u/8962900?v=3","gravatar_id":"","url":"https://api.github.com/users/chemaper","html_url":"https://github.com/chemaper","followers_url":"https://api.github.com/users/chemaper/followers","following_url":"https://api.github.com/users/chemaper/following{/other_user}","gists_url":"https://api.github.com/users/chemaper/gists{/gist_id}","starred_url":"https://api.github.com/users/chemaper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chemaper/subscriptions","organizations_url":"https://api.github.com/users/chemaper/orgs","repos_url":"https://api.github.com/users/chemaper/repos","events_url":"https://api.github.com/users/chemaper/events{/privacy}","received_events_url":"https://api.github.com/users/chemaper/received_events","type":"User","site_admin":false},"body":"#### Reviewers\r\n\r\n@flopezag\r\n\r\n#### Description\r\nClaudia-5279\r\nchange user from trial -> basic\r\n\r\n#### Testing\r\nLocally\r\n","created_at":"2015-07-10T16:19:49Z","updated_at":"2015-07-10T16:48:06Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2c7da666d4847a462d29d6ad116b1b76defbd9af","assignee":{"login":"flopezag","id":1379796,"avatar_url":"https://avatars.githubusercontent.com/u/1379796?v=3","gravatar_id":"","url":"https://api.github.com/users/flopezag","html_url":"https://github.com/flopezag","followers_url":"https://api.github.com/users/flopezag/followers","following_url":"https://api.github.com/users/flopezag/following{/other_user}","gists_url":"https://api.github.com/users/flopezag/gists{/gist_id}","starred_url":"https://api.github.com/users/flopezag/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/flopezag/subscriptions","organizations_url":"https://api.github.com/users/flopezag/orgs","repos_url":"https://api.github.com/users/flopezag/repos","events_url":"https://api.github.com/users/flopezag/events{/privacy}","received_events_url":"https://api.github.com/users/flopezag/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/pulls/8/commits","review_comments_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/pulls/8/comments","review_comment_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/pulls/comments{/number}","comments_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/issues/8/comments","statuses_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/statuses/821972c04a0720c2afdc9cdffa977b1da275d41b","head":{"label":"chemaper:feature/claudia-5279","ref":"feature/claudia-5279","sha":"821972c04a0720c2afdc9cdffa977b1da275d41b","user":{"login":"chemaper","id":8962900,"avatar_url":"https://avatars.githubusercontent.com/u/8962900?v=3","gravatar_id":"","url":"https://api.github.com/users/chemaper","html_url":"https://github.com/chemaper","followers_url":"https://api.github.com/users/chemaper/followers","following_url":"https://api.github.com/users/chemaper/following{/other_user}","gists_url":"https://api.github.com/users/chemaper/gists{/gist_id}","starred_url":"https://api.github.com/users/chemaper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chemaper/subscriptions","organizations_url":"https://api.github.com/users/chemaper/orgs","repos_url":"https://api.github.com/users/chemaper/repos","events_url":"https://api.github.com/users/chemaper/events{/privacy}","received_events_url":"https://api.github.com/users/chemaper/received_events","type":"User","site_admin":false},"repo":{"id":35614972,"name":"delete_os_tenant_resources","full_name":"chemaper/delete_os_tenant_resources","owner":{"login":"chemaper","id":8962900,"avatar_url":"https://avatars.githubusercontent.com/u/8962900?v=3","gravatar_id":"","url":"https://api.github.com/users/chemaper","html_url":"https://github.com/chemaper","followers_url":"https://api.github.com/users/chemaper/followers","following_url":"https://api.github.com/users/chemaper/following{/other_user}","gists_url":"https://api.github.com/users/chemaper/gists{/gist_id}","starred_url":"https://api.github.com/users/chemaper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chemaper/subscriptions","organizations_url":"https://api.github.com/users/chemaper/orgs","repos_url":"https://api.github.com/users/chemaper/repos","events_url":"https://api.github.com/users/chemaper/events{/privacy}","received_events_url":"https://api.github.com/users/chemaper/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/chemaper/delete_os_tenant_resources","description":"python code to delete the resources of the tenant","fork":false,"url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources","forks_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/forks","keys_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/teams","hooks_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/hooks","issue_events_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/issues/events{/number}","events_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/events","assignees_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/assignees{/user}","branches_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/branches{/branch}","tags_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/tags","blobs_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/git/refs{/sha}","trees_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/statuses/{sha}","languages_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/languages","stargazers_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/stargazers","contributors_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/contributors","subscribers_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/subscribers","subscription_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/subscription","commits_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/commits{/sha}","git_commits_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/git/commits{/sha}","comments_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/comments{/number}","issue_comment_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/issues/comments{/number}","contents_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/contents/{+path}","compare_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/merges","archive_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/downloads","issues_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/issues{/number}","pulls_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/pulls{/number}","milestones_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/milestones{/number}","notifications_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/labels{/name}","releases_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/releases{/id}","created_at":"2015-05-14T14:13:24Z","updated_at":"2015-05-14T14:23:02Z","pushed_at":"2015-07-10T16:19:49Z","git_url":"git://github.com/chemaper/delete_os_tenant_resources.git","ssh_url":"git@github.com:chemaper/delete_os_tenant_resources.git","clone_url":"https://github.com/chemaper/delete_os_tenant_resources.git","svn_url":"https://github.com/chemaper/delete_os_tenant_resources","homepage":null,"size":284,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"develop"}},"base":{"label":"chemaper:develop","ref":"develop","sha":"6ff0f25aa3bb8639e08fcb5e8f170eb025a5d45b","user":{"login":"chemaper","id":8962900,"avatar_url":"https://avatars.githubusercontent.com/u/8962900?v=3","gravatar_id":"","url":"https://api.github.com/users/chemaper","html_url":"https://github.com/chemaper","followers_url":"https://api.github.com/users/chemaper/followers","following_url":"https://api.github.com/users/chemaper/following{/other_user}","gists_url":"https://api.github.com/users/chemaper/gists{/gist_id}","starred_url":"https://api.github.com/users/chemaper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chemaper/subscriptions","organizations_url":"https://api.github.com/users/chemaper/orgs","repos_url":"https://api.github.com/users/chemaper/repos","events_url":"https://api.github.com/users/chemaper/events{/privacy}","received_events_url":"https://api.github.com/users/chemaper/received_events","type":"User","site_admin":false},"repo":{"id":35614972,"name":"delete_os_tenant_resources","full_name":"chemaper/delete_os_tenant_resources","owner":{"login":"chemaper","id":8962900,"avatar_url":"https://avatars.githubusercontent.com/u/8962900?v=3","gravatar_id":"","url":"https://api.github.com/users/chemaper","html_url":"https://github.com/chemaper","followers_url":"https://api.github.com/users/chemaper/followers","following_url":"https://api.github.com/users/chemaper/following{/other_user}","gists_url":"https://api.github.com/users/chemaper/gists{/gist_id}","starred_url":"https://api.github.com/users/chemaper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chemaper/subscriptions","organizations_url":"https://api.github.com/users/chemaper/orgs","repos_url":"https://api.github.com/users/chemaper/repos","events_url":"https://api.github.com/users/chemaper/events{/privacy}","received_events_url":"https://api.github.com/users/chemaper/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/chemaper/delete_os_tenant_resources","description":"python code to delete the resources of the tenant","fork":false,"url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources","forks_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/forks","keys_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/teams","hooks_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/hooks","issue_events_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/issues/events{/number}","events_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/events","assignees_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/assignees{/user}","branches_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/branches{/branch}","tags_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/tags","blobs_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/git/refs{/sha}","trees_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/statuses/{sha}","languages_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/languages","stargazers_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/stargazers","contributors_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/contributors","subscribers_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/subscribers","subscription_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/subscription","commits_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/commits{/sha}","git_commits_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/git/commits{/sha}","comments_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/comments{/number}","issue_comment_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/issues/comments{/number}","contents_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/contents/{+path}","compare_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/merges","archive_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/downloads","issues_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/issues{/number}","pulls_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/pulls{/number}","milestones_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/milestones{/number}","notifications_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/labels{/name}","releases_url":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/releases{/id}","created_at":"2015-05-14T14:13:24Z","updated_at":"2015-05-14T14:23:02Z","pushed_at":"2015-07-10T16:19:49Z","git_url":"git://github.com/chemaper/delete_os_tenant_resources.git","ssh_url":"git@github.com:chemaper/delete_os_tenant_resources.git","clone_url":"https://github.com/chemaper/delete_os_tenant_resources.git","svn_url":"https://github.com/chemaper/delete_os_tenant_resources","homepage":null,"size":284,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/pulls/8"},"html":{"href":"https://github.com/chemaper/delete_os_tenant_resources/pull/8"},"issue":{"href":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/issues/8"},"comments":{"href":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/issues/8/comments"},"review_comments":{"href":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/pulls/8/comments"},"review_comment":{"href":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/pulls/8/commits"},"statuses":{"href":"https://api.github.com/repos/chemaper/delete_os_tenant_resources/statuses/821972c04a0720c2afdc9cdffa977b1da275d41b"}}}}