Sha256: 397ef692152826860dbee5b2f849bd6246a48588078929ebcf2a58f63f592c6d

Contents?: true

Size: 555 Bytes

Versions: 3

Compression:

Stored size: 555 Bytes

Contents

require 'infrataster/server'
require 'chef/node'
require 'json'

module Infrataster
  # Adds chef data to Infrataster::Server
  class ChefServer < Infrataster::Server
    class << self
      def define(*args)
        @@servers << ChefServer.new(*args)
      end
    end

    attr_reader :node

    def node_from_file(file)
      obj = JSON.parse(IO.read(file))
      Chef::Node.json_create(obj)
    end

    def initialize(name, address, options = {})
      @node = node_from_file(options[:chefnode])
      super(name, address, options)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
infrataster-plugin-chef-0.0.5 lib/infrataster/chef_server.rb
infrataster-plugin-chef-0.0.4 lib/infrataster/chef_server.rb
infrataster-plugin-chef-0.0.3 lib/infrataster/chef_server.rb