Sha256: 628c25fc7aa1ff8e323e89142e4897785f26819faaed209cf3ee2e9d815a9f85

Contents?: true

Size: 1.52 KB

Versions: 15

Compression:

Stored size: 1.52 KB

Contents

module RSpecSystem
  # Base class for a NodeSet driver. If you want to create a new driver, you
  # should sub-class this and override all the methods below.
  #
  # @abstract Subclass and override methods to create a new NodeSet variant.
  class NodeSet::Base
    attr_reader :config
    attr_reader :setname
    attr_reader :nodes

    # Create new NodeSet, populating necessary data structures.
    def initialize(setname, config)
      @setname = setname
      @config = config

      @nodes = {}
      config['nodes'].each do |k,v|
        @nodes[k] = RSpecSystem::Node.node_from_yaml(self, k, v)
      end
    end

    # Setup the NodeSet by starting all nodes.
    def setup
      raise "Unimplemented method #setup"
    end

    # Shutdown the NodeSet by shutting down or pausing all nodes.
    def teardown
      raise "Unimplemented method #teardown"
    end

    # Run a command on a host in the NodeSet.
    def run(options)
      raise "Unimplemented method #run"
    end

    # Copy a file to the host in the NodeSet.
    def rcp(options)
      raise "Unimplemented method #rcp"
    end

    # Return environment type
    def env_type
      self.class::ENV_TYPE
    end

    # Return default node
    #
    # @return [RSpecSystem::Node] default node for this nodeset
    def default_node
      dn = config['default_node']
      if dn.nil?
        if nodes.length == 1
          dn = nodes.first[1]
          return dn
        else
          raise "No default node"
        end
      else
        return nodes[dn]
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
rspec-system-1.0.0 lib/rspec-system/node_set/base.rb
rspec-system-0.3.6 lib/rspec-system/node_set/base.rb
rspec-system-0.3.5 lib/rspec-system/node_set/base.rb
rspec-system-0.3.4 lib/rspec-system/node_set/base.rb
rspec-system-0.3.3 lib/rspec-system/node_set/base.rb
rspec-system-0.3.2 lib/rspec-system/node_set/base.rb
rspec-system-0.3.1 lib/rspec-system/node_set/base.rb
rspec-system-0.3.0 lib/rspec-system/node_set/base.rb
rspec-system-0.2.0 lib/rspec-system/node_set/base.rb
rspec-system-0.1.5 lib/rspec-system/node_set/base.rb
rspec-system-0.1.4 lib/rspec-system/node_set/base.rb
rspec-system-0.1.3 lib/rspec-system/node_set/base.rb
rspec-system-0.1.2 lib/rspec-system/node_set/base.rb
rspec-system-0.1.1 lib/rspec-system/node_set/base.rb
rspec-system-0.1.0 lib/rspec-system/node_set/base.rb