Class: ForemanFogProxmox::Proxmox

Constant Summary

Constants included from ProxmoxVmHelper

ProxmoxVmHelper::GIGA, ProxmoxVmHelper::KILO, ProxmoxVmHelper::MEGA

Class Method Summary collapse

Instance Method Summary collapse

Methods included from ProxmoxConsole

#console

Methods included from ProxmoxVersion

#version, #version_suitable?

Methods included from ProxmoxOperatingSystems

#available_linux_operating_systems, #available_operating_systems, #available_windows_operating_systems, #compute_os_types, #os_linux_types_mapping, #os_windows_types_mapping

Methods included from ProxmoxImages

#available_images, #clone_from_image, #image_exists?, #images_by_storage, #template, #templates

Methods included from ProxmoxInterfaces

#cidr_prefix, #container?, #container_nic_name_valid?, #dhcp?, #editable_network_interfaces?, #host_interfaces_attrs, #set_container_interface_name, #set_gw, #set_ip, #set_nic_identifier, #to_boolean

Methods included from ProxmoxVolumes

#add_volume, #delete_volume, #extract_id, #save_volume, #update_volume, #volume_exists?, #volume_options, #volume_to_delete?

Methods included from ProxmoxVmHelper

#add_cdrom_to_config_server, #convert_memory_size, #convert_memory_sizes, #convert_sizes, #convert_volumes_size, #disk_to_cdrom, #object_to_config_hash, #remove_deletes

Methods included from ProxmoxComputeAttributes

#host_compute_attrs, #interface_compute_attributes, #not_config_key?, #vm_compute_attributes

Methods included from ProxmoxVmQueries

#bridges, #find_vm_by_uuid, #find_vm_in_servers_by_uuid, #nodes, #storages, #vms

Methods included from ProxmoxPools

#add_vm_to_pool, #pool_owner, #pools, #remove_vm_from_pool, #update_pool

Methods included from ProxmoxVmCommands

#create_vm, #destroy_vm, #save_vm, #start_on_boot, #supports_update?, #update_required?, #user_data_supported?

Methods included from ProxmoxVmNew

#default_node, #default_node_id, #interface_container_defaults, #interface_defaults, #interface_server_defaults, #new_container_interface, #new_container_vm, #new_interface, #new_server_interface, #new_server_vm, #new_vm, #new_volume, #new_volume_container, #new_volume_server, #next_vmid, #vm_container_instance_defaults, #vm_instance_defaults, #vm_server_instance_defaults, #volume_container_defaults, #volume_server_defaults

Methods included from ProxmoxTokenExpiration

#token_deadline, #token_expired?

Methods included from ProxmoxConnection

#connection_options, #credentials_valid?, #disconnect, #fog_credentials, #test_connection

Methods included from ProxmoxContainerHelper

#add_container_interface, #config_general_or_ostemplate_key?, #config_keys, #ostemplate_keys, #parse_container_cpu, #parse_container_interfaces, #parse_container_memory, #parse_container_ostemplate, #parse_container_vm, #parse_container_volume, #parse_container_volumes, #parse_ostemplate_without_keys

Methods included from ProxmoxServerHelper

#add_server_interface, #parse_server_cdrom, #parse_server_cpu, #parse_server_interfaces, #parse_server_memory, #parse_server_vm, #parse_server_volume, #parse_server_volumes

Class Method Details

.model_nameObject



60
61
62
# File 'app/models/foreman_fog_proxmox/proxmox.rb', line 60

def self.model_name
  ComputeResource.model_name
end

.provider_friendly_nameObject



52
53
54
# File 'app/models/foreman_fog_proxmox/proxmox.rb', line 52

def self.provider_friendly_name
  'Proxmox'
end

Instance Method Details

#associated_host(vm) ⇒ Object



64
65
66
# File 'app/models/foreman_fog_proxmox/proxmox.rb', line 64

def associated_host(vm)
  associate_by('mac', vm.mac)
end

#capabilitiesObject



56
57
58
# File 'app/models/foreman_fog_proxmox/proxmox.rb', line 56

def capabilities
  [:build, :new_volume, :new_interface, :image]
end

#certs_to_storeObject



76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'app/models/foreman_fog_proxmox/proxmox.rb', line 76

def certs_to_store
  return if ssl_certs.blank?

  store = OpenSSL::X509::Store.new
  ssl_certs.split(/(?=-----BEGIN)/).each do |cert|
    x509_cert = OpenSSL::X509::Certificate.new cert
    store.add_cert x509_cert
  end
  store
rescue StandardError => e
  logger.error(e)
  raise ::Foreman::Exception, N_('Unable to store X509 certificates')
end

#provided_attributesObject



46
47
48
49
50
# File 'app/models/foreman_fog_proxmox/proxmox.rb', line 46

def provided_attributes
  super.merge(
    :mac => :mac
  )
end

#renewObject



98
99
100
# File 'app/models/foreman_fog_proxmox/proxmox.rb', line 98

def renew
  attrs[:renew].blank? ? false : Foreman::Cast.to_bool(attrs[:renew])
end

#renew=(value) ⇒ Object



102
103
104
# File 'app/models/foreman_fog_proxmox/proxmox.rb', line 102

def renew=(value)
  attrs[:renew] = value
end

#ssl_certsObject



68
69
70
# File 'app/models/foreman_fog_proxmox/proxmox.rb', line 68

def ssl_certs
  attrs[:ssl_certs]
end

#ssl_certs=(value) ⇒ Object



72
73
74
# File 'app/models/foreman_fog_proxmox/proxmox.rb', line 72

def ssl_certs=(value)
  attrs[:ssl_certs] = value
end

#ssl_verify_peerObject



90
91
92
# File 'app/models/foreman_fog_proxmox/proxmox.rb', line 90

def ssl_verify_peer
  attrs[:ssl_verify_peer].blank? ? false : Foreman::Cast.to_bool(attrs[:ssl_verify_peer])
end

#ssl_verify_peer=(value) ⇒ Object



94
95
96
# File 'app/models/foreman_fog_proxmox/proxmox.rb', line 94

def ssl_verify_peer=(value)
  attrs[:ssl_verify_peer] = value
end