class Fog::Kubevirt::Compute::Vminstance

Public Class Methods

parse(object) click to toggle source
# File lib/fog/kubevirt/compute/models/vminstance.rb, line 26
def self.parse(object)
  metadata = object[:metadata]
  status = object[:status]
  spec = object[:spec]
  domain = spec[:domain]
  disks = parse_disks(domain[:devices][:disks])
  networks = parse_networks(spec[:networks])
  {
    :namespace        => metadata[:namespace],
    :name             => metadata[:name],
    :resource_version => metadata[:resourceVersion],
    :uid              => metadata[:uid],
    :owner_name       => metadata.dig(:ownerReferences, 0, :name),
    :owner_uid        => metadata.dig(:ownerReferences, 0, :uid),
    :cpu_cores        => domain.dig(:cpu, :cores),
    :memory           => domain[:resources][:requests][:memory],
    :disks            => disks,
    :volumes          => parse_volumes(spec[:volumes], disks),
    :interfaces       => parse_interfaces(domain[:devices][:interfaces], status[:interfaces], networks),
    :networks         => networks,
    :ip_address       => status.dig(:interfaces, 0, :ipAddress),
    :node_name        => status[:nodeName],
    :status           => status[:phase]
  }
end