require 'vagrant' module VagrantPlugins module OVirtProvider class Config < Vagrant.plugin('2', :config) attr_accessor :url attr_accessor :username attr_accessor :password attr_accessor :datacenter attr_accessor :cluster attr_accessor :filtered_api # Domain specific settings used while creating new machine. attr_accessor :memory attr_accessor :memory_guaranteed attr_accessor :cpus attr_accessor :template attr_accessor :template_version attr_accessor :console attr_accessor :disk_size attr_accessor :user_data attr_accessor :name attr_accessor :quota # TODO: change 'ca_cert_store' to 'ca_cert' once rbovirt PR #55 merges. attr_accessor :ca_no_verify attr_accessor :ca_cert_store attr_accessor :ca_cert_file def initialize @url = UNSET_VALUE @username = UNSET_VALUE @password = UNSET_VALUE @datacenter = UNSET_VALUE @cluster = UNSET_VALUE @filtered_api = UNSET_VALUE # Domain specific settings. @memory = UNSET_VALUE @memory_guaranteed = UNSET_VALUE @cpus = UNSET_VALUE @quota = UNSET_VALUE @template = UNSET_VALUE @template_version = UNSET_VALUE @console = UNSET_VALUE @disk_size = UNSET_VALUE @user_data = UNSET_VALUE @name = UNSET_VALUE @ca_no_verify = UNSET_VALUE @ca_cert_store = UNSET_VALUE @ca_cert_file = UNSET_VALUE end def finalize! @url = nil if @url == UNSET_VALUE @username = nil if @username == UNSET_VALUE @password = nil if @password == UNSET_VALUE @datacenter = nil if @datacenter == UNSET_VALUE @cluster = nil if @cluster == UNSET_VALUE @filtered_api = false if @filtered_api == UNSET_VALUE # Domain specific settings. @memory = 512 if @memory == UNSET_VALUE @memory_guaranteed = nil if @memory_guaranteed == UNSET_VALUE @cpus = 1 if @cpus == UNSET_VALUE @quota = nil if @quota == UNSET_VALUE @template = 'Blank' if @template == UNSET_VALUE @template_version = nil if @template_version == UNSET_VALUE @console = 'spice' if @console == UNSET_VALUE @disk_size = nil if @disk_size == UNSET_VALUE @user_data = nil if @user_data == UNSET_VALUE @name = nil if @name == UNSET_VALUE @ca_no_verify = false if @ca_no_verify == UNSET_VALUE @ca_cert_store = nil if @ca_cert_store == UNSET_VALUE @ca_cert_file = nil if @ca_cert_file == UNSET_VALUE end def validate(machine) valid_console_types = ['vnc', 'spice'] raise Errors::InvalidConsoleType, :console => @console unless valid_console_types.include? @console end end end end