Sha256: f0df78e2d54551c36791436b27f5f1af94db8e0fc3329d69c2916abae3984d69
Contents?: true
Size: 1.12 KB
Versions: 7
Compression:
Stored size: 1.12 KB
Contents
module Fog module Compute class Vsphere # ClusterRuleInfo class Rule < Fog::Model identity :key attribute :datacenter attribute :cluster attribute :name attribute :enabled # Type should be a class - either # - RbVmomi::VIM::ClusterAntiAffinityRuleSpec # - RbVmomi::VIM::ClusterAffinityRuleSpec # - RbVmomi::VIM::ClusterVmHostRuleInfo attribute :type attribute :vm_ids def vms vm_ids.map { |id| service.servers.get(id, datacenter) } end def vms=(vms) self.vm_ids = vms.map(&:instance_uuid) end def save requires :datacenter, :cluster, :name, :enabled, :type, :vm_ids if vm_ids.length < 2 raise ArgumentError, 'A rule must have at least 2 VMs' end if persisted? raise 'Update is not supported yet' else self.key = service.create_rule(attributes) end reload end def destroy service.destroy_rule(attributes) end end end end end
Version data entries
7 entries across 5 versions & 2 rubygems