Knife node show --long/--medium don't work

I’m running chef-client 12.5.1 against chef-server 12.3.1 and I am trying to get knife node show <nodename> to show me the same info that I see in knife node edit <nodename>. Specifically the name, run_list, chef_environment, and node attributes.
Using the --medium or --long don’t seem to affect the output. I still get just the node name and run_list.

However, I have found that if I execute knife node show <nodename> -a chef_environment -a normal then I see those things. Why would --long work for others but not me?

A few issues. First chef_environment isn’t a node attribute, and normal is an attribute level not an attribute. Second, you would want to add --format json.

Regardless of semantics, knife node show <nodename> -a chef_environment -a normal -a run_list shows me what others tell me that knife node show <nodename> --long shows them. I know about JSON format. That’s not the issue. Same result, but different format, with or without -Fj.

Do you have anything unusual in your knife config? The way the config is merged, it’s possible to set some settings that you might think would only apply on the command line.

% grep -v '^#' ~/.chef/knife.rb
log_level                :info
log_location             STDOUT
node_name                'mkeisler'
client_key               '/Users/mkeisler/.chef/mkeisler.pem'
chef_server_url          'https://chef.myorg.com/organizations/myorg'
chef_server_root         'https://chef.myorg.com/'
syntax_check_cache_path  '/Users/mkeisler/.chef/syntax_check_cache'
cookbook_path            '~/git/cookbooks'
knife[:run_list] = 'recipe[myorg-chef-client]'
knife[:bootstrap_install_command] = 'apt-get install chef'
knife[:bootstrap_version] = '12.5.1'
knife[:vault_mode] = 'client'
knife[:vault_admins] = [ 'dude', 'foo', 'bar', 'baz' ]

It's possible that config setting is triggering this option for knife node show:

    -r, --run-list                   Show only the run list

Gah! That was it. Ugh, how annoying. Is there a way to set that in the knife.rb to only trigger when I do a knife bootstrap?

In knife.rb:

if ARGV[0] == 'bootstrap'
  knife[:run_list] = 'recipe[myorg-chef-client]'
end

Duh, yeah it's just ruby. Thanks for the help!