Hammer CLI 0.1.0

Hammer CLI 0.1.0 is now available.
(hammer_cli and hammer_cli_foreman gems are at Rubygems.org, RPMs are in
nightly repo, DEBs will follow)

There is a lot of new features and fixes In this major release.

New configuration *

··· ------------------------------ We moved configuration to new locations ‘/etc/hammer/’, ‘$HOME/.hammer/’. This way it is easier to separate client data from foreman server configuration. Modules have separate configuration files in ‘/etc/hammer/cli.modules.d’ or ‘$HOME/.hammer/cli.modules.d’ subdirectories. This buy us easier installation and maintenance of configs of modules.

For more information see the documentation [1]
*) We will keep hammer compatible with older format for a couple of
versions, just please do not mix both

New API bindings layer

New API bindings library [2] is used to abstract communication between
the client and the API. It will bring us easier adding of commands that
are using API provided by Foreman plugins. It should be also more
flexible in adapting to changes in the API.

Small drawback is that the new bindings require apipie cache to be
available on the server. If you are getting “Could not load API
description from the server” error from your CLI, generate the cache
with “foreman-rake apipie:cache” on the server. Foreman 1.5 and later
will generate cache automatically during installation.

Unified naming of commands

Based on poll on the list we changed naming conventions for the
commands. If the command name consists of more then one words, they
should be dash-delimited, i.e. ‘partition_table’ is now
‘partition-table’. This convention is preferred by other CLI tools (e.g.
Git) and is currently consistent through the available plugins.


Almost all the strings in Hammer are now ready for localization. If you
are interested in helping us translating hammer, please join us on
Transifex [3]


We want to thank our community members Stephan Dollberg and Michael Moll
for their contributions to this release, it is greatly appreciated.


[2] https://github.com/Apipie/apipie-bindings
[3] https://www.transifex.com/projects/p/foreman/

List of fixed issues contained in this release

#4849 - Hammer fails silently when no cache is generated [Martin Bačovský]
#4861 - Added option for debugging output [Martin Bačovský]
#4792 - Load configuration form /etc/hammer [Martin Bačovský]
#4791, #4556 - command description issues [Tomas Strachota]
#4676 - numbered collections in output [Tomas Strachota]
#3897 - switch to dynamic bindings [Martin Bačovský]
#3870 - add a directory for module’s configs [Martin Bačovský]
#4531 - subnet info in csv mode errors out [Martin Bačovský]
#4472 - i18n support [Tomas Strachota]
#??? - use a dynamic path to the default config file [Michael Moll]
#4384 - set width to columns in table adapter [Tomas Strachota]
#4231 - base adapter - skip blank values [Tomas Strachota]
#4378 - --interactive=false still prompts [Tomas Strachota]
#3458 - datetime option normalizer [Tomas Strachota]
#4182 - completion of quoted values [Tomas Strachota]
#4112 - cli main commands are now sorted [Lukas Zapletal]
#3883 - persistent history in shell [Tomas Strachota]
#3633 - store option -v into context [Tomas Strachota]
#4246 - add JSONInput formalizer [Brad Buckingham]
#4259 - changes the default configuration [Bryan Kearney]
#??? - Fixed dep on rake (v 10.2.0 dropped support for ruby 1.8.x)
[Martin Bačovský]
#4476 - request localized api responses [Tomas Strachota]
#3598 - configurable request timeout [Tomas Strachota]
#??? - Add provision_method to host creation [Greg Sutcliffe]
#4697 - Unify format of hammer commands (dashes in names) [Martin Bačovský]
#4674 - Server formatter fails on not symbol keys [Martin Bačovský]
#4572 - unable to set/delete parameter [Tomas Strachota]
#4587 - adds host option to pass root password [Stephan Dollberg]
#??? - add zanata translation information [Bryan Kearney]
#4589 - adds conditional output field to show network interfaces
[Stephan Dollberg]
#4130 - default value for proxy import_puppetclasses --dryrun [Stephan
#4558 - DNS proxy id field in subnet list [Stephan Dollberg]
#4585 - assigning puppet classes to hostgroups [Stephan Dollberg]
#4588 - more fields for hostgroup list [Stephan Dollberg]
#4352 - cannot create and update template [Tomas Strachota]
#4517 - proxy import_classes failed [Martin Bačovský]
#4467 - medium info is missing OS Ids [Stephan Dollberg]
#??? - fixed Error: undefined method `[]’ for nil:NilClass [Stephan
#4466 - os info doesn’t show values for architecture, ptables, media and
config templates [Stephan Dollberg]
#3360 - Display OS ids on template info [Daniel Lobato]
#4361 - api singleton broke commands for associations [Tomas Strachota]
#4358 - unmanaged host can be now created empty [Lukas Zapletal]
#4355 - 500 error messages are ignored [Tomas Strachota]
#??? - Create association name method to override [David Davis]
#3458 - use all available options in info actions [Tomas Strachota]
#??? - Credentials moved to Hammer CLI Foreman [Tomas Strachota]
#??? - change name of per_page option in config file [Michael Moll]
#4248 - add option_ prefix for list [Michael Moll]