The current implementation wipes out the novnc/spice directory every single time the playbook executes. While it does replace it afterwards it does not fire a notifier to make the service restart, resulting in the service failing. This patch makes the install process idempotent - it will only wipe out the directory if it does not look the way it is expected to look. It also fires the notifier to restart services if the git repo changes. This should ensure that novnc/spice restart properly on upgrades and that there are no changes/restarts for the service if the git SHA or software does not change. Closes-Bug: #1746523 Change-Id: Ic39f884016a6ba0498110267027783001a087a1c
59 lines
1.7 KiB
YAML
59 lines
1.7 KiB
YAML
---
|
|
# Copyright 2014, Rackspace US, Inc.
|
|
#
|
|
# 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: Remove existing directory if it is not a git repo or it is dirty
|
|
shell: |
|
|
EXIT_CODE=0
|
|
FOLDER_PATH="/usr/share/spice-html5"
|
|
if [[ -e ${FOLDER_PATH} ]]; then
|
|
if [[ ! -d "${FOLDER_PATH}/.git" ]]; then
|
|
echo "${FOLDER_PATH} is not a git repo, deleting..."
|
|
EXIT_CODE=2
|
|
elif test -n "$(cd ${FOLDER_PATH}; git status --porcelain)"; then
|
|
echo "${FOLDER_PATH} is a dirty git repo, deleting..."
|
|
EXIT_CODE=2
|
|
fi
|
|
if [[ "${EXIT_CODE}" == "2" ]]; then
|
|
rm -rf ${FOLDER_PATH}
|
|
fi
|
|
fi
|
|
exit ${EXIT_CODE}
|
|
args:
|
|
executable: /bin/bash
|
|
register: existing_dir_cleanup
|
|
changed_when: existing_dir_cleanup.rc == 2
|
|
failed_when: existing_dir_cleanup.rc not in [0,2]
|
|
tags:
|
|
- nova-spice-git
|
|
|
|
- name: Get package from git
|
|
git:
|
|
repo: "{{ nova_spicehtml5_git_repo }}"
|
|
dest: "/usr/share/spice-html5"
|
|
clone: "yes"
|
|
update: "yes"
|
|
version: "{{ nova_spicehtml5_git_install_branch }}"
|
|
force: yes
|
|
accept_hostkey: yes
|
|
register: git_clone
|
|
until: git_clone|success
|
|
retries: 5
|
|
delay: 2
|
|
notify:
|
|
- Manage LB
|
|
- Restart nova services
|
|
tags:
|
|
- nova-spice-git
|