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_bridge ⇒ String
The qemu network bridge, e.g.
-
#qemu_cores ⇒ Integer
The number of cores per socket.
-
#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_nic_model ⇒ String
The qemu network interface card model, e.g.
-
#qemu_os ⇒ Symbol
The qemu virtual machine operating system, e.g.
-
#qemu_sockets ⇒ Integer
The number of CPU sockets.
-
#qemu_storage ⇒ String
The qemu storage to use for the virtual machine, e.g.
-
#replace_openvz_template_file ⇒ Boolean
Should the openvz os template be replaced (deleted before upload)?.
-
#replace_qemu_iso_file ⇒ Boolean
Should the qemu iso file replaced (deleted before upload)?.
-
#selected_node ⇒ String
The Proxmox preferred cluster node.
-
#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.
138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
# File 'lib/vagrant-proxmox/config.rb', line 138 def initialize @endpoint = UNSET_VALUE @selected_node = UNSET_VALUE @user_name = UNSET_VALUE @password = UNSET_VALUE @vm_type = UNSET_VALUE @openvz_os_template = UNSET_VALUE @openvz_template_file = UNSET_VALUE @replace_openvz_template_file = false @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_cores = 1 @qemu_sockets = 1 @qemu_iso = UNSET_VALUE @qemu_iso_file = UNSET_VALUE @replace_qemu_iso_file = false @qemu_disk_size = UNSET_VALUE @qemu_storage = 'raid' @qemu_nic_model = 'e1000' @qemu_bridge = 'vmbr0' 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)
83 84 85 |
# File 'lib/vagrant-proxmox/config.rb', line 83 def imgcopy_timeout @imgcopy_timeout end |
#openvz_os_template ⇒ String
The openvz os template to use for the virtual machine
33 34 35 |
# File 'lib/vagrant-proxmox/config.rb', line 33 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
38 39 40 |
# File 'lib/vagrant-proxmox/config.rb', line 38 def openvz_template_file @openvz_template_file end |
#password ⇒ String
The Proxmox password
23 24 25 |
# File 'lib/vagrant-proxmox/config.rb', line 23 def password @password end |
#qemu_bridge ⇒ String
The qemu network bridge, e.g. ‘vmbr0’ defaults to ‘vmbr0’ for backwards compatability
136 137 138 |
# File 'lib/vagrant-proxmox/config.rb', line 136 def qemu_bridge @qemu_bridge end |
#qemu_cores ⇒ Integer
The number of cores per socket
93 94 95 |
# File 'lib/vagrant-proxmox/config.rb', line 93 def qemu_cores @qemu_cores end |
#qemu_disk_size ⇒ String
The qemu disk size to use for the virtual machine, e.g. ‘30G’
118 119 120 |
# File 'lib/vagrant-proxmox/config.rb', line 118 def qemu_disk_size @qemu_disk_size end |
#qemu_iso ⇒ String
The qemu iso file to use for the virtual machine
103 104 105 |
# File 'lib/vagrant-proxmox/config.rb', line 103 def qemu_iso @qemu_iso end |
#qemu_iso_file ⇒ String
The qemu iso file to upload and use for the virtual machine
108 109 110 |
# File 'lib/vagrant-proxmox/config.rb', line 108 def qemu_iso_file @qemu_iso_file end |
#qemu_nic_model ⇒ String
The qemu network interface card model, e.g. ‘e1000’, ‘virtio’ defaults to ‘e1000’ for backwards compatability
130 131 132 |
# File 'lib/vagrant-proxmox/config.rb', line 130 def qemu_nic_model @qemu_nic_model end |
#qemu_os ⇒ Symbol
The qemu virtual machine operating system, e.g. :l26
88 89 90 |
# File 'lib/vagrant-proxmox/config.rb', line 88 def qemu_os @qemu_os end |
#qemu_sockets ⇒ Integer
The number of CPU sockets
98 99 100 |
# File 'lib/vagrant-proxmox/config.rb', line 98 def qemu_sockets @qemu_sockets end |
#qemu_storage ⇒ String
The qemu storage to use for the virtual machine, e.g. ‘local’, ‘raid’, ‘cephstore’ defaults to ‘raid’ for backwards compatability
124 125 126 |
# File 'lib/vagrant-proxmox/config.rb', line 124 def qemu_storage @qemu_storage end |
#replace_openvz_template_file ⇒ Boolean
Should the openvz os template be replaced (deleted before upload)?
43 44 45 |
# File 'lib/vagrant-proxmox/config.rb', line 43 def replace_openvz_template_file @replace_openvz_template_file end |
#replace_qemu_iso_file ⇒ Boolean
Should the qemu iso file replaced (deleted before upload)?
113 114 115 |
# File 'lib/vagrant-proxmox/config.rb', line 113 def replace_qemu_iso_file @replace_qemu_iso_file end |
#selected_node ⇒ String
The Proxmox preferred cluster node
13 14 15 |
# File 'lib/vagrant-proxmox/config.rb', line 13 def selected_node @selected_node end |
#ssh_status_check_interval ⇒ Integer, Proc
The interval between two ssh reachability status retrievals (in seconds)
78 79 80 |
# File 'lib/vagrant-proxmox/config.rb', line 78 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)
73 74 75 |
# File 'lib/vagrant-proxmox/config.rb', line 73 def ssh_timeout @ssh_timeout end |
#task_status_check_interval ⇒ Integer, Proc
The interval between two proxmox task status retrievals (in seconds)
68 69 70 |
# File 'lib/vagrant-proxmox/config.rb', line 68 def task_status_check_interval @task_status_check_interval end |
#task_timeout ⇒ Integer
The maximum timeout for a proxmox server task (in seconds)
63 64 65 |
# File 'lib/vagrant-proxmox/config.rb', line 63 def task_timeout @task_timeout end |
#user_name ⇒ String
The Proxmox user name
18 19 20 |
# File 'lib/vagrant-proxmox/config.rb', line 18 def user_name @user_name end |
#vm_id_range ⇒ Range
The id range to use for the virtual machines
48 49 50 |
# File 'lib/vagrant-proxmox/config.rb', line 48 def vm_id_range @vm_id_range end |
#vm_memory ⇒ Integer
Amount of RAM for the virtual machine in MB
58 59 60 |
# File 'lib/vagrant-proxmox/config.rb', line 58 def vm_memory @vm_memory end |
#vm_name_prefix ⇒ String
The prefix for the virtual machine name
53 54 55 |
# File 'lib/vagrant-proxmox/config.rb', line 53 def vm_name_prefix @vm_name_prefix end |
#vm_type ⇒ Symbol
The virtual machine type, e.g. :openvz or :qemu
28 29 30 |
# File 'lib/vagrant-proxmox/config.rb', line 28 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.
168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 |
# File 'lib/vagrant-proxmox/config.rb', line 168 def finalize! @endpoint = nil if @endpoint == UNSET_VALUE @selected_node = 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
185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 |
# File 'lib/vagrant-proxmox/config.rb', line 185 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 |