mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
get_app first implementation, parser isn't working properly
This commit is contained in:
parent
61fe3e9ae8
commit
a40c4c20a6
3 changed files with 114 additions and 2 deletions
67
lib/fog/vcloudng/parsers/compute/get_vapp.rb
Normal file
67
lib/fog/vcloudng/parsers/compute/get_vapp.rb
Normal file
|
@ -0,0 +1,67 @@
|
|||
module Fog
|
||||
module Parsers
|
||||
module Vcloudng
|
||||
module Compute
|
||||
|
||||
|
||||
class GetVapp < VcloudngParser
|
||||
|
||||
def reset
|
||||
@response = { 'Links' => [], 'VirtualHardware' => {}, 'OperatingSystem' => {} }
|
||||
@in_operating_system = false
|
||||
@resource_type = nil
|
||||
end
|
||||
|
||||
def start_element(name, attributes)
|
||||
super
|
||||
case name
|
||||
when 'Link'
|
||||
link = extract_attributes(attributes)
|
||||
@response['Links'] << link
|
||||
when 'OperatingSystemSection'
|
||||
@in_operating_system = true
|
||||
when 'VApp'
|
||||
vapp = extract_attributes(attributes)
|
||||
@response.merge!(vapp.reject {|key,value| !['href', 'name', 'size', 'status', 'type'].include?(key)})
|
||||
end
|
||||
end
|
||||
|
||||
def end_element(name)
|
||||
case name
|
||||
when 'IpAddress'
|
||||
@response['IpAddress'] = value
|
||||
when 'Description'
|
||||
if @in_operating_system
|
||||
@response['OperatingSystem'][name] = value
|
||||
@in_operating_system = false
|
||||
end
|
||||
when 'ResourceType'
|
||||
@resource_type = value
|
||||
case value
|
||||
when '3'
|
||||
@get_cpu = true # cpu
|
||||
when '4' # memory
|
||||
@get_ram = true
|
||||
when '17' # disks
|
||||
@get_disks = true
|
||||
end
|
||||
when 'VirtualQuantity'
|
||||
case @resource_type
|
||||
when '3'
|
||||
@response['VirtualHardware']['cpu'] = value
|
||||
when '4'
|
||||
@response['VirtualHardware']['ram'] = value
|
||||
when '17'
|
||||
@response['VirtualHardware']['disks'] ||= []
|
||||
@response['VirtualHardware']['disks'] << value
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
46
lib/fog/vcloudng/requests/compute/get_vapp.rb
Normal file
46
lib/fog/vcloudng/requests/compute/get_vapp.rb
Normal file
|
@ -0,0 +1,46 @@
|
|||
module Fog
|
||||
module Vcloudng
|
||||
module Compute
|
||||
class Real
|
||||
|
||||
require 'fog/vcloudng/parsers/compute/get_vapp'
|
||||
|
||||
|
||||
# Get details of a vapp
|
||||
#
|
||||
# ==== Parameters
|
||||
# * vapp_id<~Integer> - Id of vapp to lookup
|
||||
#
|
||||
# ==== Returns
|
||||
# * response<~Excon::Response>:
|
||||
# * body<~Hash>:
|
||||
|
||||
# FIXME
|
||||
|
||||
# * 'endTime'<~String> - endTime of task
|
||||
# * 'href'<~String> - link to task
|
||||
# * 'startTime'<~String> - startTime of task
|
||||
# * 'status'<~String> - status of task
|
||||
# * 'type'<~String> - type of task
|
||||
# * 'Owner'<~String> -
|
||||
# * 'href'<~String> - href of owner
|
||||
# * 'name'<~String> - name of owner
|
||||
# * 'type'<~String> - type of owner
|
||||
# * 'Result'<~String> -
|
||||
# * 'href'<~String> - href of result
|
||||
# * 'name'<~String> - name of result
|
||||
# * 'type'<~String> - type of result
|
||||
def get_vapp(vapp_id)
|
||||
request(
|
||||
:expects => 200,
|
||||
:headers => { 'Accept' => 'application/*+xml;version=1.5' },
|
||||
:method => 'GET',
|
||||
:parser => Fog::Parsers::Vcloudng::Compute::GetVapp.new,
|
||||
:path => "vApp/#{vapp_id}"
|
||||
)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -271,7 +271,6 @@ module Fog
|
|||
#require 'fog/vcloudng/parsers/compute/node_service'
|
||||
#require 'fog/vcloudng/parsers/compute/public_ip'
|
||||
#require 'fog/vcloudng/parsers/compute/task'
|
||||
#require 'fog/vcloudng/parsers/compute/vapp'
|
||||
#require 'fog/vcloudng/requests/compute/add_internet_service'
|
||||
#require 'fog/vcloudng/requests/compute/add_node_service'
|
||||
#require 'fog/vcloudng/requests/compute/create_internet_service'
|
||||
|
@ -293,7 +292,7 @@ module Fog
|
|||
#require 'fog/vcloudng/requests/compute/get_task'
|
||||
#require 'fog/vcloudng/requests/compute/get_tasks_list'
|
||||
#require 'fog/vcloudng/requests/compute/get_keys_list'
|
||||
#require 'fog/vcloudng/requests/compute/get_vapp'
|
||||
require 'fog/vcloudng/requests/compute/get_vapp'
|
||||
require 'fog/vcloudng/requests/compute/get_vapp_template'
|
||||
require 'fog/vcloudng/requests/compute/get_vdc'
|
||||
require 'fog/vcloudng/requests/compute/instantiate_vapp_template'
|
||||
|
|
Loading…
Add table
Reference in a new issue