Add tests for the ironic CLI

This is an initial set of tests of the ironicclient intended
to show that the ironic role has been installed and that the
API is responding correctly.

Tests are:
  - list chassis
  - list nodes
  - list drivers
  - create node
  - validate node
  - create port
  - update node
  - delete node

Change-Id: I98e67e076bce8711cb1c8e0f8b2e9ae0d89d520d
This commit is contained in:
Mike Carden 2016-04-07 23:01:05 +00:00
parent 649c4ea122
commit 7e8a647985
2 changed files with 105 additions and 1 deletions

103
tests/test-ironic-cli.yml Normal file
View File

@ -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"

View File

@ -34,4 +34,5 @@
# Test REST API
- include: test-rest-api.yml
# Test the ironicclient CLI
- include: test-ironic-cli.yml