fuel-plugin-xenserver/doc/source/test-plan.rst

470 lines
15 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Test Plan for XenServer Fuel Plugin
===================================
XenServer Fuel Plugin
=====================
XenServer Fuel Plugin will help to deploy Mirantis OpenStack using the
XenServer hypervisor to host virtual machines, making all the necessary
changes to the Mirantis OpenStack to use the xenapi Nova compute driver.
Developers Specification
=========================
See developers specification in the source code repository at
https://git.openstack.org/openstack/fuel-plugin-xenserver
Limitations
-----------
This version of XenServer Fuel Plugin has not been certified to work with the
Ceilometer, MongoDB or Murano additional services. Future versions of the
plugin will relax these restrictions.
Test strategy
=============
Acceptance criteria
-------------------
All tests that do not depend on additional services must pass.
Test environment, infrastructure and tools
------------------------------------------
All tests need to be run under a cluster of at least 4 XenServer machines
with 3 physical NICs. As HA and multihost are enabled, a topology of 3
Controller Nodes + 3 Compute Nodes + 1 Storage Node will be recommended to be
created as VMs on XenServer machines. Easy setup and management of those
XenServers and VM Nodes can be achieved using XenCenter and a plugin,
described below, to add an internal management network to VMs.
To simplify setup, the fuel master is also installed on the XenServer hosts
(so XenServer hosts can fully control the network setup), but this is not
required.
While many networking setups are expected to work, the following setup is
used by this test plan:
* eth0 / “Access network”: Used to access the XenServer hosts and the Fuel
Masters web interface
* eth1 / “Control network”: OpenStack control plane (management and storage),
the PXE network and the public network; all separated by VLAN tags. The
public network is also on this network, and if a VLAN is required this is
applied by the switch for untagged traffic.
* eth2 / “VLAN network”: This version of the plugin only supports VLAN
segmentation for Neutron networking. This device carries all of the VLANs to
be used by Neutron for VM traffic.
.. image:: _static/topology00.png
:width: 80%
For the hardware configuration see Mirantis OpenStack Planning Guide at
https://docs.mirantis.com/openstack/fuel/fuel-8.0/mos-planning-guide.html
Product compatibility matrix
----------------------------
The plugin is compatible with MOS 8.0 and XenServer 6.5 SP1, with all
hotfixes applied (Especially hotfix XS65ESP1013).
Prerequirements
===============
Prepare XenServers
------------------
#. Install and start XenCenter on your Windows PC
#. Add new servers with a common root password in XenCenter
#. Plug three physical NIC to each of all XenServer machines, make sure the
cabling of all NIC 0 are attached to the access network, all NIC 1 to the
public network and NIC 2 are attached to the isolated, VLAN network.
It is recommended to rename these networks using XenCenter to make the
network topology clear.
#. Add a further network, with a vlan tag that will be used for PXE.
Prepare Fuel Master
-------------------
#. Upload Fuel ISO to a NFS/Samba server and make it accessible to your
XenServer hosts.
#. Select a XenServer and click “New Storage” button, in the popup window
check on CIFS/NFS ISO library and input NFS/Samba server path.
#. Create a new VM in XenCenter using the “Other Install Media” template (to
ensure a HVM domain is created) with and PXE network as eth0 and access
network as eth1. In the Console Tab, insert Fuel ISO and install.
#. In fuel menu, enable eth1 with DHCP so the fuel master can be accessed
over the access network.
#. Select Fuel Master in XenCenter and switch to Console tab, login with
prompted user and password
#. Visit http://ip_of_fuel_master:8000 in browser.
Type of testing
===============
Install XenServer Fuel Plugin
-----------------------------
.. tabularcolumns:: |p{3cm}|p{13cm}|
.. list-table::
:header-rows: 0
* - Test Case ID
- insall_xfp
* - Description
- Verify that XenServer Fuel Plugin can be installed into Fuel Master,
and the new OpenStack release is registered.
* - Steps
-
| ``fuel plugins --install /tmp/fuel-plugin-xenserver-3.1-3.1.0-1.noarch.rpm``
| ``fuel plugins``
| ``id | name | version | package_version``
| ``1 | fuel-plugin-xenserver | 3.1.0 | 4.0.0``
* - Expected Result
-
| ``fuel plugins``
| ``id | name | version | package_version``
| ``1 | fuel-plugin-xenserver | 3.1.0 | 4.0.0``
Prepare Nodes
-------------
.. tabularcolumns:: |p{3cm}|p{13cm}|
.. list-table::
:header-rows: 0
* - Test Case ID
- prepare_nodes
* - Description
- Verify all controller/compute/storage nodes are ready for PXE install.
* - Steps
-
#. Create 3 new VMs in XenCenter in different XenServers and name them
Controller1, Controller2, Controller3
#. Create 3 new VMs in XenCenter in different XenServers and name them
Compute1, Compute2, Compute3
#. Create 1 new VM in XenCenter and name it Storage1
#. Add PXE network as eth0, Public/Management/Storage network as
eth1 and VLAN network as eth2 to each of new VMs created above.
* - Expected Result
- All nodes are shown in XenCenter with PXE network as eth0 and VLAN
network as eth1.
Install XenCenter HIMN plugin
-----------------------------
.. tabularcolumns:: |p{3cm}|p{13cm}|
.. list-table::
:header-rows: 0
* - Test Case ID
- install_xcp
* - Description
- Verify XenCenter HIMN plugin is installed to Windows.
* - Steps
-
#. Download SetupHIMN from http://ca.downloads.xensource.com/OpenStack/Plugins/
#. Install MSI to your XenCenter
#. Restart XenCenter
* - Expected Result
- Right click on any selected VMs, there will be a menu item “Manage
internal management network”.
Add Host Internal Management Network to Compute Nodes
-----------------------------------------------------
.. tabularcolumns:: |p{3cm}|p{13cm}|
.. list-table::
:header-rows: 0
* - Test Case ID
- add_himn
* - Description
- Verify (or add) Host Internal Management Network is added to all
Compute Nodes.
* - Steps
-
#. Select Compute1, Compute2, Compute3 in XenCenter
#. Right click on above nodes and select “Manage internal management
network” menu.
#. In the popup window, after status detection, make sure all selected
Compute nodes are checked on. Click on “Manage internal management
network” button.
#. After processing, the status column should be shown as management
network is added with new generated MAC address
#. Close the management network window
* - Expected Result
- The wizard will report success, however the networks may not be
visible in XenCenter.
Create an OpenStack environment with XenServer Fuel Plugin
----------------------------------------------------------
.. tabularcolumns:: |p{3cm}|p{13cm}|
.. list-table::
:header-rows: 0
* - Test Case ID
- create_env
* - Description
- Verify that an OpenStack environment created with XenServer Fuel
Plugin can have XenServer options and options of
hypervisor/network/storage/additional services are disabled.
* - Steps
-
#. Create new OpenStack environment Fuel Web UI and select
“Liberty on Ubuntu 14.04” in the OpenStack release
dropdown list
#. Check off QEMU and check on XenServer, Network is default to “Neutron
with VLAN segmentation” and Storage is default to Cinder. Other
options are disabled.
#. In Nodes Tab, add all 3 Controller Nodes, 3 Compute Nodes and 1
Storage Node.
#. Select all Compute Nodes and click “Configure Interfaces”, drag
Storage/Management network from default eth0 to eth1, Private
network to eth2. Leave PXE on eth0. No networks should be
assigned to the final interface.
#. Select all Controller and Storage Nodes and click “Configure
Interfaces”, drag Storage/Management network from default eth0 to
eth1, Private network to eth2. Leave PXE on eth0.
#. In Networks Tab, set the vlan tags according to your network
interfaces previous set and make sure network range will not be
conflicting with other systems in the same lab. Then click “Verify
Networks” button.
#. In the Settings Tab under the side tab “Compute”, input the
credential applied to all your XenServer hosts.
#. Click “Deploy Changes” button
* - Expected Result
- Deploy of nodes all succeed
Verify hypervisor type
----------------------
.. tabularcolumns:: |p{3cm}|p{13cm}|
.. list-table::
:header-rows: 0
* - Test Case ID
- verify_hypervisor
* - Description
- Verify that all hypervisors are identified by OpenStack as xen.
* - Steps
-
#. Login to Horizon with admin user when OpenStack deployment is
finished.
#. Enter into Admin->Hypervisors
* - Expected Result
- The Type column should show xen for all hypervisors.
Create guest instances
----------------------
.. tabularcolumns:: |p{3cm}|p{13cm}|
.. list-table::
:header-rows: 0
* - Test Case ID
- create_instances
* - Description
- Verify that new environment can create guest instances.
* - Steps
-
#. Create an instance with image of TestVM and flavor of m1.tiny in
either of Horizon or Controller Node.
#. Find the instance in XenCenter and switch to Console Tab.
#. Login with the username and password that prompted in the terminal
screen.
#. Ping out to 8.8.8.8
* - Expected Result
- Guest instances can ping out.
Verify Fuel Health Checks
-------------------------
.. tabularcolumns:: |p{3cm}|p{13cm}|
.. list-table::
:header-rows: 0
* - Test Case ID
- verify_health_checks
* - Description
- Ensure that all applicable health checks pass
* - Steps
-
#. Within the Fuel Master, select the appropriate environment
#. Run all health checks and wait for completion
* - Expected Result
- All health checks, except those requiring additional services
(e.g. Ceilometer) and those where the configuration has not been
changed from the defaults, pass
Mandatory Tests
===============
Install plugin and deploy environment
-------------------------------------
Covered above.
Modifying env with enabled plugin (removing/adding compute nodes)
-----------------------------------------------------------------
.. tabularcolumns:: |p{3cm}|p{13cm}|
.. list-table::
:header-rows: 0
* - Test Case ID
- modify_env_compute_nodes
* - Description
- Adding/removing compute nodes to an existing environment
* - Steps
-
#. Create one more compute following the procedure in step
prepare_nodes
#. Add compute node to an existing environment
#. Redeploy cluster
#. Run Health Check
#. Remove a compute node
#. Redeploy cluster
#. Run Health Check
* - Expected Result
- Removing a compute node will cause “Sanity tests-Check that required
services are running” fail. “Some nova services have not been
started.. Please refer to OpenStack logs for more details.”
Modifying env with enabled plugin (removing/adding controller nodes)
--------------------------------------------------------------------
.. tabularcolumns:: |p{3cm}|p{13cm}|
.. list-table::
:header-rows: 0
* - Test Case ID
- modify_env_controller_nodes
* - Description
- Adding/removing controller nodes to an existing environment
* - Steps
-
#. Create one more controller following the procedure in step
prepare_nodes
#. Add controller node to an existing environment
#. Redeploy cluster
#. Run Health Check
#. Remove a compute node (not the primary controller node)
#. Redeploy cluster
#. Run Health Check
* - Expected Result
- (Probably caused by previous test modify_env_compute_nodes)Removing a
compute node will cause “Sanity tests-Check that required services are
running” fail. “Some nova services have not been started.. Please
refer to OpenStack logs for more details.”
Create mirror and update (setup) of core repos
---------------------------------------------------
.. tabularcolumns:: |p{3cm}|p{13cm}|
.. list-table::
:header-rows: 0
* - Test Case ID
- create_mirror_update_core_repos
* - Description
- Fuel create mirror and update (setup) of core repos
* - Steps
-
#. Launch the following command on the Fuel Master node: ``fuel-mirror create -G mos -P ubuntu``
#. Launch the following command on the Fuel Master node: ``fuel-mirror apply -G mos -P ubuntu -e ENV_ID``, ENV_ID is the id of the deployed cluster
#. Check if MOS repositories have been changed to local
#. Run Health Check
* - Expected Result
- Health Checks are passed.
- MOS repositories have been changed to local
- XenServer Fuel plugin doesn't launch any services, so the check of process PID and status can be skipped
Uninstall of plugin with deployed environment
---------------------------------------------
.. tabularcolumns:: |p{3cm}|p{13cm}|
.. list-table::
:header-rows: 0
* - Test Case ID
- uninstall_plugin_with_deployed_env
* - Description
- Verify XenServer Fuel Plugin cannot be uninstalled before all
dependant environments are removed.
* - Steps
- ``fuel plugins --remove fuel-plugin-xenserver==3.1.0``
* - Expected Result
- 400 Client Error: Bad Request (Can't delete plugin which is enabled
for some environment.)
Uninstall of plugin
-------------------
.. tabularcolumns:: |p{3cm}|p{13cm}|
.. list-table::
:header-rows: 0
* - Test Case ID
- uninstall_plugin
* - Description
- Verify XenServer Fuel Plugin can be uninstalled as well as XenServer
OpenStack release after all dependant environments are removed.
* - Steps
- | ``fuel plugins --remove fuel-plugin-xenserver==3.1.0``
| ``fuel plugins``
* - Expected Result
- Plugin is removed.
Appendix
========
* XenServer Fuel Plugin Repository: https://git.openstack.org/cgit/openstack/fuel-plugin-xenserver
* XenCenter HIMN Plugin GitHub: https://github.com/citrix-openstack/xencenter-himn-plugin
* Plugin download server: http://ca.downloads.xensource.com/OpenStack/Plugins/
Revision history
================
.. list-table::
:header-rows: 1
* - Version
- Revision Date
- Editor
- Comment
* - 1.0
- 18.09.2015
- John Hua (john.hua@citrix.com)
- First draft.
* - 2.0
- 18.11.2015
- John Hua (john.hua@citrix.com)
- Revised for Fuel 7.0
* - 3.0
- 22.03.2016
- John Hua (john.hua@citrix.com)
- Revised for Fuel 8.0
* - 3.1
- 22.03.2016
- John Hua (john.hua@citrix.com)
- Revised for plugin 3.1.0