From f97b40acd6dec00197ca0e94979b6b7c8ddbd17b Mon Sep 17 00:00:00 2001 From: Julia Kreger Date: Fri, 17 Oct 2014 18:39:08 -0400 Subject: [PATCH] ANSUPDATE-25 Cleanup Ironic Reservations on undercloud Ironic can end up in a state where nodes are locked and are unable to rebuild due to the presence of the lock. We will now clear any locks that we find upon restart of the undercloud. Ironic Bug: https://bugs.launchpad.net/ironic/+bug/1382698 Change-Id: Iafff3c42d34b419d8f66cec4fc8ba99c88d12530 --- ...undercloud_ironic_release_reservations.yml | 25 +++++++++++++++++++ playbooks/update_cloud.yml | 3 +++ 2 files changed, 28 insertions(+) create mode 100644 playbooks/step_undercloud_ironic_release_reservations.yml diff --git a/playbooks/step_undercloud_ironic_release_reservations.yml b/playbooks/step_undercloud_ironic_release_reservations.yml new file mode 100644 index 0000000..86ee58d --- /dev/null +++ b/playbooks/step_undercloud_ironic_release_reservations.yml @@ -0,0 +1,25 @@ +# Copyright (c) 2014 Hewlett-Packard Development Company, L.P. +# +# 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. +--- +# These steps are to address Ironic bug +# https://bugs.launchpad.net/ironic/+bug/1382698 +- name: Reset Ironic Reservations + sudo: yes + command: mysql --defaults-file=/mnt/state/root/metadata.my.cnf --socket /var/run/mysqld/mysqld.sock ironic -e 'update nodes set reservation=NULL where reservation="{{ ansible_fqdn }}";' + when: helion is not defined +- name: Reset Ironic Reservations - Helion + sudo: yes + shell: mysql --defaults-file=/mnt/state/root/metadata.my.cnf ironic -e 'update nodes set reservation=NULL where reservation="{{ ansible_fqdn }}";' + when: helion is defined diff --git a/playbooks/update_cloud.yml b/playbooks/update_cloud.yml index 43aec94..079e011 100644 --- a/playbooks/update_cloud.yml +++ b/playbooks/update_cloud.yml @@ -200,6 +200,9 @@ - include: step_os-apply-config.yml - include: start_mysql.yml - include: start_rabbitmq.yml + # Fix Ironic Reservations due to bug: + # https://bugs.launchpad.net/ironic/+bug/1382698 + - include: step_undercloud_ironic_release_reservations.yml - name: "Run os-collect-config" command: os-collect-config --force --one - service: name=os-collect-config state=started