diff options
| author | elijah <elijah@riseup.net> | 2013-06-04 23:06:10 -0700 | 
|---|---|---|
| committer | elijah <elijah@riseup.net> | 2013-06-04 23:06:10 -0700 | 
| commit | 8f79b632aeeee1111087dee6ebb6302aca700bbd (patch) | |
| tree | 647b24bee28b28301de6c4a82a916222cde491e8 /lib/leap_cli/commands/node.rb | |
| parent | a46321a43318a9cd3e2dd645b64fe81b71e7f8ea (diff) | |
add support for `leap facts`. includes some fun new helpers, like run_with_progress(), capture(), and replace_file!().
Diffstat (limited to 'lib/leap_cli/commands/node.rb')
| -rw-r--r-- | lib/leap_cli/commands/node.rb | 11 | 
1 files changed, 10 insertions, 1 deletions
| diff --git a/lib/leap_cli/commands/node.rb b/lib/leap_cli/commands/node.rb index bf552d3..12c9500 100644 --- a/lib/leap_cli/commands/node.rb +++ b/lib/leap_cli/commands/node.rb @@ -45,7 +45,7 @@ module LeapCli; module Commands      node.desc 'Bootstraps a node or nodes, setting up SSH keys and installing prerequisite packages'      node.long_desc "This command prepares a server to be used with the LEAP Platform by saving the server's SSH host key, " + -                   "copying the authorized_keys file, and installing packages that are required for deploying. " + +                   "copying the authorized_keys file, installing packages that are required for deploying, and registering important facts. " +                     "Node init must be run before deploying to a server, and the server must be running and available via the network. " +                     "This command only needs to be run once, but there is no harm in running it multiple times."      node.arg_name 'FILTER' #, :optional => false, :multiple => false @@ -61,6 +61,13 @@ module LeapCli; module Commands            ssh_connect(node, :bootstrap => true, :echo => options[:echo]) do |ssh|              ssh.install_authorized_keys              ssh.install_prerequisites +            ssh.leap.capture(facter_cmd) do |response| +              if response[:exitcode] == 0 +                update_node_facts(node.name, response[:data]) +              else +                log :failed, "to run facter on #{node.name}" +              end +            end            end            finished << node.name          end @@ -79,6 +86,7 @@ module LeapCli; module Commands            rename_file! [path, node.name], [path, new_name]          end          remove_directory! [:node_files_dir, node.name] +        rename_node_facts(node.name, new_name)        end      end @@ -93,6 +101,7 @@ module LeapCli; module Commands          if node.vagrant?            vagrant_command("destroy --force", [node.name])          end +        remote_node_facts(node.name)        end      end    end | 
