Class: VagrantPlugins::Proxmox::Config
- Inherits:
-
Object
- Object
- VagrantPlugins::Proxmox::Config
- Defined in:
- lib/vagrant-proxmox/config.rb
Instance Attribute Summary collapse
-
#endpoint ⇒ String
The Proxmox REST API endpoint.
-
#imgcopy_timeout ⇒ Integer
The maximum timeout for a proxmox server task if it’s an upload (in seconds).
-
#openvz_os_template ⇒ String
The openvz os template to use for the virtual machine.
-
#openvz_template_file ⇒ String
The openvz os template file to upload and use for the virtual machine.
-
#password ⇒ String
The Proxmox password.
-
#qemu_disk_size ⇒ String
The qemu disk size to use for the virtual machine, e.g.
-
#qemu_iso ⇒ String
The qemu iso file to use for the virtual machine.
-
#qemu_iso_file ⇒ String
The qemu iso file to upload and use for the virtual machine.
-
#qemu_os ⇒ Symbol
The qemu virtual machine operating system, e.g.
-
#ssh_status_check_interval ⇒ Integer, Proc
The interval between two ssh reachability status retrievals (in seconds).
-
#ssh_timeout ⇒ Integer
The maximum timeout for a ssh connection to a virtual machine (in seconds).
-
#task_status_check_interval ⇒ Integer, Proc
The interval between two proxmox task status retrievals (in seconds).
-
#task_timeout ⇒ Integer
The maximum timeout for a proxmox server task (in seconds).
-
#user_name ⇒ String
The Proxmox user name.
-
#vm_id_range ⇒ Range
The id range to use for the virtual machines.
-
#vm_memory ⇒ Integer
Amount of RAM for the virtual machine in MB.
-
#vm_name_prefix ⇒ String
The prefix for the virtual machine name.
-
#vm_type ⇒ Symbol
The virtual machine type, e.g.
Instance Method Summary collapse
-
#finalize! ⇒ Object
This is the hook that is called to finalize the object before it is put into use.
-
#initialize ⇒ Config
constructor
A new instance of Config.
- #validate(machine) ⇒ Object
Constructor Details
#initialize ⇒ Config
Returns a new instance of Config.
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/vagrant-proxmox/config.rb', line 95 def initialize @endpoint = UNSET_VALUE @user_name = UNSET_VALUE @password = UNSET_VALUE @vm_type = UNSET_VALUE @openvz_os_template = UNSET_VALUE @openvz_template_file = UNSET_VALUE @vm_id_range = 900..999 @vm_name_prefix = 'vagrant_' @vm_memory = 512 @task_timeout = 60 @task_status_check_interval = 2 @ssh_timeout = 60 @ssh_status_check_interval = 5 @imgcopy_timeout = 120 @qemu_os = UNSET_VALUE @qemu_iso = UNSET_VALUE @qemu_iso_file = UNSET_VALUE @qemu_disk_size = UNSET_VALUE end |
Instance Attribute Details
#endpoint ⇒ String
The Proxmox REST API endpoint
8 9 10 |
# File 'lib/vagrant-proxmox/config.rb', line 8 def endpoint @endpoint end |
#imgcopy_timeout ⇒ Integer
The maximum timeout for a proxmox server task if it’s an upload (in seconds)
73 74 75 |
# File 'lib/vagrant-proxmox/config.rb', line 73 def imgcopy_timeout @imgcopy_timeout end |
#openvz_os_template ⇒ String
The openvz os template to use for the virtual machine
28 29 30 |
# File 'lib/vagrant-proxmox/config.rb', line 28 def openvz_os_template @openvz_os_template end |
#openvz_template_file ⇒ String
The openvz os template file to upload and use for the virtual machine
33 34 35 |
# File 'lib/vagrant-proxmox/config.rb', line 33 def openvz_template_file @openvz_template_file end |
#password ⇒ String
The Proxmox password
18 19 20 |
# File 'lib/vagrant-proxmox/config.rb', line 18 def password @password end |
#qemu_disk_size ⇒ String
The qemu disk size to use for the virtual machine, e.g. ‘30G’
93 94 95 |
# File 'lib/vagrant-proxmox/config.rb', line 93 def qemu_disk_size @qemu_disk_size end |
#qemu_iso ⇒ String
The qemu iso file to use for the virtual machine
83 84 85 |
# File 'lib/vagrant-proxmox/config.rb', line 83 def qemu_iso @qemu_iso end |
#qemu_iso_file ⇒ String
The qemu iso file to upload and use for the virtual machine
88 89 90 |
# File 'lib/vagrant-proxmox/config.rb', line 88 def qemu_iso_file @qemu_iso_file end |
#qemu_os ⇒ Symbol
The qemu virtual machine operating system, e.g. :l26
78 79 80 |
# File 'lib/vagrant-proxmox/config.rb', line 78 def qemu_os @qemu_os end |
#ssh_status_check_interval ⇒ Integer, Proc
The interval between two ssh reachability status retrievals (in seconds)
68 69 70 |
# File 'lib/vagrant-proxmox/config.rb', line 68 def ssh_status_check_interval @ssh_status_check_interval end |
#ssh_timeout ⇒ Integer
The maximum timeout for a ssh connection to a virtual machine (in seconds)
63 64 65 |
# File 'lib/vagrant-proxmox/config.rb', line 63 def ssh_timeout @ssh_timeout end |
#task_status_check_interval ⇒ Integer, Proc
The interval between two proxmox task status retrievals (in seconds)
58 59 60 |
# File 'lib/vagrant-proxmox/config.rb', line 58 def task_status_check_interval @task_status_check_interval end |
#task_timeout ⇒ Integer
The maximum timeout for a proxmox server task (in seconds)
53 54 55 |
# File 'lib/vagrant-proxmox/config.rb', line 53 def task_timeout @task_timeout end |
#user_name ⇒ String
The Proxmox user name
13 14 15 |
# File 'lib/vagrant-proxmox/config.rb', line 13 def user_name @user_name end |
#vm_id_range ⇒ Range
The id range to use for the virtual machines
38 39 40 |
# File 'lib/vagrant-proxmox/config.rb', line 38 def vm_id_range @vm_id_range end |
#vm_memory ⇒ Integer
Amount of RAM for the virtual machine in MB
48 49 50 |
# File 'lib/vagrant-proxmox/config.rb', line 48 def vm_memory @vm_memory end |
#vm_name_prefix ⇒ String
The prefix for the virtual machine name
43 44 45 |
# File 'lib/vagrant-proxmox/config.rb', line 43 def vm_name_prefix @vm_name_prefix end |
#vm_type ⇒ Symbol
The virtual machine type, e.g. :openvz or :qemu
23 24 25 |
# File 'lib/vagrant-proxmox/config.rb', line 23 def vm_type @vm_type end |
Instance Method Details
#finalize! ⇒ Object
This is the hook that is called to finalize the object before it is put into use.
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
# File 'lib/vagrant-proxmox/config.rb', line 117 def finalize! @endpoint = nil if @endpoint == UNSET_VALUE @user_name = nil if @user_name == UNSET_VALUE @password = nil if @password == UNSET_VALUE @vm_type = nil if @vm_type == UNSET_VALUE @openvz_template_file = nil if @openvz_template_file == UNSET_VALUE @openvz_os_template = "local:vztmpl/#{File.basename @openvz_template_file}" if @openvz_template_file @openvz_os_template = nil if @openvz_os_template == UNSET_VALUE @qemu_os = nil if @qemu_os == UNSET_VALUE @qemu_iso_file = nil if @qemu_iso_file == UNSET_VALUE @qemu_iso = "local:iso/#{File.basename @qemu_iso_file}" if @qemu_iso_file @qemu_iso = nil if @qemu_iso == UNSET_VALUE @qemu_disk_size = nil if @qemu_disk_size == UNSET_VALUE @qemu_disk_size = convert_disk_size_to_gigabyte @qemu_disk_size if @qemu_disk_size end |
#validate(machine) ⇒ Object
133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
# File 'lib/vagrant-proxmox/config.rb', line 133 def validate machine errors = [] errors << I18n.t('vagrant_proxmox.errors.no_endpoint_specified') unless @endpoint errors << I18n.t('vagrant_proxmox.errors.no_user_name_specified') unless @user_name errors << I18n.t('vagrant_proxmox.errors.no_password_specified') unless @password errors << I18n.t('vagrant_proxmox.errors.no_vm_type_specified') unless @vm_type if @vm_type == :openvz errors << I18n.t('vagrant_proxmox.errors.no_openvz_os_template_or_openvz_template_file_specified_for_type_openvz') unless @openvz_os_template || @openvz_template_file end if @vm_type == :qemu errors << I18n.t('vagrant_proxmox.errors.no_qemu_os_specified_for_vm_type_qemu') unless @qemu_os errors << I18n.t('vagrant_proxmox.errors.no_qemu_iso_or_qemu_iso_file_specified_for_vm_type_qemu') unless @qemu_iso || @qemu_iso_file errors << I18n.t('vagrant_proxmox.errors.no_qemu_disk_size_specified_for_vm_type_qemu') unless @qemu_disk_size end {'Proxmox Provider' => errors} end |