diff --git a/tests/test-ironic-cli.yml b/tests/test-ironic-cli.yml new file mode 100644 index 00000000..07910103 --- /dev/null +++ b/tests/test-ironic-cli.yml @@ -0,0 +1,103 @@ +--- +# Copyright 2016, 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: Test the ironic CLI + hosts: hosts + user: root + gather_facts: false + tasks: + - name: Run the ironic chassis-list command + shell: > + . /root/openrc && ironic chassis-list + register: chassis_table + - name: Check that the chassis-list command succeeded + assert: + that: + - "'Description' in chassis_table.stdout" + + - name: Run the ironic node-list command + shell: > + . /root/openrc && ironic node-list + register: node_table + - name: Check that the node-list command succeeded + assert: + that: + - "'UUID' in node_table.stdout" + + - name: Run the ironic driver-list command + shell: > + . /root/openrc && ironic driver-list + register: driver_table + - name: Check that the driver-list command succeeded + assert: + that: + - "'Supported' in driver_table.stdout" + + - name: Create a node + shell: > + . /root/openrc && ironic node-create -d agent_ipmitool + -i ipmi_address=1.2.3.4 + -i ipmi_password="TrickyPa55" + -i ipmi_username="admin" + -i deploy_ramdisk="http://example.com/ramdisk.qcow" + -i deploy_kernel="http://example.com/kernel.tgz" + -n happynode + register: node_created + - name: Check that the node was created + assert: + that: + - "'happynode' in node_created.stdout" + - "'agent_ipmitool' in node_created.stdout" + - "'1.2.3.4' in node_created.stdout" + - "'admin' in node_created.stdout" + - "'http://example.com/ramdisk.qcow' in node_created.stdout" + - "'http://example.com/kernel.tgz' in node_created.stdout" + + - name: Run the node-validate command + shell: > + . /root/openrc && ironic node-validate happynode + register: node_validated + - name: Check that node-validate returned something sensible + assert: + that: + - "'Reason' in node_validated.stdout" + + - name: Create a port + shell: > + . /root/openrc && ironic port-create -n $(ironic node-list | grep 'happynode' | cut -f 2 -d "|") -a de:ad:be:ef:de:ad + register: port_created + - name: Check that the port was created + assert: + that: + - "'de:ad:be:ef:de:ad' in port_created.stdout" + + - name: Update a node (in this case, change its name) + shell: > + . /root/openrc && ironic node-update happynode replace name=cheerynode + register: name_changed + - name: Check that the name was changed + assert: + that: + - "'cheerynode' in name_changed.stdout" + + - name: Remove a node + shell: > + . /root/openrc && ironic node-delete cheerynode + register: node_deleted + - name: Check that a node was deleted + assert: + that: + - "'Deleted' in node_deleted.stdout" + diff --git a/tests/test.yml b/tests/test.yml index 48e84c56..0e29e1bf 100644 --- a/tests/test.yml +++ b/tests/test.yml @@ -34,4 +34,5 @@ # Test REST API - include: test-rest-api.yml - +# Test the ironicclient CLI +- include: test-ironic-cli.yml