diff options
author | leonwang <wanghui71@huawei.com> | 2018-07-20 14:55:21 +0800 |
---|---|---|
committer | leonwang <wanghui71@huawei.com> | 2018-07-20 14:55:31 +0800 |
commit | 078bb837513f3b83fdd07f2e10f9abeb0bd485db (patch) | |
tree | 9a87c67bfe3ef12683f0c6d2f8b833d6d942b155 /ci/ansible/roles/cleaner/scenarios | |
parent | 63ff6c6ec9ebbca90ac7304a27c0430dbcecb74f (diff) |
Update stor4nfv install scripts according to opensds aruba release
Since OpenSDS has published its aruba release and also supports
OpenStack scenario, this patch is designed for updating stor4nfv
code to prepare for integrating Compass4NFV and Apex installer on
OpenStack scenario.
Besides the large code changes, some tutorial docs are also added
or updated for better installing this project.
Change-Id: I1e4fec652c6c860028ef39448bc323839f3aa95c
Signed-off-by: leonwang <wanghui71@huawei.com>
Diffstat (limited to 'ci/ansible/roles/cleaner/scenarios')
-rw-r--r-- | ci/ansible/roles/cleaner/scenarios/auth-keystone.yml | 30 | ||||
-rw-r--r-- | ci/ansible/roles/cleaner/scenarios/backend.yml | 154 | ||||
-rw-r--r-- | ci/ansible/roles/cleaner/scenarios/release.yml | 24 | ||||
-rw-r--r-- | ci/ansible/roles/cleaner/scenarios/repository.yml | 44 |
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 |