Bug #19676
closedHammer CLI saves unknown string on defaults field on defaults.yml
Description
Cloned from https://bugzilla.redhat.com/show_bug.cgi?id=1452864
Description of problem:
When using Hammer commands from within hammer shell, when adding new organization_id default, shell creates a unknown string in name field, making any attempt of starting hammer CLI command and/OR Hammer shell break
Version-Release number of selected component (if applicable):
tfm-rubygem-hammer_cli-0.5.1.13-2.el7sat.noarch
How reproducible:
On a user without defaults.yml (Don't test with an existent defaults.yml file), run commands in this order:
[root@sat-master .hammer]# hammer shell
Welcome to the hammer interactive shell
Type 'help' for usage information
hammer> defaults list
----------|------
PARAMETER | VALUE
----------|------
hammer> defaults add --param-name organization_id --param-value 1
Added organization_id default-option with value 1.
hammer> defaults list
----------|------
PARAMETER | VALUE
----------|------
hammer>
[root@sat-master .hammer]# cat defaults.yml
---
:defaults:
:organization_id:
:value: !ruby/string:HammerCLI::CompleterWord
str: '1'
original: '1'
Steps to Reproduce:
1. Steps are provided above
Actual results:
This error is presented when invoking shell or any command from bash after adding a default value to organization_id:
[root@sat-master .hammer]# hammer shell
/opt/rh/rh-ruby22/root/usr/share/ruby/psych/class_loader.rb:53:in `path2class': undefined class/module HammerCLI::CompleterWord (ArgumentError)
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/class_loader.rb:53:in `resolve'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/class_loader.rb:45:in `find'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/class_loader.rb:27:in `load'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/to_ruby.rb:379:in `resolve_class'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/to_ruby.rb:212:in `visit_Psych_Nodes_Mapping'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/visitor.rb:15:in `visit'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/visitor.rb:5:in `accept'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/to_ruby.rb:31:in `accept'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/to_ruby.rb:321:in `block in revive_hash'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/to_ruby.rb:319:in `each'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/to_ruby.rb:319:in `each_slice'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/to_ruby.rb:319:in `revive_hash'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/to_ruby.rb:161:in `visit_Psych_Nodes_Mapping'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/visitor.rb:15:in `visit'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/visitor.rb:5:in `accept'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/to_ruby.rb:31:in `accept'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/to_ruby.rb:321:in `block in revive_hash'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/to_ruby.rb:319:in `each'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/to_ruby.rb:319:in `each_slice'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/to_ruby.rb:319:in `revive_hash'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/to_ruby.rb:161:in `visit_Psych_Nodes_Mapping'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/visitor.rb:15:in `visit'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/visitor.rb:5:in `accept'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/to_ruby.rb:31:in `accept'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/to_ruby.rb:321:in `block in revive_hash'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/to_ruby.rb:319:in `each'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/to_ruby.rb:319:in `each_slice'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/to_ruby.rb:319:in `revive_hash'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/to_ruby.rb:161:in `visit_Psych_Nodes_Mapping'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/visitor.rb:15:in `visit'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/visitor.rb:5:in `accept'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/to_ruby.rb:31:in `accept'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/to_ruby.rb:295:in `visit_Psych_Nodes_Document'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/visitor.rb:15:in `visit'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/visitor.rb:5:in `accept'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/visitors/to_ruby.rb:31:in `accept'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych/nodes/node.rb:37:in `to_ruby'
from /opt/rh/rh-ruby22/root/usr/share/ruby/psych.rb:246:in `load'
from /opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.5.1.13/lib/hammer_cli/settings.rb:37:in `load_from_file'
from /opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.5.1.13/lib/hammer_cli/settings.rb:21:in `block in load_from_paths'
from /opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.5.1.13/lib/hammer_cli/settings.rb:16:in `each'
from /opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.5.1.13/lib/hammer_cli/settings.rb:16:in `load_from_paths'
from /opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.5.1.13/bin/hammer:49:in `<top (required)>'
from /usr/bin/hammer:23:in `load'
from /usr/bin/hammer:23:in `<main>'
Expected results:
Default values added without any problem to defaults.yml file and hammer shell or hammer CLI runs without any problem.
Additional info:
Workaround:
-- Delete 'corrupted' defaults.yml file;
-- Run default command from bash itself:
[root@sat-master .hammer]# hammer defaults add --param-name organization_id --param-value 1
Added organization_id default-option with value 1.
[root@sat-master .hammer]# ls
defaults.yml history log
[root@sat-master .hammer]# cat defaults.yml
---
:defaults:
:organization_id:
:value: '1'
[root@sat-master .hammer]# hammer shell
Welcome to the hammer interactive shell
Type 'help' for usage information
hammer>
</pre
Updated by Tomáš Strachota over 8 years ago
- Subject changed from Hammer CLI saves unknown string on defaults field on defaults.yml to Hammer CLI saves unknown string on defaults field on defaults.yml
- Category changed from Other commands to Hammer core
- Status changed from New to Assigned
- Assignee set to Tomáš Strachota
- Target version set to 1.13.4
Updated by The Foreman Bot over 8 years ago
- Status changed from Assigned to Ready For Testing
- Pull request https://github.com/theforeman/hammer-cli/pull/244 added
Updated by Marek Hulán over 8 years ago
- Target version changed from 1.13.4 to 1.14.0
Updated by Marek Hulán over 8 years ago
- Target version changed from 1.14.0 to 1.14.3
Updated by Marek Hulán over 8 years ago
- Target version changed from 1.14.3 to 1.17.0-RC2
Updated by Anonymous over 8 years ago
- Status changed from Ready For Testing to Closed
- % Done changed from 0 to 100
Applied in changeset ff54c3abae807703b6a1fe12049a04d81fd3cb90.
Updated by Tomáš Strachota over 8 years ago
- Translation missing: en.field_release set to 242
Updated by Tomáš Strachota over 8 years ago
- Translation missing: en.field_release changed from 242 to 289