Sha256: 2e626e0cea88021f690ffe3ad1e255980b7a0bee7d2ebde5008402661f1b984b

Contents?: true

Size: 1.6 KB

Versions: 9

Compression:

Stored size: 1.6 KB

Contents

# Author:: Prabhu Das (<prabhu.das@clogeny.com>)
# Copyright:: Copyright (c) 2014 Chef Software, Inc.

require 'chef/knife/cloud/list_resource_command'
require 'chef/knife/openstack_helpers'
require 'chef/knife/cloud/openstack_service_options'

class Chef
  class Knife
    class Cloud
      class OpenstackImageList < ResourceListCommand
        include OpenstackHelpers
        include OpenstackServiceOptions

        banner "knife openstack image list (options)"

        option :disable_filter,
          :long => "--disable-filter",
          :description => "Disable filtering of the image list. Currently filters names ending with 'initrd' or 'kernel'",
          :boolean => true,
          :default => false

        def before_exec_command
          #set resource_filters
          if !config[:disable_filter]
            @resource_filters = [{:attribute => 'name', :regex => /initrd$|kernel$|loader$|virtual$|vmlinuz$/}]
          end
          #set columns_with_info map
          @columns_with_info = [
            {:label => 'Name', :key => 'name'},
            {:label => 'ID', :key => 'id'},
            {:label => 'Snapshot', :key => 'metadata', :value_callback => method(:is_image_snapshot)}
          ]
          @sort_by_field = "name"
        end

        def query_resource
          @service.list_images
        end

        def is_image_snapshot(metadata)
          snapshot = 'no'
          metadata.each do |datum|
            if (datum.key == 'image_type') && (datum.value == 'snapshot')
              snapshot = 'yes'
            end
          end
          snapshot
        end

      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
knife-openstack-1.3.2.pre lib/chef/knife/openstack_image_list.rb
knife-openstack-1.3.1 lib/chef/knife/openstack_image_list.rb
knife-openstack-1.2.0 lib/chef/knife/openstack_image_list.rb
knife-openstack-1.2.0.rc2 lib/chef/knife/openstack_image_list.rb
knife-openstack-1.2.0.rc1 lib/chef/knife/openstack_image_list.rb
knife-openstack-1.1.0 lib/chef/knife/openstack_image_list.rb
knife-openstack-1.0.0 lib/chef/knife/openstack_image_list.rb
knife-openstack-1.0.0.rc2 lib/chef/knife/openstack_image_list.rb
knife-openstack-1.0.0.rc1 lib/chef/knife/openstack_image_list.rb