# Copyright (c) 2018 Huawei Technologies Co., Ltd. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. --- - name: clean the volume group of lvm 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 {{ opensds_work_dir }}/volumegroups/${vg}.img fi } clean_lvm_volume_group {{opensds_volume_group}} args: executable: /bin/bash become: true when: enabled_backend == "lvm" ignore_errors: yes - name: stop cinder-standalone service shell: docker-compose down become: true args: chdir: "{{ cinder_data_dir }}/cinder/contrib/block-box" when: enabled_backend == "cinder" ignore_errors: yes - 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" ignore_errors: yes