{"action":"created","comment":{"url":"https://api.github.com/repos/ceph/ceph-ansible/pulls/comments/71488350","id":71488350,"diff_hunk":"@@ -1,43 +1,447 @@\n ---\n # This playbook purges a containerized Ceph cluster\n-# It removes: packages, configuration files and ALL THE DATA\n+# It removes: packages, containers, configuration files and ALL THE DATA\n \n-- hosts:\n-  - mons\n-  - osds\n+- name: confirm whether user really meant to purge the cluster\n+\n+  hosts:\n+    - localhost\n+\n+  vars_prompt:\n+    - name: ireallymeanit\n+      prompt: Are you sure you want to purge the cluster?\n+      default: 'no'\n+      private: no\n+\n+  tasks:\n+  - name: exit playbook, if user did not mean to purge cluster\n+    fail:\n+      msg: >\n+        \"Exiting purge-docker-cluster playbook, cluster was NOT purged.\n+         To purge the cluster, either say 'yes' on the prompt or\n+         or use `-e ireallymeanit=yes` on the command line when\n+         invoking the playbook\"\n+    when: ireallymeanit != 'yes'\n+\n+\n+- name: retrieve variables\n+\n+  hosts:\n+    - all\n+    - localhost\n+\n+  tasks:\n+    - include_vars: roles/ceph-common/defaults/main.yml\n+    - include_vars: roles/ceph-mon/defaults/main.yml\n+    - include_vars: roles/ceph-osd/defaults/main.yml\n+    - include_vars: roles/ceph-mds/defaults/main.yml\n+    - include_vars: roles/ceph-rgw/defaults/main.yml\n+    - include_vars: roles/ceph-nfs/defaults/main.yml\n+    - include_vars: roles/ceph-restapi/defaults/main.yml\n+    - include_vars: group_vars/all\n+\n+    - name: check if it is Atomic host\n+      stat: path=/run/ostree-booted\n+      register: stat_ostree\n+\n+    - name: set fact for using Atomic host\n+      set_fact:\n+        is_atomic: \"{{ stat_ostree.stat.exists }}\"\n+\n+\n+- name: purge ceph mds cluster\n+\n+  hosts:\n+    - mdss\n+\n+  become: true\n \n   tasks:\n+  - name: disable ceph mds service\n+    service:\n+      name: \"ceph-mds@{{ ansible_hostname }}\"\n+      state: stopped\n+      enabled: no\n+    ignore_errors: true\n+\n+  - name: remove ceph mds container\n+    docker:\n+      image: \"{{ ceph_mds_docker_username }}/{{ ceph_mds_docker_imagename }}:{{ ceph_mds_docker_image_tag }}\"\n+      name: \"{{ ansible_hostname }}\"\n+      state: absent\n+    ignore_errors: true\n+\n+  - name: remove ceph mds service\n+    file:\n+        path: /etc/systemd/system/ceph-mds@.service\n+        state: absent\n+\n+  - name: remove ceph mds image\n+    docker_image:\n+      state: absent\n+      name: \"{{ ceph_mds_docker_username }}/{{ ceph_mds_docker_imagename }}\"\n+      tag: \"{{ ceph_mds_docker_image_tag }}\"\n+    tags:\n+      remove_img\n+\n+- name: purge ceph rgw cluster\n+\n+  hosts:\n+    - rgws\n+\n+  become: true\n+\n+  tasks:\n+  - name: disable ceph rgw service\n+    service:\n+      name: \"ceph-rgw@{{ ansible_hostname }}\"\n+      state: stopped\n+      enabled: no\n+    ignore_errors: true\n+\n+  - name: remove ceph rgw container\n+    docker:\n+      image: \"{{ ceph_rgw_docker_username }}/{{ ceph_rgw_docker_imagename }}:{{ ceph_rgw_docker_image_tag }}\"\n+      name: \"{{ ansible_hostname }}\"\n+      state: absent\n+    ignore_errors: true\n+\n+  - name: remove ceph rgw service\n+    file:\n+        path: /etc/systemd/system/ceph-rgw@.service\n+        state: absent\n+\n+  - name: remove ceph rgw image\n+    docker_image:\n+      state: absent\n+      name: \"{{ ceph_rgw_docker_username }}/{{ ceph_rgw_docker_imagename }}\"\n+      tag: \"{{ ceph_rgw_docker_image_tag }}\"\n+    tags:\n+      remove_img\n+\n+  - name: remove libnss3-tools on redhat\n+    yum:\n+      name: libnss3-tools\n+      state: absent\n+    when:\n+      ansible_pkg_mgr == \"yum\" and\n+      radosgw_keystone\n+\n+  - name: remove libnss3-tools on redhat\n+    dnf:\n+      name: libnss3-tools\n+      state: absent\n+    when:\n+      ansible_pkg_mgr == \"dnf\" and\n+      radosgw_keystone\n+\n+  - name: install libnss3-tools on debian\n+    apt:\n+      name: libnss3-tools\n+      state: absent\n+    when:\n+      ansible_pkg_mgr == 'apt' and\n+      radosgw_keystone\n+\n \n-  - name: install the latest version of gdisk\n-    package:\n-      name: gdisk\n-      state: present\n+- name: purge ceph nfs cluster\n \n-  - name: collect ceph containers\n-    shell: docker ps -aq --filter=\"ancestor=ceph/daemon\"\n-    register: containers\n+  hosts:\n+    - nfss\n \n-  - name: delete ceph containers\n-    shell: docker rm -f {{ item }}\n-    with_items: containers.stdout_lines\n+  become: true\n \n-  - name: purge ceph directories\n+  tasks:\n+  - name: disable ceph nfs service\n+    service:\n+      name: \"ceph-nfs@{{ ansible_hostname }}\"\n+      state: stopped\n+      enabled: no\n+    ignore_errors: true\n+\n+  - name: remove ceph nfs container\n+    docker:\n+      image: \"{{ ceph_nfs_docker_username }}/{{ ceph_nfs_docker_imagename }}:{{ ceph_nfs_docker_image_tag }}\"\n+      name: \"{{ ansible_hostname }}\"\n+      state: absent\n+    ignore_errors: true\n+\n+  - name: remove ceph nfs service\n+    file:\n+      path: /etc/systemd/system/ceph-nfs@.service\n+      state: absent\n+\n+  - name: remove ceph nfs directories for \"{{ ansible_hostname }}\"\n     file:\n       path: \"{{ item }}\"\n       state: absent\n     with_items:\n-      - /etc/ceph/\n-      - /var/lib/ceph/\n+      - /etc/ganesha\n+      - /var/lib/nfs/ganesha\n+      - /var/run/ganesha\n+\n+  - name: remove ceph nfs image\n+    docker_image:\n+      state: absent\n+      name: \"{{ ceph_nfs_docker_username }}/{{ ceph_nfs_docker_imagename }}\"\n+      tag: \"{{ ceph_nfs_docker_image_tag }}\"\n+    tags:\n+      remove_img\n+\n+\n+- name: purge ceph osd cluster\n+\n+  hosts:\n+    - osds\n+\n+  become: true\n+\n+  tasks:\n+  - name: disable ceph osd service\n+    service:\n+      name: \"ceph-osd@{{ item | basename }}\"\n+      state: stopped\n+      enabled: no\n+    with_items: \"{{ ceph_osd_docker_devices }}\"\n+    ignore_errors: true\n+\n+  - name: remove ceph osd prepare container\n+    docker:\n+      image: \"{{ ceph_osd_docker_username }}/{{ ceph_osd_docker_imagename }}:{{ ceph_osd_docker_image_tag }}\"\n+      name: \"{{ ansible_hostname }}-osd-prepare-{{ item | regex_replace('/', '') }}\"\n+      state: absent\n+    with_items: \"{{ ceph_osd_docker_devices }}\"\n+    ignore_errors: true\n+\n+  - name: remove ceph osd container\n+    docker:\n+      image: \"{{ ceph_osd_docker_username }}/{{ ceph_osd_docker_imagename }}:{{ ceph_osd_docker_image_tag }}\"\n+      name: \"{{ ansible_hostname }}-osd-{{ item | regex_replace('/', '') }}\"\n+      state: absent\n+    with_items: \"{{ ceph_osd_docker_devices }}\"\n+    ignore_errors: true\n+\n+  - name: zap ceph osd disk\n+    docker:\n+      image: \"{{ ceph_osd_docker_username }}/{{ ceph_osd_docker_imagename }}:{{ ceph_osd_docker_image_tag }}\"\n+      name: \"{{ ansible_hostname }}-osd-zap-{{ item | regex_replace('/', '') }}\"\n+      net: host\n+      pid: host\n+      state: started\n+      privileged: yes\n+      env: \"CEPH_DAEMON=zap_device,OSD_DEVICE={{ item }}\"\n+      volumes: \"/var/lib/ceph:/var/lib/ceph,/etc/ceph:/etc/ceph,/dev:/dev,/run:/run\"\n+    with_items: \"{{ ceph_osd_docker_devices }}\"\n+\n+  - name: remove ceph osd zap disk container\n+    docker:\n+      image: \"{{ ceph_osd_docker_username }}/{{ ceph_osd_docker_imagename }}:{{ ceph_osd_docker_image_tag }}\"\n+      name: \"{{ ansible_hostname }}-osd-zap-{{ item | regex_replace('/', '') }}\"\n+      state: absent\n+    with_items: \"{{ ceph_osd_docker_devices }}\"\n+\n+  - name: remove ceph osd service\n+    file:\n+        path: /etc/systemd/system/ceph-osd@.service\n+        state: absent\n+\n+  - name: remove ceph osd image\n+    docker_image:\n+      state: absent\n+      name: \"{{ ceph_osd_docker_username }}/{{ ceph_osd_docker_imagename }}\"\n+      tag: \"{{ ceph_osd_docker_image_tag }}\"\n+    tags:\n+      remove_img\n+\n+\n+- name: purge ceph mon cluster\n+\n+  hosts:\n+    - mons\n+\n+  become: true\n+\n+  tasks:\n+  - name: disable ceph mon service\n+    service:\n+      name: \"ceph-mon@{{ ansible_hostname }}\"\n+      state: stopped\n+      enabled: no\n+    ignore_errors: true\n+\n+  - name: remove ceph mon container\n+    docker:\n+      image: \"{{ ceph_mon_docker_username }}/{{ ceph_mon_docker_imagename }}:{{ ceph_mon_docker_image_tag }}\"\n+      name: \"{{ ansible_hostname }}\"\n+      state: absent\n+    ignore_errors: true\n+\n+  - name: remove restapi container\n+    docker:\n+      image: \"{{ ceph_restapi_docker_username }}/{{ ceph_restapi_docker_imagename }}:{{ ceph_restapi_docker_image_tag }}\"\n+      name: \"{{ ansible_hostname }}-ceph-restapi\"\n+      state: absent\n+\n+  - name: remove ceph mon service\n+    file:\n+        path: /etc/systemd/system/ceph-mon@.service\n+        state: absent\n+\n+  - name: remove ceph mon image\n+    docker_image:\n+      state: absent\n+      name: \"{{ ceph_mon_docker_username }}/{{ ceph_mon_docker_imagename }}\"\n+      tag: \"{{ ceph_mon_docker_image_tag }}\"\n+    tags:\n+      remove_img\n+\n+\n+- name: remove installed packages\n+\n+  hosts:\n+    - all\n+\n+  become: true\n+\n+  tags:\n+    with_pkg\n+\n+  tasks:\n+  - name: stop docker service\n+    service:\n+      name: docker\n+      state: stopped\n+      enabled: no\n+    when: not is_atomic\n+\n+  - name: remove pip and docker on ubuntu\n+    apt:\n+      name: \"{{ item }}\"\n+      state: absent\n+      update_cache: yes\n+    with_items:\n+      - python-pip\n+      - docker\n+      - docker.io\n+    when: ansible_distribution == 'Ubuntu'\n+\n+  - name: remove pip and docker on debian\n+    apt:\n+      name: \"{{ item }}\"\n+      state: absent\n+      update_cache: yes\n+    with_items:\n+      - python-pip\n+      - docker-engine\n+    when: ansible_distribution == 'Debian'\n+\n+  - name: remove epel-release on redhat\n+    yum:\n+      name: epel-release\n+      state: absent\n+    when:\n+      ansible_os_family == 'RedHat' and\n+      not is_atomic\n+\n+  - name: remove pip on redhat\n+    yum:\n+      name: \"{{ item }}\"\n+      state: absent\n+    with_items:\n+      - python-pip\n+    when:\n+      ansible_os_family == 'RedHat' and\n+      ansible_pkg_mgr == \"yum\" and\n+      not is_atomic\n+\n+  - name: remove docker-engine on redhat\n+    yum:\n+      name: \"{{ item }}\"\n+      state: absent\n+    with_items:\n+      - docker-engine\n+    when:\n+      ansible_os_family == 'RedHat' and\n+      ansible_pkg_mgr == \"yum\" and\n+      not is_atomic\n+    failed_when: false\n+\n+  # for CentOS\n+  - name: remove docker on redhat\n+    yum:\n+      name: \"{{ item }}\"\n+      state: absent\n+    with_items:\n+      - docker\n+    when:\n+      ansible_os_family == 'RedHat' and\n+      ansible_pkg_mgr == \"yum\" and\n+      not is_atomic\n+    failed_when: false\n+\n+  - name: remove pip and docker on redhat\n+    dnf:\n+      name: \"{{ item }}\"\n+      state: absent\n+    with_items:\n+      - python-pip\n+      - docker-engine\n+      - docker\n+    when:\n+      ansible_os_family == 'RedHat' and\n+      ansible_pkg_mgr == \"dnf\" and\n+      not is_atomic\n+\n+  - name: remove six\n+    pip:\n+      name: six\n+      version: 1.9.0\n+      state: absent\n+    when: not is_atomic\n \n-- hosts:\n-  - osds\n+  - name: remove docker-py\n+    pip:\n+      name: docker-py\n+      version: 1.1.0\n+      state: absent\n+    when:\n+      ansible_version['full'] | version_compare('2.1.0.0', '<') and\n+      not is_atomic\n+\n+  - name: remove docker-py\n+    pip:\n+      name: docker-py\n+      state: absent\n+    when:\n+      ansible_version['full'] | version_compare('2.1.0.0', '>=') and\n+      not is_atomic\n+\n+\n+- name: purge ceph directories\n+\n+  hosts:\n+    - all","path":"purge-docker-cluster.yml","position":442,"original_position":442,"commit_id":"22ba7188227ccda5ea0f7a98e6522a4b09a631a6","original_commit_id":"22ba7188227ccda5ea0f7a98e6522a4b09a631a6","user":{"login":"leseb","id":912735,"avatar_url":"https://avatars.githubusercontent.com/u/912735?v=3","gravatar_id":"","url":"https://api.github.com/users/leseb","html_url":"https://github.com/leseb","followers_url":"https://api.github.com/users/leseb/followers","following_url":"https://api.github.com/users/leseb/following{/other_user}","gists_url":"https://api.github.com/users/leseb/gists{/gist_id}","starred_url":"https://api.github.com/users/leseb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/leseb/subscriptions","organizations_url":"https://api.github.com/users/leseb/orgs","repos_url":"https://api.github.com/users/leseb/repos","events_url":"https://api.github.com/users/leseb/events{/privacy}","received_events_url":"https://api.github.com/users/leseb/received_events","type":"User","site_admin":false},"body":"ditto","created_at":"2016-07-20T08:57:29Z","updated_at":"2016-07-20T08:57:29Z","html_url":"https://github.com/ceph/ceph-ansible/pull/892#discussion_r71488350","pull_request_url":"https://api.github.com/repos/ceph/ceph-ansible/pulls/892","_links":{"self":{"href":"https://api.github.com/repos/ceph/ceph-ansible/pulls/comments/71488350"},"html":{"href":"https://github.com/ceph/ceph-ansible/pull/892#discussion_r71488350"},"pull_request":{"href":"https://api.github.com/repos/ceph/ceph-ansible/pulls/892"}}},"pull_request":{"url":"https://api.github.com/repos/ceph/ceph-ansible/pulls/892","id":78080711,"html_url":"https://github.com/ceph/ceph-ansible/pull/892","diff_url":"https://github.com/ceph/ceph-ansible/pull/892.diff","patch_url":"https://github.com/ceph/ceph-ansible/pull/892.patch","issue_url":"https://api.github.com/repos/ceph/ceph-ansible/issues/892","number":892,"state":"open","locked":false,"title":"Add ability to purge containerized Ceph cluster","user":{"login":"font","id":3596535,"avatar_url":"https://avatars.githubusercontent.com/u/3596535?v=3","gravatar_id":"","url":"https://api.github.com/users/font","html_url":"https://github.com/font","followers_url":"https://api.github.com/users/font/followers","following_url":"https://api.github.com/users/font/following{/other_user}","gists_url":"https://api.github.com/users/font/gists{/gist_id}","starred_url":"https://api.github.com/users/font/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/font/subscriptions","organizations_url":"https://api.github.com/users/font/orgs","repos_url":"https://api.github.com/users/font/repos","events_url":"https://api.github.com/users/font/events{/privacy}","received_events_url":"https://api.github.com/users/font/received_events","type":"User","site_admin":false},"body":"This removes containers, container images, packages, configuration files\r\nand all the data. Removal of container image tasks are tagged with\r\n'remove_img' to skip removal if desired.\r\n\r\nSigned-off-by: Ivan Font <ivan.font@redhat.com>","created_at":"2016-07-20T02:45:55Z","updated_at":"2016-07-20T08:57:29Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4ad366a0c78f79dba3bb0c5d4f01fa5f7dc11326","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/ceph/ceph-ansible/pulls/892/commits","review_comments_url":"https://api.github.com/repos/ceph/ceph-ansible/pulls/892/comments","review_comment_url":"https://api.github.com/repos/ceph/ceph-ansible/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ceph/ceph-ansible/issues/892/comments","statuses_url":"https://api.github.com/repos/ceph/ceph-ansible/statuses/22ba7188227ccda5ea0f7a98e6522a4b09a631a6","head":{"label":"font:purge","ref":"purge","sha":"22ba7188227ccda5ea0f7a98e6522a4b09a631a6","user":{"login":"font","id":3596535,"avatar_url":"https://avatars.githubusercontent.com/u/3596535?v=3","gravatar_id":"","url":"https://api.github.com/users/font","html_url":"https://github.com/font","followers_url":"https://api.github.com/users/font/followers","following_url":"https://api.github.com/users/font/following{/other_user}","gists_url":"https://api.github.com/users/font/gists{/gist_id}","starred_url":"https://api.github.com/users/font/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/font/subscriptions","organizations_url":"https://api.github.com/users/font/orgs","repos_url":"https://api.github.com/users/font/repos","events_url":"https://api.github.com/users/font/events{/privacy}","received_events_url":"https://api.github.com/users/font/received_events","type":"User","site_admin":false},"repo":{"id":60714762,"name":"ceph-ansible","full_name":"font/ceph-ansible","owner":{"login":"font","id":3596535,"avatar_url":"https://avatars.githubusercontent.com/u/3596535?v=3","gravatar_id":"","url":"https://api.github.com/users/font","html_url":"https://github.com/font","followers_url":"https://api.github.com/users/font/followers","following_url":"https://api.github.com/users/font/following{/other_user}","gists_url":"https://api.github.com/users/font/gists{/gist_id}","starred_url":"https://api.github.com/users/font/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/font/subscriptions","organizations_url":"https://api.github.com/users/font/orgs","repos_url":"https://api.github.com/users/font/repos","events_url":"https://api.github.com/users/font/events{/privacy}","received_events_url":"https://api.github.com/users/font/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/font/ceph-ansible","description":"Ansible playbooks for Ceph","fork":true,"url":"https://api.github.com/repos/font/ceph-ansible","forks_url":"https://api.github.com/repos/font/ceph-ansible/forks","keys_url":"https://api.github.com/repos/font/ceph-ansible/keys{/key_id}","collaborators_url":"https://api.github.com/repos/font/ceph-ansible/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/font/ceph-ansible/teams","hooks_url":"https://api.github.com/repos/font/ceph-ansible/hooks","issue_events_url":"https://api.github.com/repos/font/ceph-ansible/issues/events{/number}","events_url":"https://api.github.com/repos/font/ceph-ansible/events","assignees_url":"https://api.github.com/repos/font/ceph-ansible/assignees{/user}","branches_url":"https://api.github.com/repos/font/ceph-ansible/branches{/branch}","tags_url":"https://api.github.com/repos/font/ceph-ansible/tags","blobs_url":"https://api.github.com/repos/font/ceph-ansible/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/font/ceph-ansible/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/font/ceph-ansible/git/refs{/sha}","trees_url":"https://api.github.com/repos/font/ceph-ansible/git/trees{/sha}","statuses_url":"https://api.github.com/repos/font/ceph-ansible/statuses/{sha}","languages_url":"https://api.github.com/repos/font/ceph-ansible/languages","stargazers_url":"https://api.github.com/repos/font/ceph-ansible/stargazers","contributors_url":"https://api.github.com/repos/font/ceph-ansible/contributors","subscribers_url":"https://api.github.com/repos/font/ceph-ansible/subscribers","subscription_url":"https://api.github.com/repos/font/ceph-ansible/subscription","commits_url":"https://api.github.com/repos/font/ceph-ansible/commits{/sha}","git_commits_url":"https://api.github.com/repos/font/ceph-ansible/git/commits{/sha}","comments_url":"https://api.github.com/repos/font/ceph-ansible/comments{/number}","issue_comment_url":"https://api.github.com/repos/font/ceph-ansible/issues/comments{/number}","contents_url":"https://api.github.com/repos/font/ceph-ansible/contents/{+path}","compare_url":"https://api.github.com/repos/font/ceph-ansible/compare/{base}...{head}","merges_url":"https://api.github.com/repos/font/ceph-ansible/merges","archive_url":"https://api.github.com/repos/font/ceph-ansible/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/font/ceph-ansible/downloads","issues_url":"https://api.github.com/repos/font/ceph-ansible/issues{/number}","pulls_url":"https://api.github.com/repos/font/ceph-ansible/pulls{/number}","milestones_url":"https://api.github.com/repos/font/ceph-ansible/milestones{/number}","notifications_url":"https://api.github.com/repos/font/ceph-ansible/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/font/ceph-ansible/labels{/name}","releases_url":"https://api.github.com/repos/font/ceph-ansible/releases{/id}","deployments_url":"https://api.github.com/repos/font/ceph-ansible/deployments","created_at":"2016-06-08T16:58:40Z","updated_at":"2016-06-08T16:58:42Z","pushed_at":"2016-07-20T02:39:15Z","git_url":"git://github.com/font/ceph-ansible.git","ssh_url":"git@github.com:font/ceph-ansible.git","clone_url":"https://github.com/font/ceph-ansible.git","svn_url":"https://github.com/font/ceph-ansible","homepage":null,"size":1564,"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":"ceph:master","ref":"master","sha":"578768cc232ad30732b9867af6794b7b923862c6","user":{"login":"ceph","id":1015767,"avatar_url":"https://avatars.githubusercontent.com/u/1015767?v=3","gravatar_id":"","url":"https://api.github.com/users/ceph","html_url":"https://github.com/ceph","followers_url":"https://api.github.com/users/ceph/followers","following_url":"https://api.github.com/users/ceph/following{/other_user}","gists_url":"https://api.github.com/users/ceph/gists{/gist_id}","starred_url":"https://api.github.com/users/ceph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ceph/subscriptions","organizations_url":"https://api.github.com/users/ceph/orgs","repos_url":"https://api.github.com/users/ceph/repos","events_url":"https://api.github.com/users/ceph/events{/privacy}","received_events_url":"https://api.github.com/users/ceph/received_events","type":"Organization","site_admin":false},"repo":{"id":17373313,"name":"ceph-ansible","full_name":"ceph/ceph-ansible","owner":{"login":"ceph","id":1015767,"avatar_url":"https://avatars.githubusercontent.com/u/1015767?v=3","gravatar_id":"","url":"https://api.github.com/users/ceph","html_url":"https://github.com/ceph","followers_url":"https://api.github.com/users/ceph/followers","following_url":"https://api.github.com/users/ceph/following{/other_user}","gists_url":"https://api.github.com/users/ceph/gists{/gist_id}","starred_url":"https://api.github.com/users/ceph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ceph/subscriptions","organizations_url":"https://api.github.com/users/ceph/orgs","repos_url":"https://api.github.com/users/ceph/repos","events_url":"https://api.github.com/users/ceph/events{/privacy}","received_events_url":"https://api.github.com/users/ceph/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ceph/ceph-ansible","description":"Ansible playbooks for Ceph","fork":false,"url":"https://api.github.com/repos/ceph/ceph-ansible","forks_url":"https://api.github.com/repos/ceph/ceph-ansible/forks","keys_url":"https://api.github.com/repos/ceph/ceph-ansible/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ceph/ceph-ansible/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ceph/ceph-ansible/teams","hooks_url":"https://api.github.com/repos/ceph/ceph-ansible/hooks","issue_events_url":"https://api.github.com/repos/ceph/ceph-ansible/issues/events{/number}","events_url":"https://api.github.com/repos/ceph/ceph-ansible/events","assignees_url":"https://api.github.com/repos/ceph/ceph-ansible/assignees{/user}","branches_url":"https://api.github.com/repos/ceph/ceph-ansible/branches{/branch}","tags_url":"https://api.github.com/repos/ceph/ceph-ansible/tags","blobs_url":"https://api.github.com/repos/ceph/ceph-ansible/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ceph/ceph-ansible/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ceph/ceph-ansible/git/refs{/sha}","trees_url":"https://api.github.com/repos/ceph/ceph-ansible/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ceph/ceph-ansible/statuses/{sha}","languages_url":"https://api.github.com/repos/ceph/ceph-ansible/languages","stargazers_url":"https://api.github.com/repos/ceph/ceph-ansible/stargazers","contributors_url":"https://api.github.com/repos/ceph/ceph-ansible/contributors","subscribers_url":"https://api.github.com/repos/ceph/ceph-ansible/subscribers","subscription_url":"https://api.github.com/repos/ceph/ceph-ansible/subscription","commits_url":"https://api.github.com/repos/ceph/ceph-ansible/commits{/sha}","git_commits_url":"https://api.github.com/repos/ceph/ceph-ansible/git/commits{/sha}","comments_url":"https://api.github.com/repos/ceph/ceph-ansible/comments{/number}","issue_comment_url":"https://api.github.com/repos/ceph/ceph-ansible/issues/comments{/number}","contents_url":"https://api.github.com/repos/ceph/ceph-ansible/contents/{+path}","compare_url":"https://api.github.com/repos/ceph/ceph-ansible/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ceph/ceph-ansible/merges","archive_url":"https://api.github.com/repos/ceph/ceph-ansible/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ceph/ceph-ansible/downloads","issues_url":"https://api.github.com/repos/ceph/ceph-ansible/issues{/number}","pulls_url":"https://api.github.com/repos/ceph/ceph-ansible/pulls{/number}","milestones_url":"https://api.github.com/repos/ceph/ceph-ansible/milestones{/number}","notifications_url":"https://api.github.com/repos/ceph/ceph-ansible/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ceph/ceph-ansible/labels{/name}","releases_url":"https://api.github.com/repos/ceph/ceph-ansible/releases{/id}","deployments_url":"https://api.github.com/repos/ceph/ceph-ansible/deployments","created_at":"2014-03-03T17:12:09Z","updated_at":"2016-07-18T21:38:12Z","pushed_at":"2016-07-20T02:45:55Z","git_url":"git://github.com/ceph/ceph-ansible.git","ssh_url":"git@github.com:ceph/ceph-ansible.git","clone_url":"https://github.com/ceph/ceph-ansible.git","svn_url":"https://github.com/ceph/ceph-ansible","homepage":null,"size":24113,"stargazers_count":274,"watchers_count":274,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":187,"mirror_url":null,"open_issues_count":27,"forks":187,"open_issues":27,"watchers":274,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ceph/ceph-ansible/pulls/892"},"html":{"href":"https://github.com/ceph/ceph-ansible/pull/892"},"issue":{"href":"https://api.github.com/repos/ceph/ceph-ansible/issues/892"},"comments":{"href":"https://api.github.com/repos/ceph/ceph-ansible/issues/892/comments"},"review_comments":{"href":"https://api.github.com/repos/ceph/ceph-ansible/pulls/892/comments"},"review_comment":{"href":"https://api.github.com/repos/ceph/ceph-ansible/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ceph/ceph-ansible/pulls/892/commits"},"statuses":{"href":"https://api.github.com/repos/ceph/ceph-ansible/statuses/22ba7188227ccda5ea0f7a98e6522a4b09a631a6"}}}}
{"actor":{"display_login":"leseb"}}