Upgrading HIL ============== This file describes the procedure for upgrading HIL to a new version. 1. Read the release notes for the particular release, below, which will cover any version-specific information. 2. Stop the HIL services (webserver and HIL network daemon). For exmaple:: $ systemctl stop httpd $ systemctl stop hil_network 3. Download and install the new version of HIL:: $ git clone https://github.com/cci-moc/hil $ python setup.py install 3. 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: - ``_ - ``_ 4. If additional extensions have been added to ``hil.cfg``, re-run ``hil-admin db create``, which will create any tables needed by those extensions. Note that removing extensions is not currently supported. 5. Restart the HIL services. e.g.:: $ systemctl start httpd $ systemctl start hil_network Release Notes ------------- 0.5 (Upcoming) ++++++++++++++ * 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. 0.4 +++ * HIL now depends on OBMd to manage obms; the built in driver support has been removed. Upgrading requires several steps: 1. Set up 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. See ``hil-admin migrate-ipmi-info --help``. This will register all of your existing nodes with OBMd. * Ensure that both the extensions ``hil.ext.obm.ipmi`` and ``hil.ext.obm.mock`` are listed in ``hil.cfg``. * Run ``hil-admin db create``. 3. Update the HIL software as usual. Before restarting the serivces, remove both of the above obm extensions from ``hil.cfg``. * 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. 0.3 +++ * 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. Use ``hil --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. 0.2 +++ 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 their ``HIL_`` varieties.