Class: Crowbar::Client::Command::Node::Show

Inherits:
Base
  • Object
show all
Includes:
Mixin::Filter, Mixin::Format
Defined in:
lib/crowbar/client/command/node/show.rb

Overview

Implementation for the node show command

Instance Attribute Summary

Attributes inherited from Base

#args, #options, #stderr, #stdin, #stdout

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from Crowbar::Client::Command::Base

Instance Method Details

#executeObject



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/crowbar/client/command/node/show.rb', line 34

def execute
  request.process do |request|
    case request.code
    when 200
      formatter = Formatter::Nested.new(
        format: provide_format,
        path: provide_filter,
        headings: ["Key", "Value"],
        values: Filter::Subset.new(
          filter: provide_filter,
          values: content_from(request)
        ).result
      )

      if formatter.empty?
        err "No result"
      elsif args.name == "help"
        err "Node does not exist"
      else
        say formatter.result
      end
    when 404
      err "Node does not exist"
    else
      err request.parsed_response["error"]
    end
  end
end

#requestObject



28
29
30
31
32
# File 'lib/crowbar/client/command/node/show.rb', line 28

def request
  @request ||= Request::Node::Show.new(
    args
  )
end