Class: VCloudCloud::Steps::CreateMedia
Instance Attribute Summary
#client, #state
Instance Method Summary
collapse
#cleanup, #initialize
Instance Method Details
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
# File 'lib/cloud/vcloud/steps/create_media.rb', line 4
def perform(name, iso, image_type, storage_profile, &block)
media_file = File.new iso, 'rb'
params = VCloudSdk::Xml::WrapperFactory.create_instance 'Media'
params.name = name
params.size = media_file.stat.size
params.image_type = image_type
params.storage_profile = storage_profile
media = client.invoke :post, client.vdc.upload_media_link, :payload => params
state[:media] = media
end
|
#rollback ⇒ Object
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/cloud/vcloud/steps/create_media.rb', line 20
def rollback
media = state[:media]
client.timed_loop do
media = client.reload media
if media.running_tasks.empty?
client.invoke_and_wait :delete, media.delete_link
break
else
media = client.wait_entity media
end
end
state.delete :media
end
|