1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00

[vcloud|compute] Fix setting of description.

This commit is contained in:
Lincoln Stoll 2011-06-15 16:37:56 +10:00
parent a84a145829
commit 9aeeb5abe1
4 changed files with 57 additions and 1 deletions

View file

@ -153,6 +153,16 @@ module Fog
true
end
def description=(description)
@description_changed = true unless attributes[:description] == description || attributes[:description] == nil
attributes[:description] = description
end
def name=(name)
@name_changed = true unless attributes[:name] == name || attributes[:name] == nil
attributes[:name] = name
end
def reload
reset_tracking
super
@ -184,7 +194,11 @@ module Fog
data << @add_disk
connection.configure_vm_disks(vm_href, data)
end
#connection.configure_vapp( href, _compose_vapp_data )
if @name_changed || @description_changed
edit_uri = links.select {|i| i[:rel] == 'edit'}
edit_uri = edit_uri.kind_of?(Array) ? edit_uri.flatten[0][:href] : edit_uri[:href]
connection.configure_vm_name_description(edit_uri, self.name, self.description)
end
end
reset_tracking
true
@ -216,6 +230,8 @@ module Fog
@disk_change = false
@changed = false
@update_memory_value = nil
@name_changed = false
@description_changed = nil
end
def _compose_vapp_data

View file

@ -0,0 +1,30 @@
# -*- coding: utf-8 -*-
module Fog
module Vcloud
class Compute
class Real
def configure_vm_name_description(edit_href, name, description)
body = <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<VApp xmlns="http://www.vmware.com/vcloud/v1" name="#{name}" type="application/vnd.vmware.vcloud.vApp+xml">
<Description>#{description}</Description>
</VApp>
EOF
request(
:body => body,
:expects => 202,
:headers => {'Content-Type' => "application/vnd.vmware.vcloud.vApp+xml"},
:method => 'PUT',
:uri => edit_href,
:parse => true
)
end
end
end
end
end

View file

@ -90,6 +90,7 @@ module Fog
request :configure_network_ip
request :configure_vapp
request :configure_vm_memory
request :configure_vm_name_description
request :configure_vm_disks
request :delete_vapp
request :get_catalog

View file

@ -17,6 +17,15 @@ Shindo.tests("Vcloud::Compute | servers", ['vcloud']) do
@svr.on?
end
tests("#svr.description(\"testing\")").returns("testing") do
pending if Fog.mocking?
@svr.wait_for { ready? }
@svr.description = "testing"
@svr.save
@svr.wait_for { ready? }
@svr.description
end
# Power off only stops the OS, doesn't free up resources. #undeploy is for this.
tests("#svr.undeploy()").returns(true) do
pending if Fog.mocking?