module Chef::Knife::VcCatalogCommon

Public Class Methods

included(includer) click to toggle source
# File lib/chef/knife/common/vc_catalog_common.rb, line 22
def self.included(includer)
  includer.class_eval do
    option :vcloud_catalog,
           :long => "--catalog CATALOG_NAME",
           :description => "Catalog to whom Catalog Item belongs",
           :proc => Proc.new { |key| Chef::Config[:knife][:vcloud_catalog] = key }
  end
end

Public Instance Methods

get_catalog(catalog_arg) click to toggle source
# File lib/chef/knife/common/vc_catalog_common.rb, line 31
def get_catalog(catalog_arg)
  catalog = nil
  org_name = locate_org_option

  org = connection.get_organization_by_name org_name
  catalog = connection.get_catalog_by_name org, catalog_arg

  raise ArgumentError, "Catalog #{catalog_arg} not found" unless catalog
  catalog
end
get_catalog_item(catalog_item_arg) click to toggle source
# File lib/chef/knife/common/vc_catalog_common.rb, line 42
def get_catalog_item(catalog_item_arg)
  item = nil
  catalog_name = locate_config_value(:vcloud_catalog)

  unless catalog_name
    notice_msg("--catalog not specified, assuming CATALOG_ITEM is an ID")
    item = connection.get_catalog_item catalog_item_arg
  else
    catalog = get_catalog(catalog_name)
    item = connection.get_catalog_item_by_name catalog[:id], catalog_item_arg
  end
  raise ArgumentError, "Catalog Item #{catalog_item_arg} not found" unless item
  item
end