Sha256: 515c5a6d4276050174fcf914ebb4d66cd21dca7f47bda10bdf985ae674a0b6e3

Contents?: true

Size: 1.28 KB

Versions: 16

Compression:

Stored size: 1.28 KB

Contents

require 'uri'
require 'etc'
require 'forwardable'

require 'chake/backend'

module Chake

  class Node

    extend Forwardable

    attr_reader :hostname
    attr_reader :port
    attr_reader :username
    attr_reader :remote_username
    attr_reader :path
    attr_reader :data

    def self.max_node_name_length
      @max_node_name_length ||= 0
    end
    def self.max_node_name_length=(value)
      @max_node_name_length = value
    end

    def initialize(hostname, data = {})
      uri = URI.parse(hostname)
      if !uri.host && ((!uri.scheme && uri.path) || (uri.scheme && uri.opaque))
        uri = URI.parse("ssh://#{hostname}")
      end
      if uri.path && uri.path.empty?
        uri.path = nil
      end

      @backend_name = uri.scheme

      @hostname = uri.host
      @port = uri.port
      @username = uri.user || Etc.getpwuid.name
      @remote_username = uri.user
      @path = uri.path || "/var/tmp/chef.#{username}"
      @data = data

      if @hostname.length > self.class.max_node_name_length
        self.class.max_node_name_length = @hostname.length
      end
    end

    def backend
      @backend ||= Chake::Backend.get(@backend_name).new(self)
    end

    def_delegators :backend, :run, :run_as_root, :run_shell, :rsync, :rsync_dest, :scp, :scp_dest, :skip?

  end

end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
chake-0.21.2 lib/chake/node.rb
chake-0.21.1 lib/chake/node.rb
chake-0.21 lib/chake/node.rb
chake-0.20 lib/chake/node.rb
chake-0.19 lib/chake/node.rb
chake-0.18 lib/chake/node.rb
chake-0.17.1 lib/chake/node.rb
chake-0.17 lib/chake/node.rb
chake-0.16 lib/chake/node.rb
chake-0.15 lib/chake/node.rb
chake-0.14 lib/chake/node.rb
chake-0.13 lib/chake/node.rb
chake-0.12 lib/chake/node.rb
chake-0.11 lib/chake/node.rb
chake-0.10.2 lib/chake/node.rb
chake-0.10.1 lib/chake/node.rb