Sha256: 4c24183c9a327fd7bd3f1d78fc077c4a8f378514263a8f1a5fa00b5464b4439e

Contents?: true

Size: 1007 Bytes

Versions: 4

Compression:

Stored size: 1007 Bytes

Contents

require 'docker' # it gets this from chef-init

Ohai.plugin(:DockerContainer) do
  provides "docker_container"

  def container_id
    shell_out("hostname").stdout.strip
  end

  def looks_like_docker?
    hint?('docker_container') || !!Docker.version && !!Docker::Container.get(container_id)
  end

  ##
  # The format of the data is collection is the inspect API
  # http://docs.docker.io/reference/api/docker_remote_api_v1.11/#inspect-a-container
  #
  collect_data do
    metadata_from_hints = hint?('docker_container')

    if looks_like_docker?
      Ohai::Log.debug("looks_like_docker? == true")
      docker_container Mash.new

      if metadata_from_hints
        Ohai::Log.debug("docker_container hints present")
        metadata_from_hints.each { |k,v| docker_container[k] = v }
      end

      container = Docker::Container.get(container_id).json
      container.each { |k,v| docker_container[k] = v }
    else
      Ohai::Log.debug("looks_like_docker? == false")
      false
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
knife-container-0.2.4 lib/knife-container/skeletons/knife_container/files/default/plugins/docker_container.rb
knife-container-0.2.2 lib/knife-container/skeletons/knife_container/files/default/plugins/docker_container.rb
knife-container-0.2.1 lib/knife-container/skeletons/knife_container/files/default/plugins/docker_container.rb
knife-container-0.2.0 lib/knife-container/skeletons/knife_container/files/default/plugins/docker_container.rb