Release Notes¶
Spicerack Changelog¶
v0.0.14 (2019-02-13)¶
New features¶
- icinga: add context manager for downtimed hosts:
- Add a context manager to allow to execute other commands while the hosts are downtimed, removing the downtime at the end.
- management: add management module:
- Add a management module with a
Management
class to interact with the management console names. - For now just add a
get_fqdn()
method to automatically calculate the management FQDN for a given hostname.
- Add a management module with a
- puppet: add
check_enabled()
andcheck_disabled()
methods. - decorators: make
retry()
DRY-RUN aware:- When running in DRY-RUN mode no real changes are done and usually the
@retry
decorated methods are checking for some action to be propagated or completed. Hence when in DRY-RUN mode they tend to fail and retry until the tries attempts are exhausted, adding unnecessary time to the DRY-RUN. - With this patch the
retry()
decorator is able to automagically detect if it's a DRY-RUN mode when called by any instance method that has aself._dry_run
property or, in the special case ofRemoteHostsAdapter
derived instances, it has aself._remote_hosts._dry_run
property.
- When running in DRY-RUN mode no real changes are done and usually the
- puppet: add
delete()
method to remove a host from PuppetDB and clean up everything on the Puppet master. - spicerack: expose the
icinga_master_host
property. - administrative: add
owner
getter to Reason class:- Add a public getter for the owner part of a reason, that retuns in a standard format the user running the code and the host where it's running.
Minor improvements¶
- decorators: improve tests.
- documentation: fine-tune generated documentation.
Bug Fixes¶
- dns: remove unused
dry_run
argument. - Add missing timeout to requests calls.
- dns: fix logging message.
- elasticsearch_cluster: change
is_green()
implementation. - elasticsearch_cluster: fix issues found during live tests.
- spicerack: fix
__version__
. - ipmi: fix typos in docstrings.
v0.0.12 (2019-01-10)¶
New features¶
- ipmi: add support for DRY RUN mode
- config: add load_ini_config() function to parse INI files.
- debmonitor: use the existing configuration file
- Instead of requiring a new configuration file, use the existing one already setup by Puppet for the debmonitor client.
- Inject the path of the Debmonitor config into the ctor with a default value.
- puppet: add default
batch_size
when running puppet- Allow to specify the
batch_size
when running puppet on a set of hosts. - Add a default
batch_size
to avoid to overload the Puppet master hosts.
- Allow to specify the
Bug Fixes¶
- phabricator: remove unneded pylint ignore
- mediawiki: update maintenance host Cumin query
- remote: add workaround for Cumin bug
- To avoid unnecessary waiting on the most common use case of
reboot()
, that is with only one host, unset the defaultbatch_sleep
as a workaround for T213296.
- To avoid unnecessary waiting on the most common use case of
- puppet: fix regenerate_certificate()
- When re-generating the certificate, Puppet will exit with status code
1
both if successful or on failure. - Restrict the accepted exit codes to
1
. - Detect errors in the output and raises if any.
- When re-generating the certificate, Puppet will exit with status code
v0.0.11 (2019-01-08)¶
New features¶
- debmonitor: add debmonitor module
- phabricator: add phabricator module
Bug Fixes¶
- icinga: fix
command_file
property - puppet: fix
subprocess
call tocheck_output()
- dns: include
NXDOMAIN
in theDnsNotFound
exception - admin_reason: fix default value for task
v0.0.10 (2018-12-19)¶
API breaking changes¶
- cookbook: split main into
argument_parser()
andrun()
. - remote: refactor
Remote.query()
API.
New features¶
- Add administrative module.
- dns: add dns module.
- Add elasticsearch_cluster module.
- Add Icinga module.
- Add ipmi module.
- Add Puppet module.
- puppet: add additional methods to
PuppetHosts
. - puppet: add PuppetMaster class.
- remote: add more host functionalities.
Minor improvements¶
- doc: add documentation and its generation.
- interactive: add
ensure_shell_is_durable()
.
Bug Fixes¶
- administrative: fix Reason's signature
- elasticsearch_cluster: fix tests for Python 3.5.
- icinga: fix typo in test docstring.
- interactive: check TTY in
ask_confirmation()
. - mediawiki: kill also HHVM on stop_cronjobs.
- Fix typo in README.rst.
- tests: fix randomly failing pylint check.
Miscellanea¶
- setup.py: update curator version to match our current elasticsearch version.
- setup.py: force
urllib3
version. - tests: fix lint ignore.
v0.0.9 (2018-09-12)¶
Minor improvements¶
- mediawiki: improve siteinfo checks.
- dnsdisc: improve TTL checks.
- exceptions: add
SpicerackCheckError
. - tests: improve prospector tests.
Bug Fixes¶
- dnsdisc: catch dnspython exceptions.
- setup.py: add missing fields and fix missing comma.
v0.0.8 (2018-09-10)¶
Minor improvements¶
- mediawiki: ignore exit codes on stop_cronjobs.
- logging: minor improvements and a fix.
v0.0.6 (2018-09-06)¶
Minor improvements¶
- log: remove relic from switchdc.
- mysql: refactor sync check to avoid GTID.
v0.0.4 (2018-09-04)¶
New features¶
- Add redis_cluster module.
- dnsdisc:
- add methods for checking if a datacenter can be depooled.
- add a
pool()
anddepool()
methods.
- mediawiki:
- improve
stop_cronjobs()
method. - add
check_cronjobs_disabled()
method. - refactor to use confctl's
set_and_verify()
. - split
set_readonly()
and add checks.
- improve
- mysql:
- add
get_dbs()
method. - rename the
ensure_core_masters_in_sync()
method.
- add
- confctl: add
set_and_verify()
method.