This file describes the procedure for upgrading HIL to a new version.
Read the release notes for the particular release, below, which will cover any version-specific information.
Stop the HIL services (webserver and HIL network daemon). For exmaple:
$ systemctl stop httpd $ systemctl stop hil_network
Download and install the new version of HIL:
$ git clone https://github.com/cci-moc/hil $ python setup.py install
Upgrade the database:
$ hil-admin db upgrade heads
heads
indicates that HIL core and all extensions should be upgraded together. This is the only workflow we support, but the curious can read the (developer-oriented) alembic documentation for more information:If additional extensions have been added to
hil.cfg
, re-runhil-admin db create
, which will create any tables needed by those extensions.Note that removing extensions is not currently supported.
Restart the HIL services. e.g.:
$ systemctl start httpd $ systemctl start hil_network
- HIL now checks the permissions of hil.cfg on startup; if they are too permissive (i.e. non-owners may access the file) it will refuse to run.
- The CLI formats the output to be more readable. Output can be formatted as json by passing --json flag to any command.
HIL now depends on OBMd to manage obms; the built in driver support has been removed. Upgrading requires several steps: 1. Set up OBMd: https://github.com/CCI-MOC/obmd/ 2. Before updating HIL (i.e. while still running 0.3):
- run
hil-admin migrate-ipmi-info
, supplying the OBMd base url and admin token. Seehil-admin migrate-ipmi-info --help
. This will register all of your existing nodes with OBMd. - Ensure that both the extensions
hil.ext.obm.ipmi
andhil.ext.obm.mock
are listed inhil.cfg
. - Run
hil-admin db create
.
- Update the HIL software as usual. Before restarting the serivces, remove
both of the above obm extensions from
hil.cfg
.
- run
New APIs to get a node's power status and to power on a node.
Fix a bug which prevented the deletion of a nic.
- Validation checks for the configuration file have been added; be advised
that if there were errors in your
hil.cfg
that were previously undetected you may need to fix them before the servers will start again - The interface to the
hil
command line tool has changed substantially; If you have custom scripts that invoke it they will likely need to be modified. Usehil --help
to explore the new interface. - URLs for API calls are now prefixed with a version number, which for the
current (unstable) API is
v0
; you may need to update scripts and settings accordingly (although the HIL tools themselves should remain internally consistent).
Other changes, which do not require specific action when upgrading:
All HIL APIs are now wrapped by the client library.
Support for a new optional "maintenance pool" feature; see
docs/maintenance-pool.md
.Some new APIs (see
docs/rest_api.md
for details): * Networking actions can now be queried to get their status. * When using the database auth backend, it is possible to list users.Updated APIs: * List networks now shows public networks to regular users. * Some switches now support public key authentication. See
docs/network-drivers.md
for details.
HaaS was renamed to HIL in this release. Accordingly, there are several changes that need to be made when upgrading:
Since the systemd service file is created manually, the old one needs to manually be deleted and the new one copied in. * If wanting to keep the previous haas user, then the service file needs to
be modified to reflect the different username.
The /var/lib/haas and /etc/haas.cfg entries need to be moved (or at least symlinked)
You should remove the "haas" version, since it will be a different set of scripts:
pip uninstall haas
Re-copy hil.wsgi and update apache's wsgi.conf entry to point to it.
Update any scripts that have env vars (like
HAAS_ENDPOINT`
) to theirHIL_
varieties.