Project

General

Profile

Actions

Bug #19676

closed

Hammer CLI saves unknown string on defaults field on defaults.yml

Added by Tomáš Strachota over 7 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
Normal
Category:
Hammer core
Target version:
Difficulty:
Triaged:
Team Backlog:
Fixed in Releases:
Found in Releases:
In Kanboard:

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

Actions #1

Updated by Tomáš Strachota over 7 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
Actions #2

Updated by The Foreman Bot over 7 years ago

  • Status changed from Assigned to Ready For Testing
  • Pull request https://github.com/theforeman/hammer-cli/pull/244 added
Actions #3

Updated by Marek Hulán over 7 years ago

  • Target version changed from 1.13.4 to 1.14.0
Actions #4

Updated by Marek Hulán over 7 years ago

  • Target version changed from 1.14.0 to 1.14.3
Actions #5

Updated by Marek Hulán over 7 years ago

  • Target version changed from 1.14.3 to 1.17.0-RC2
Actions #6

Updated by Anonymous over 7 years ago

  • Status changed from Ready For Testing to Closed
  • % Done changed from 0 to 100
Actions #7

Updated by Tomáš Strachota over 7 years ago

  • Translation missing: en.field_release set to 242
Actions #8

Updated by Tomáš Strachota over 7 years ago

  • Translation missing: en.field_release changed from 242 to 289
Actions

Also available in: Atom PDF