Sha256: 241acda115453b1ae502787724004cdccdc021b65f48a731fae188a30bfb4a8c

Contents?: true

Size: 1.46 KB

Versions: 13

Compression:

Stored size: 1.46 KB

Contents

require "inspec/resources/docker"

module Inspec::Resources
  class DockerPlugin < Inspec.resource(1)
    name "docker_plugin"
    supports platform: "unix"
    desc "Retrieves info about docker plugins"
    example <<~EXAMPLE
      describe docker_plugin('rexray/ebs') do
        it { should exist }
        its('id') { should_not eq '0ac30b93ad40' }
        its('version') { should eq '0.11.1' }
        it { should be_enabled }
      end

      describe docker_plugin('alpine:latest') do
        it { should exist }
      end

      describe docker_plugin(id: '4a415e366388') do
        it { should exist }
      end
    EXAMPLE

    def initialize(opts = {})
      # do sanitizion of input values
      o = opts.dup
      o = { name: opts } if opts.is_a?(String)
      @opts = o
    end

    def exist?
      object_info.entries.size == 1
    end

    def enabled?
      object_info.enabled[0]
    end

    def id
      object_info.ids[0] if object_info.entries.size == 1
    end

    def version
      object_info.versions[0] if object_info.entries.size == 1
    end

    def to_s
      plugin = @opts[:name] || @opts[:id]
      "Docker plugin #{plugin}"
    end

    def resource_id
      id || @opts[:id] || @opts[:name] || ""
    end

    private

    def object_info
      return @info if defined?(@info)

      opts = @opts
      @info = inspec.docker.plugins.where do
        (name == opts[:name]) || (!id.nil? && !opts[:id].nil? && (id == opts[:id]))
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
inspec-core-6.8.24 lib/inspec/resources/docker_plugin.rb
inspec-core-5.22.65 lib/inspec/resources/docker_plugin.rb
inspec-core-6.8.11 lib/inspec/resources/docker_plugin.rb
inspec-core-5.22.58 lib/inspec/resources/docker_plugin.rb
inspec-core-5.22.55 lib/inspec/resources/docker_plugin.rb
inspec-core-6.8.1 lib/inspec/resources/docker_plugin.rb
inspec-core-5.22.40 lib/inspec/resources/docker_plugin.rb
inspec-core-6.6.0 lib/inspec/resources/docker_plugin.rb
inspec-core-5.22.36 lib/inspec/resources/docker_plugin.rb
inspec-core-5.22.29 lib/inspec/resources/docker_plugin.rb
inspec-core-5.22.3 lib/inspec/resources/docker_plugin.rb
inspec-core-5.21.29 lib/inspec/resources/docker_plugin.rb
inspec-core-5.18.14 lib/inspec/resources/docker_plugin.rb