diff --git a/roles/ironic-delete/README.md b/roles/ironic-delete/README.md new file mode 100644 index 000000000..00a58c85f --- /dev/null +++ b/roles/ironic-delete/README.md @@ -0,0 +1,46 @@ +ironic-delete +============= + +Removes nodes from Ironic utilizing the os_ironic Ansible module that is installed by Bifrost. + +Requirements +------------ + +TODO + +Role Variables +-------------- + +TODO + +Dependencies +------------ + +TODO + +Example Playbook +---------------- + +TODO + +License +------- + +Copyright (c) 2015 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 orimplied. +See the License for the specific language governing permissions and +limitations under the License. + +Author Information +------------------ + +Ironic Developers diff --git a/roles/ironic-delete/defaults/main.yml b/roles/ironic-delete/defaults/main.yml new file mode 100644 index 000000000..ed97d539c --- /dev/null +++ b/roles/ironic-delete/defaults/main.yml @@ -0,0 +1 @@ +--- diff --git a/roles/ironic-delete/handlers/main.yml b/roles/ironic-delete/handlers/main.yml new file mode 100644 index 000000000..8a867ace2 --- /dev/null +++ b/roles/ironic-delete/handlers/main.yml @@ -0,0 +1,2 @@ +--- +# handlers file for ironic-delete diff --git a/roles/ironic-delete/meta/main.yml b/roles/ironic-delete/meta/main.yml new file mode 100644 index 000000000..12a56b50c --- /dev/null +++ b/roles/ironic-delete/meta/main.yml @@ -0,0 +1,116 @@ +--- +galaxy_info: + author: Ironic Developers + description: + company: OpenStack + license: Apache + min_ansible_version: 1.9 + # + # Below are all platforms currently available. Just uncomment + # the ones that apply to your role. If you don't see your + # platform on this list, let us know and we'll get it added! + # + platforms: + #- name: EL + # versions: + # - all + # - 5 + # - 6 + # - 7 + #- name: GenericUNIX + # versions: + # - all + # - any + #- name: Fedora + # versions: + # - all + # - 16 + # - 17 + # - 18 + # - 19 + # - 20 + #- name: SmartOS + # versions: + # - all + # - any + #- name: opensuse + # versions: + # - all + # - 12.1 + # - 12.2 + # - 12.3 + # - 13.1 + # - 13.2 + #- name: Amazon + # versions: + # - all + # - 2013.03 + # - 2013.09 + #- name: GenericBSD + # versions: + # - all + # - any + #- name: FreeBSD + # versions: + # - all + # - 8.0 + # - 8.1 + # - 8.2 + # - 8.3 + # - 8.4 + # - 9.0 + # - 9.1 + # - 9.1 + # - 9.2 + #- name: Ubuntu + # versions: + # - all + # - lucid + # - maverick + # - natty + # - oneiric + # - precise + # - quantal + # - raring + # - saucy + - trusty + #- name: SLES + # versions: + # - all + # - 10SP3 + # - 10SP4 + # - 11 + # - 11SP1 + # - 11SP2 + # - 11SP3 + #- name: GenericLinux + # versions: + # - all + # - any + #- name: Debian + # versions: + # - all + # - etch + # - lenny + # - squeeze + # - wheezy + # + # Below are all categories currently available. Just as with + # the platforms above, uncomment those that apply to your role. + # + categories: + - cloud + - cloud:openstack + #- cloud:gce + #- cloud:rax + #- clustering + #- database + #- database:nosql + #- database:sql + #- development + #- monitoring + #- networking + #- packaging + #- system + #- web +dependencies: [] diff --git a/roles/ironic-delete/tasks/main.yml b/roles/ironic-delete/tasks/main.yml new file mode 100644 index 000000000..8a8620775 --- /dev/null +++ b/roles/ironic-delete/tasks/main.yml @@ -0,0 +1,37 @@ +# Copyright (c) 2015 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. +--- +- name: "Error if variable baremetal_csv_file is not defined" + fail: msg="baremetal_csv_file must be defined for this playbook to execute, please pass option '-e baremetal_csv_file='" + when: baremetal_csv_file is not defined +- name: "Validate that CSV file exists" + stat: path={{ baremetal_csv_file }} + register: test_baremetal_csv_file +- name: "Error if file does not exist." + fail: msg="The variable defined for baremetal_csv_file is not to a file. Please define a file and try again." + when: test_baremetal_csv_file.stat.isreg == false +- name: "Delete Hardware" + os_ironic: + auth_plugin: None + auth: None + ironic_url: "{{ ironic_url }}" + driver: "agent_ipmitool" + uuid: "{{item.split(',')[9]}}" + state: absent + nics: + - mac: "{{item.split(',')[0]}}" + driver_info: "{}" + delegate_to: localhost + with_lines: + - cat {{ baremetal_csv_file }} diff --git a/roles/ironic-delete/vars/main.yml b/roles/ironic-delete/vars/main.yml new file mode 100644 index 000000000..77321d700 --- /dev/null +++ b/roles/ironic-delete/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for ironic-delete