class Souffle::Provisioner::Node
The node provisioning statemachine.
Attributes
Public Class Methods
Creates a new node provisioner state machine.
@param [ Souffle::Node
] node The node to manage. @param [ Fixnum ] max_failures The maximum number of failures.
# File lib/souffle/provisioner/node.rb, line 83 def initialize(node, max_failures=3) @time_used = 0 @node = node @max_failures = max_failures super() # NOTE: This is here to initialize state_machine. end
Public Instance Methods
Boots up the node and waits for ssh.
# File lib/souffle/provisioner/node.rb, line 97 def boot Souffle::Log.info "#{@node.log_prefix} Booting node..." provider.boot(@node) end
Creates the node from an api or command.
# File lib/souffle/provisioner/node.rb, line 91 def create Souffle::Log.info "#{@node.log_prefix} Creating a new node..." provider.create_node(@node) end
Handles any
# File lib/souffle/provisioner/node.rb, line 156 def error_handler Souffle::Log.info "#{@node.log_prefix} Handling node error..." end
Formats a device to the configured filesystem.
# File lib/souffle/provisioner/node.rb, line 115 def format_device Souffle::Log.info "#{@node.log_prefix} Formatting the device..." provider.format_device(@node) end
Kills the node entirely.
# File lib/souffle/provisioner/node.rb, line 144 def kill Souffle::Log.info "#{@node.log_prefix} Killing node..." provider.kill(@node) end
Kills the node and restarts the creation loop.
# File lib/souffle/provisioner/node.rb, line 150 def kill_and_recreate Souffle::Log.info "#{@node.log_prefix} Recreating node..." provider.kill_and_recreate(@node) end
Notifies the system that the current node has completed provisioning.
# File lib/souffle/provisioner/node.rb, line 138 def node_provisioned Souffle::Log.info "#{@node.log_prefix} Node provisioned." system_provisioner.node_provisioned end
Partitions the soon to be raid device.
# File lib/souffle/provisioner/node.rb, line 109 def partition_device Souffle::Log.info "#{@node.log_prefix} Partitioning the device..." provider.partition(@node) end
Helper function for the node's system provider.
# File lib/souffle/provisioner/node.rb, line 161 def provider @node.provider end
Provisions the given node with a chef/chef-solo run.
# File lib/souffle/provisioner/node.rb, line 132 def provision Souffle::Log.info "#{@node.log_prefix} Provisioning node..." provider.provision(@node) end
Notify the logger when the node is ready for provisioning.
# File lib/souffle/provisioner/node.rb, line 127 def ready Souffle::Log.info "#{@node.log_prefix} Is ready for provisioning..." end
Installs and sets up mdadm.
# File lib/souffle/provisioner/node.rb, line 103 def setup_mdadm Souffle::Log.info "#{@node.log_prefix} Setting up mdadm..." provider.setup_mdadm(@node) end
Sets up raid to the configured raid-level.
# File lib/souffle/provisioner/node.rb, line 121 def setup_raid Souffle::Log.info "#{@node.log_prefix} Setting up raid..." provider.setup_raid(@node) end
Helper function for the system provisioner.
# File lib/souffle/provisioner/node.rb, line 166 def system_provisioner @node.system.provisioner end