summaryrefslogtreecommitdiffstats
path: root/ci/ansible/roles/cleaner/scenarios
diff options
context:
space:
mode:
Diffstat (limited to 'ci/ansible/roles/cleaner/scenarios')
-rw-r--r--ci/ansible/roles/cleaner/scenarios/auth-keystone.yml30
-rw-r--r--ci/ansible/roles/cleaner/scenarios/backend.yml154
-rw-r--r--ci/ansible/roles/cleaner/scenarios/release.yml24
-rw-r--r--ci/ansible/roles/cleaner/scenarios/repository.yml44
4 files changed, 252 insertions, 0 deletions
diff --git a/ci/ansible/roles/cleaner/scenarios/auth-keystone.yml b/ci/ansible/roles/cleaner/scenarios/auth-keystone.yml
new file mode 100644
index 0000000..bbac49b
--- /dev/null
+++ b/ci/ansible/roles/cleaner/scenarios/auth-keystone.yml
@@ -0,0 +1,30 @@
+# 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: uninstall keystone
+ shell: "{{ item }}"
+ with_items:
+ - bash ./script/keystone.sh uninstall
+ when: opensds_auth_strategy == "keystone" and uninstall_keystone == true
+ ignore_errors: yes
+ become: yes
+
+- name: cleanup keystone
+ shell: "{{ item }}"
+ with_items:
+ - bash ./script/keystone.sh cleanup
+ when: opensds_auth_strategy == "keystone" and cleanup_keystone == true
+ ignore_errors: yes
+ become: yes
diff --git a/ci/ansible/roles/cleaner/scenarios/backend.yml b/ci/ansible/roles/cleaner/scenarios/backend.yml
new file mode 100644
index 0000000..f929164
--- /dev/null
+++ b/ci/ansible/roles/cleaner/scenarios/backend.yml
@@ -0,0 +1,154 @@
+# 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
diff --git a/ci/ansible/roles/cleaner/scenarios/release.yml b/ci/ansible/roles/cleaner/scenarios/release.yml
new file mode 100644
index 0000000..e365170
--- /dev/null
+++ b/ci/ansible/roles/cleaner/scenarios/release.yml
@@ -0,0 +1,24 @@
+# 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 up all release files if installed from release
+ file:
+ path: "{{ item }}"
+ state: absent
+ force: yes
+ with_items:
+ - "{{ opensds_tarball_dir }}"
+ - "{{ nbp_tarball_dir }}"
+ ignore_errors: yes
diff --git a/ci/ansible/roles/cleaner/scenarios/repository.yml b/ci/ansible/roles/cleaner/scenarios/repository.yml
new file mode 100644
index 0000000..a50689c
--- /dev/null
+++ b/ci/ansible/roles/cleaner/scenarios/repository.yml
@@ -0,0 +1,44 @@
+# 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.
+
+---
+- set_fact:
+ go_path: "{{ lookup('env', 'GOPATH') }}"
+
+- name: check go_path
+ shell: "{{ item }}"
+ with_items:
+ - echo "The environment variable GOPATH must be set and cannot be an empty string!"
+ - /bin/false
+ when: go_path == ""
+
+- name: clean opensds controller data
+ shell: make clean
+ args:
+ chdir: "{{ go_path }}/src/github.com/opensds/opensds"
+ when: install_from == "repository"
+
+- name: clean opensds northbound plugin data
+ shell: make clean
+ args:
+ chdir: "{{ go_path }}/src/github.com/opensds/nbp"
+ when: install_from == "repository" and nbp_plugin_type != "hotpot_only"
+
+- name: clean opensds dashboard data
+ shell: make clean
+ args:
+ chdir: "{{ go_path }}/src/github.com/opensds/opensds/dashboard"
+ when: dashboard_installation_type == "source_code"
+ become: yes
+ ignore_errors: yes