Sha256: ad3a484e5e5768584b0e25501eee3a68b5163781828ca8482e1ab24afdeb8f75
Contents?: true
Size: 1.49 KB
Versions: 40
Compression:
Stored size: 1.49 KB
Contents
module Fog module Parsers module Compute module VcloudDirector class VmsByMetadata < VcloudDirectorParser def reset @response = { :vm_records => [] } end def start_element(name, attributes) super case name when 'QueryResultRecords' results = extract_attributes(attributes) @response[:type] = results[:type] @response[:href] = results[:href] @response[:total] = results[:total].to_i # href "https://devlab.mdsol.com/api/vms/query?page=1&pageSize=25&format=records&filter=metadata:unoo==STRING:janderr&fields=name,containerName" key = @response[:href].scan(/filter=metadata:(.*)==STRING/).flatten.first value = @response[:href].scan(/STRING:(.*)&?/).flatten.first @response[:id] = "#{key}:#{value}" when 'VMRecord' results = extract_attributes(attributes) results[:id] = results[:href].split('/').last results[:vapp_name] = results.delete(:containerName) results[:vapp_id] = results.delete(:container).split('/').last results[:cpu] = results.delete(:numberOfCpus) results[:memory] = results.delete(:memoryMB) results[:type] = "application/vnd.vmware.vcloud.vm+xml" @response[:vm_records] << results end end end end end end end
Version data entries
40 entries across 40 versions & 2 rubygems