Class: VCloudCloud::Steps::AddCatalogItem

Inherits:
VCloudCloud::Step show all
Defined in:
lib/cloud/vcloud/steps/add_catalog_item.rb

Instance Attribute Summary

Attributes inherited from VCloudCloud::Step

#client, #state

Instance Method Summary collapse

Methods inherited from VCloudCloud::Step

#cleanup, #initialize

Constructor Details

This class inherits a constructor from VCloudCloud::Step

Instance Method Details

#perform(catalog_type, item, &block) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/cloud/vcloud/steps/add_catalog_item.rb', line 4

def perform(catalog_type, item, &block)
  catalog = client.catalog catalog_type

  catalog_item = VCloudSdk::Xml::WrapperFactory.create_instance 'CatalogItem'
  catalog_item.name = item.name
  catalog_item.entity = item
  result = client.invoke :post,
                         catalog.add_item_link,
                         :payload => catalog_item,
                         :headers => { :content_type => VCloudSdk::Xml::MEDIA_TYPE[:CATALOG_ITEM] }

  state[:catalog_item] = result
end

#rollbackObject



18
19
20
21
22
23
24
25
# File 'lib/cloud/vcloud/steps/add_catalog_item.rb', line 18

def rollback
  catalog_item = state[:catalog_item]
  return unless catalog_item

  client.invoke :delete, catalog_item
  # remove the item from state
  state.delete :catalog_item
end