Skip to content

Commit

Permalink
Release v0.2.0
Browse files Browse the repository at this point in the history
Change-Id: I055f326a3c0063e9a8eef3c3cec400e4293c575f
  • Loading branch information
volans- committed Apr 6, 2020
1 parent 8d1f01b commit c7927b3
Show file tree
Hide file tree
Showing 2 changed files with 79 additions and 5 deletions.
76 changes: 75 additions & 1 deletion CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,76 @@
Homer Changelog
---------------

`v0.2.0`_ (2020-04-06)
^^^^^^^^^^^^^^^^^^^^^^

New features
""""""""""""

* Handle commit abort separately (`T244362`_).

* Introduce a new ``HomerAbortError`` exception to specifically handle cases in which the user explicitely aborted
a write operation.
* In the commit callback raise an ``HomerAbortError`` exception when the user abort the commit or reach the limit of
invalid replies.

* transports.junos: retry when a timeout occurs during commits (`T244363`_).
* transports.junos: handle timeouts separately (`T244363`_).

* Handle the ``RpcTimeoutError`` junos exception separately to avoid to have a full stacktrace in the logs as it's a
normal failure scenario.
* Handle the ``TimeoutExpiredError`` ncclient exception separately to avoid failures when calling ``close()``.

* allow overriding the ``ssh_config`` path in homer's config.
* plugins: initial implementation for Netbox data.

* Allow to specify via configuration a Python module to load as a plugin for the Netbox data gathering.
* When configured the plugin class is dynamically loaded and exposed to the templates as netbox.device_plugin.
* It is basically the same implementation of ``NetboxDeviceData`` but allows for any specific selection of data from
Netbox that is not generic enough to be included in Homer itself.

* commit: do not ``commit_check`` on initial empty diff.

* As a consequence of commit ``1edb7c2`` if a device have an empty diff and a commit is run on it, it will run a
``commit_check`` anyway. Avoid this situation skipping the whole operation if at the first attempt the diff is
empty.
* In case of enough timeouts that don't allow Homer to complete the commit operation within the same run, the
automatic rollback should be waited before retrying, otherwise the device will just be skipped.
* To achieve this, passing the attempt number to all the operation callbacks, also if it's currently only used in
the commit one to keep the same interface for all of them.

* diff: allow to omit the actual diff.

* Add the ``-o/--omit-diff`` option to the ``diff`` sub-command to allow to omit the actual diff for security reasons
if the diff results will be used for monitoring/alarming purposes, as the diff might contain sensitive data.

* diff: use different exit code if there is a diff (`T249224`_).

* To allow to run automatic checks on outstanding diffs between the devices running configuration and the one defined
in Homer's config and templates, make the diff command to return a different exit code when successfull but there
is any diff.
* In case of failure the failure exit code will prevail.

* netbox: silently skip devices without platform.

* Some devices might not be reachable by default because not managed. Allow to more silently skip those (debug level
logging only) if they are missing both the FQDN and the Platform in Netbox.

Minor improvements
""""""""""""""""""

* Sort deviced by FQDN
* netbox: skip virtual chassis devices without a domain field set, as they would not be reachable.

Miscellanea
"""""""""""

* examples: add comments to example config
* config: complete test coverage
* doc: fix example ``config.yaml`` indentation
* gitignore: add ``/plugins`` to gitignore to be able to link a plugin directory from other locations in a local
checkout.

`v0.1.1`_ (2019-12-17)
^^^^^^^^^^^^^^^^^^^^^^

Expand All @@ -14,6 +84,10 @@ Homer Changelog


.. _`T228388`: https://phabricator.wikimedia.org/T228388
.. _`T244362`: https://phabricator.wikimedia.org/T244362
.. _`T244363`: https://phabricator.wikimedia.org/T244363
.. _`T249224`: https://phabricator.wikimedia.org/T249224

.. _`v0.1.1`: https://github.com/wikimedia/operations-software-homer/releases/tag/v0.1.1
.. _`v0.1.0`: https://github.com/wikimedia/operations-software-homer/releases/tag/v0.1.0
.. _`v0.1.1`: https://github.com/wikimedia/operations-software-homer/releases/tag/v0.1.1
.. _`v0.2.0`: https://github.com/wikimedia/operations-software-homer/releases/tag/v0.2.0
8 changes: 4 additions & 4 deletions COPYRIGHT
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
For all the files in this repository:

Copyright (c) 2019 Riccardo Coccioli <rcoccioli@wikimedia.org>
Arzhel Younsi <ayounsi@wikimedia.org>
Faidon Liambotis <faidon@wikimedia.org>
Wikimedia Foundation, Inc.
Copyright (c) 2019-2020 Riccardo Coccioli <rcoccioli@wikimedia.org>
Arzhel Younsi <ayounsi@wikimedia.org>
Faidon Liambotis <faidon@wikimedia.org>
Wikimedia Foundation, Inc.

This program is Free Software, you can find details about the
license in the LICENSE file in the root of this repository.

0 comments on commit c7927b3

Please sign in to comment.