
This commit is a first step in the development of a unit test framework for the Ironic-UI API service. The approach being used is to provide an emulation of the Ironic backend using a mock that utilizes Angular $httpbackend handlers to intercept requests targeted at the Ironic-UI server side REST endpoints. In addition to demonstrating the mock I have coded some basic tests to show how it is used. At this point I would like to get feedback from the team, and consensus on whether we should continue the process of building additional tests. Change-Id: Iaec83b0e19b5051ebf1257ddc56efcc6f11ee39d
Team and repository tags
Ironic UI
The Ironic UI is a Horizon plugin that will allow users to view and manage bare metal nodes, ports and drivers.
- Free software: Apache license
- Documentation: http://docs.openstack.org/developer/ironic-ui
- Source: http://git.openstack.org/cgit/openstack/ironic-ui
- Bugs: http://bugs.launchpad.net/ironic-ui
Features
- View bare metal nodes
- View node details
- Apply maintenance and power on/off actions to the nodes
Installation Instructions
Please note that the following instructions assume that you have an existing installation of the OpenStack Horizon dashboard application. For Horizon installation please see http://docs.openstack.org/developer/horizon/quickstart.html
Clone the Ironic UI repository:
git clone https://git.openstack.org/openstack/ironic-ui
Change into the root directory of your horizon installation and activate the python virtual environment. Example:
source .venv/bin/activate
Note
The
.venv
folder is preinstalled when horizon is setup with./run_tests.sh
. Do not attempt to reinstall the virtual environment.Copy the
_2200_ironic.py
file fromironic_ui/enabled/_2200_ironic.py
file tohorizon/openstack_dashboard/local/enabled
directory. Example, set as if being executed from the root of the ironic-ui repository:cp ./ironic_ui/enabled/_2200_ironic.py ../horizon/horizon/openstack_dashboard/local/enabled
Change into the ironic-ui repository and package the plugin:
pip install -e .
This will build and install the ironic-ui plugin into the active virtual environment associated with your horizon installation. The plugin is installed in "editable" mode as a link back to your ironic-ui plugin directory.
Also ensure that all packages as per requirements.txt have been installed.
Change back into the horizon repository and bring up your environment:
./run_tests.sh --runserver
The Ironic Bare Metal Provisioning plugin should now be visible in the Horizon navigation.
Installation Instructions with devstack
In order to use the Ironic UI with devstack, you will need to enable the UI plugin separately. This is done in a similar fashion to enabling Ironic for devstack. Make sure you have horizon enabled (enabled by default in devstack). Then, enable the Ironic UI plugin appending the following line to the end of the local.conf file, just after Ironic plugin enablement:
enable_plugin ironic-ui https://github.com/openstack/ironic-ui
After this, you can run ./stack.sh from the devstack directory.
The Ironic Bare Metal Provisioning plugin should now be visible in the Horizon navigation.
Run JavaScript unit tests by either:
Running the tests locally with npm run test.
Visiting http://localhost:8000/jasmine/?spec=horizon.dashboard.admin.ironic in your browser.
Uninstallation
To uninstall, use pip uninstall ironic-ui
from with-in
the horizon virtual environment. You will also need to remove the
openstack_dashboard/enabled/_2200_ironic.py
file from the
horizon installation.