Class: Chef::Knife::EnvironmentCompare

Inherits:
Knife
  • Object
show all
Defined in:
lib/chef/knife/environment_compare.rb

Instance Method Summary collapse

Instance Method Details

#runObject



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/chef/knife/environment_compare.rb', line 43

def run
  # Get the commandline environments or all if none are provided.
  environments = environment_list

  # Get a list of all cookbooks that have constraints and their environment.
  constraints = constraint_list(environments)

  # Get the total list of cookbooks that have constraints
  cookbooks = cookbook_list(constraints)

  # If we cannot find any cookbooks, we can stop here.
  if cookbooks.nil? || cookbooks.empty?
    ui.error "Cannot find any environment cookbook constraints"
    exit 1
  end

  # Get all cookbooks so we can compare them all
  cookbooks = rest.get("/cookbooks?num_versions=1") if config[:all]

  # display matrix view of in the requested format.
  if config[:format] == "summary"
    matrix = matrix_output(cookbooks, constraints)
    ui.output(matrix)
  else
    ui.output(constraints)
  end
end