Class: Chef::Knife::ClusterDiff
Instance Attribute Summary
#broker, #problems
Class Method Summary
collapse
Instance Method Summary
collapse
#all_computers, #bootstrapper, #configure_dry_run, #confirm_execution, #confirm_or_exit, #die, #discover_computers, #display, #exit_if_unhealthy!, #gemfile, #get_relevant_slice, #get_slice, #has_problem, #healthy?, included, load_deps, #load_ironfan, #pick_apart, #predicate_str, #progressbar_for_threads, #relevant?, #run, #run_bootstrap, #section, #sub_command, #wait_for_ssh
Class Method Details
.mismatches?(target) ⇒ Boolean
53
54
55
56
57
58
59
60
|
# File 'lib/chef/knife/cluster_diff.rb', line 53
def self.mismatches?(target)
target.map do |computer|
local_manifest = computer.server.to_machine_manifest
remote_manifest = Ironfan::Dsl::MachineManifest.from_computer(computer)
display_diff(local_manifest, remote_manifest)
local_manifest != remote_manifest
end.to_a.any?
end
|
Instance Method Details
#_run ⇒ Object
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/chef/knife/cluster_diff.rb', line 35
def _run
load_ironfan
die(banner) if @name_args.empty?
configure_dry_run
@test_chef_data =
if config.has_key? :cache_file
Hash[open(config.fetch(:cache_file)).readlines.map{|line| datum = MultiJson.load(line); [datum['name'], datum]}]
else
{}
end
target = get_slice(* @name_args)
exit(1) if self.class.mismatches?(target)
end
|