lib/dcmgr/models/instance_spec.rb in wakame-vdc-agents-10.12.0 vs lib/dcmgr/models/instance_spec.rb in wakame-vdc-agents-11.06.0

- old
+ new

@@ -3,26 +3,35 @@ module Dcmgr::Models class InstanceSpec < AccountResource taggable 'is' inheritable_schema do + String :name, :null=>false String :hypervisor, :null=>false String :arch, :null=>false Fixnum :cpu_cores, :null=>false, :unsigned=>true Fixnum :memory_size, :null=>false, :unsigned=>true + Float :quota_weight, :null=>false, :default=>1.0 Text :config, :null=>false, :default=>'' + Text :storage, :null=>false, :default=>'' + + index [:account_id, :name], {:unique=>true} end with_timestamps # serialization plugin must be defined at the bottom of all class # method calls. # Possible column data: # hypervisor=kvm: # {:block_driver=>'virtio', :nic_driver=>'virtio'} plugin :serialization serialize_attributes :yaml, :config + # hypervisor=kvm: + # { 'sdc' => {:type=>:vdcvol, :size=>100, :dev=>'/dev/sdc'}, + # 'eph1' => {:type=>:ephemeral, :size=>1000, :dev=>'/dev/sdb'}} + serialize_attributes :yaml, :storage def before_validate default_config = case self.hypervisor when HostPool::HYPERVISOR_KVM @@ -33,9 +42,16 @@ super end def to_hash super.merge({:config=>self.config, # yaml -> Hash + :storage => self.storage, # yaml -> Hash }) + end + + def to_api_document + doc = to_hash + doc.delete(:config) + doc end end end