--- - name: kill osdslet daemon service shell: killall osdslet ignore_errors: yes when: container_enabled == false - name: kill osdslet containerized service docker: image: opensdsio/opensds-controller:latest state: stopped when: container_enabled == true - name: kill osdsdock daemon service shell: killall osdsdock ignore_errors: yes when: container_enabled == false - name: kill osdsdock containerized service docker: image: opensdsio/opensds-dock:latest state: stopped when: container_enabled == true - name: kill etcd daemon service shell: killall etcd ignore_errors: yes when: db_driver == "etcd" and container_enabled == false - name: kill etcd containerized service docker: image: quay.io/coreos/etcd:latest state: stopped when: db_driver == "etcd" and container_enabled == true - name: remove etcd service data file: path: "{{ etcd_dir }}" state: absent force: yes ignore_errors: yes when: db_driver == "etcd" - name: remove etcd tarball file: path: "/opt/{{ etcd_tarball }}" state: absent force: yes ignore_errors: yes when: db_driver == "etcd" - name: clean opensds release files file: path: "{{ opensds_dir }}" state: absent force: yes ignore_errors: yes - name: clean opensds release tarball file file: path: "{{ opensds_tarball_url }}" state: absent force: yes ignore_errors: yes - name: clean opensds flexvolume plugins binary file file: path: "{{ flexvolume_plugin_dir }}" state: absent force: yes ignore_errors: yes when: nbp_plugin_type == "flexvolume" - name: clean nbp release files file: path: "{{ nbp_dir }}" state: absent force: yes ignore_errors: yes - name: clean nbp release tarball file file: path: "{{ nbp_tarball_url }}" state: absent force: yes ignore_errors: yes - name: clean all opensds configuration files file: path: "{{ opensds_config_dir }}" state: absent force: yes ignore_errors: yes - name: clean all opensds log files file: path: "{{ opensds_log_dir }}" state: absent force: yes ignore_errors: yes - name: check if it existed before cleaning a volume group shell: vgdisplay {{ vg_name }} ignore_errors: yes register: vg_existed when: enabled_backend == "lvm" - name: remove a volume group if lvm backend specified lvg: vg: "{{ vg_name }}" state: absent when: enabled_backend == "lvm" and vg_existed.rc == 0 - name: remove physical volumes if lvm backend specified shell: pvremove {{ item }} with_items: "{{ pv_devices }}" when: enabled_backend == "lvm" - name: stop cinder-standalone service shell: docker-compose down become: true args: chdir: "{{ cinder_data_dir }}/cinder/contrib/block-box" when: enabled_backend == "cinder" - name: clean the volume group of cinder shell: _raw_params: | # _clean_lvm_volume_group removes all default LVM volumes # # Usage: _clean_lvm_volume_group $vg function _clean_lvm_volume_group { local vg=$1 # Clean out existing volumes sudo lvremove -f $vg } # _remove_lvm_volume_group removes the volume group # # Usage: _remove_lvm_volume_group $vg function _remove_lvm_volume_group { local vg=$1 # Remove the volume group sudo vgremove -f $vg } # _clean_lvm_backing_file() removes the backing file of the # volume group # # Usage: _clean_lvm_backing_file() $backing_file function _clean_lvm_backing_file { local backing_file=$1 # If the backing physical device is a loop device, it was probably setup by DevStack if [[ -n "$backing_file" ]] && [[ -e "$backing_file" ]]; then local vg_dev vg_dev=$(sudo losetup -j $backing_file | awk -F':' '/'.img'/ { print $1}') if [[ -n "$vg_dev" ]]; then sudo losetup -d $vg_dev fi rm -f $backing_file fi } # clean_lvm_volume_group() cleans up the volume group and removes the # backing file # # Usage: clean_lvm_volume_group $vg function clean_lvm_volume_group { local vg=$1 _clean_lvm_volume_group $vg _remove_lvm_volume_group $vg # if there is no logical volume left, it's safe to attempt a cleanup # of the backing file if [[ -z "$(sudo lvs --noheadings -o lv_name $vg 2>/dev/null)" ]]; then _clean_lvm_backing_file {{ cinder_data_dir }}/${vg}.img fi } clean_lvm_volume_group {{cinder_volume_group}} args: executable: /bin/bash become: true when: enabled_backend == "cinder"