Module: Fog::Proxmox
- Extended by:
- Provider
- Defined in:
- lib/fog/proxmox.rb,
lib/fog/proxmox/core.rb,
lib/fog/proxmox/hash.rb,
lib/fog/proxmox/json.rb,
lib/fog/proxmox/errors.rb,
lib/fog/proxmox/string.rb,
lib/fog/compute/proxmox.rb,
lib/fog/network/proxmox.rb,
lib/fog/proxmox/version.rb,
lib/fog/storage/proxmox.rb,
lib/fog/identity/proxmox.rb,
lib/fog/proxmox/variables.rb,
lib/fog/proxmox/attributes.rb,
lib/fog/proxmox/helpers/ip_helper.rb,
lib/fog/proxmox/helpers/cpu_helper.rb,
lib/fog/proxmox/helpers/nic_helper.rb,
lib/fog/compute/proxmox/models/disk.rb,
lib/fog/compute/proxmox/models/node.rb,
lib/fog/compute/proxmox/models/task.rb,
lib/fog/network/proxmox/models/node.rb,
lib/fog/proxmox/helpers/disk_helper.rb,
lib/fog/compute/proxmox/models/disks.rb,
lib/fog/compute/proxmox/models/nodes.rb,
lib/fog/compute/proxmox/models/tasks.rb,
lib/fog/identity/proxmox/models/pool.rb,
lib/fog/identity/proxmox/models/role.rb,
lib/fog/identity/proxmox/models/user.rb,
lib/fog/network/proxmox/models/nodes.rb,
lib/fog/compute/proxmox/models/server.rb,
lib/fog/compute/proxmox/models/volume.rb,
lib/fog/identity/proxmox/models/group.rb,
lib/fog/identity/proxmox/models/pools.rb,
lib/fog/identity/proxmox/models/roles.rb,
lib/fog/identity/proxmox/models/users.rb,
lib/fog/compute/proxmox/models/servers.rb,
lib/fog/compute/proxmox/models/storage.rb,
lib/fog/compute/proxmox/models/volumes.rb,
lib/fog/identity/proxmox/models/domain.rb,
lib/fog/identity/proxmox/models/groups.rb,
lib/fog/network/proxmox/models/network.rb,
lib/fog/compute/proxmox/models/snapshot.rb,
lib/fog/compute/proxmox/models/storages.rb,
lib/fog/identity/proxmox/models/domains.rb,
lib/fog/network/proxmox/models/networks.rb,
lib/fog/compute/proxmox/models/interface.rb,
lib/fog/compute/proxmox/models/snapshots.rb,
lib/fog/compute/proxmox/requests/get_vnc.rb,
lib/fog/compute/proxmox/models/interfaces.rb,
lib/fog/compute/proxmox/requests/get_task.rb,
lib/fog/compute/proxmox/requests/log_task.rb,
lib/fog/identity/proxmox/models/principal.rb,
lib/fog/network/proxmox/requests/get_node.rb,
lib/fog/proxmox/helpers/controller_helper.rb,
lib/fog/compute/proxmox/requests/move_disk.rb,
lib/fog/compute/proxmox/requests/next_vmid.rb,
lib/fog/compute/proxmox/requests/stop_task.rb,
lib/fog/identity/proxmox/models/permission.rb,
lib/fog/identity/proxmox/requests/get_pool.rb,
lib/fog/identity/proxmox/requests/get_role.rb,
lib/fog/identity/proxmox/requests/get_user.rb,
lib/fog/compute/proxmox/requests/create_vnc.rb,
lib/fog/compute/proxmox/requests/get_volume.rb,
lib/fog/compute/proxmox/requests/list_nodes.rb,
lib/fog/compute/proxmox/requests/list_tasks.rb,
lib/fog/identity/proxmox/models/domain_type.rb,
lib/fog/identity/proxmox/models/permissions.rb,
lib/fog/identity/proxmox/requests/get_group.rb,
lib/fog/network/proxmox/requests/list_nodes.rb,
lib/fog/network/proxmox/requests/power_node.rb,
lib/fog/compute/proxmox/models/server_config.rb,
lib/fog/compute/proxmox/requests/create_term.rb,
lib/fog/compute/proxmox/requests/move_volume.rb,
lib/fog/compute/proxmox/requests/status_task.rb,
lib/fog/identity/proxmox/requests/get_domain.rb,
lib/fog/identity/proxmox/requests/list_pools.rb,
lib/fog/identity/proxmox/requests/list_roles.rb,
lib/fog/identity/proxmox/requests/list_users.rb,
lib/fog/network/proxmox/requests/get_network.rb,
lib/fog/compute/proxmox/requests/clone_server.rb,
lib/fog/compute/proxmox/requests/create_spice.rb,
lib/fog/compute/proxmox/requests/list_servers.rb,
lib/fog/compute/proxmox/requests/list_volumes.rb,
lib/fog/identity/proxmox/requests/create_pool.rb,
lib/fog/identity/proxmox/requests/create_role.rb,
lib/fog/identity/proxmox/requests/create_user.rb,
lib/fog/identity/proxmox/requests/delete_pool.rb,
lib/fog/identity/proxmox/requests/delete_role.rb,
lib/fog/identity/proxmox/requests/delete_user.rb,
lib/fog/identity/proxmox/requests/list_groups.rb,
lib/fog/identity/proxmox/requests/update_pool.rb,
lib/fog/identity/proxmox/requests/update_role.rb,
lib/fog/identity/proxmox/requests/update_user.rb,
lib/fog/compute/proxmox/requests/action_server.rb,
lib/fog/compute/proxmox/requests/create_backup.rb,
lib/fog/compute/proxmox/requests/create_server.rb,
lib/fog/compute/proxmox/requests/delete_server.rb,
lib/fog/compute/proxmox/requests/delete_volume.rb,
lib/fog/compute/proxmox/requests/list_storages.rb,
lib/fog/compute/proxmox/requests/resize_server.rb,
lib/fog/compute/proxmox/requests/update_server.rb,
lib/fog/identity/proxmox/requests/create_group.rb,
lib/fog/identity/proxmox/requests/delete_group.rb,
lib/fog/identity/proxmox/requests/list_domains.rb,
lib/fog/identity/proxmox/requests/read_version.rb,
lib/fog/identity/proxmox/requests/update_group.rb,
lib/fog/network/proxmox/requests/list_networks.rb,
lib/fog/compute/proxmox/requests/list_snapshots.rb,
lib/fog/compute/proxmox/requests/migrate_server.rb,
lib/fog/identity/proxmox/requests/create_domain.rb,
lib/fog/identity/proxmox/requests/delete_domain.rb,
lib/fog/identity/proxmox/requests/update_domain.rb,
lib/fog/network/proxmox/requests/create_network.rb,
lib/fog/network/proxmox/requests/delete_network.rb,
lib/fog/network/proxmox/requests/update_network.rb,
lib/fog/compute/proxmox/requests/create_snapshot.rb,
lib/fog/compute/proxmox/requests/delete_snapshot.rb,
lib/fog/compute/proxmox/requests/template_server.rb,
lib/fog/compute/proxmox/requests/update_snapshot.rb,
lib/fog/compute/proxmox/requests/resize_container.rb,
lib/fog/identity/proxmox/requests/change_password.rb,
lib/fog/compute/proxmox/requests/get_server_config.rb,
lib/fog/compute/proxmox/requests/get_server_status.rb,
lib/fog/compute/proxmox/requests/rollback_snapshot.rb,
lib/fog/identity/proxmox/requests/list_permissions.rb,
lib/fog/identity/proxmox/requests/check_permissions.rb,
lib/fog/compute/proxmox/requests/get_node_statistics.rb,
lib/fog/compute/proxmox/requests/get_snapshot_config.rb,
lib/fog/identity/proxmox/requests/update_permissions.rb
Overview
Defined Under Namespace
Modules: Attributes, ControllerHelper, Core, CpuHelper, DiskHelper, Errors, Hash, IpHelper, Json, NicHelper, String, Variables
Classes: Compute, Identity, Network, Storage
Constant Summary
collapse
- VERSION =
'0.13.0'
Class Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
.credentials ⇒ Object
Returns the value of attribute credentials.
43
44
45
|
# File 'lib/fog/proxmox.rb', line 43
def credentials
@credentials
end
|
.version ⇒ Object
Returns the value of attribute version.
44
45
46
|
# File 'lib/fog/proxmox.rb', line 44
def version
@version
end
|
Class Method Details
.authenticate(options, connection_options = {}) ⇒ Object
51
52
53
54
|
# File 'lib/fog/proxmox.rb', line 51
def self.authenticate(options, connection_options = {})
get_credentials(options, connection_options)
self
end
|
.authenticated? ⇒ Boolean
56
57
58
|
# File 'lib/fog/proxmox.rb', line 56
def self.authenticated?
!@credentials.empty?
end
|
.clear_credentials ⇒ Object
47
48
49
|
# File 'lib/fog/proxmox.rb', line 47
def self.clear_credentials
@credentials = {}
end
|
.credentials_has_expired? ⇒ Boolean
60
61
62
|
# File 'lib/fog/proxmox.rb', line 60
def self.credentials_has_expired?
authenticated? && @credentials[:deadline] < Time.now
end
|
64
65
66
67
|
# File 'lib/fog/proxmox.rb', line 64
def self.(options)
ticket = options[:pve_ticket]
ticket ? ticket : options[:pve_password].to_s
end
|
.get_credentials(options, connection_options = {}) ⇒ Object
69
70
71
72
73
74
75
76
77
78
79
80
81
|
# File 'lib/fog/proxmox.rb', line 69
def self.get_credentials(options, connection_options = {})
pve_ticket_lifetime = options[:pve_ticket_lifetime]
ticket_lifetime = pve_ticket_lifetime ? pve_ticket_lifetime : 2 * 60 * 60
username = options[:pve_username].to_s
password = (options)
url = options[:pve_url]
uri = URI.parse(url)
@api_path = uri.path
connection_options = connection_options.merge(path_prefix: @api_path)
password = @credentials[:ticket] if credentials_has_expired?
request_credentials(uri, connection_options, username, password, ticket_lifetime)
end
|
.request_credentials(uri, connection_options, username, password, ticket_lifetime) ⇒ Object
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
# File 'lib/fog/proxmox.rb', line 83
def self.request_credentials(uri, connection_options, username, password, ticket_lifetime)
request = {
expects: [200, 204],
headers: { 'Accept' => 'application/json' },
body: URI.encode_www_form(username: username, password: password),
method: 'POST',
path: 'access/ticket'
}
connection = Fog::Core::Connection.new(
uri.to_s,
false,
connection_options
)
response = connection.request(request)
data = Json.get_data(response)
ticket = data['ticket']
username = data['username']
csrftoken = data['CSRFPreventionToken']
epoch = Time.now.to_i + ticket_lifetime
deadline = Time.at(epoch)
save_credentials(username, ticket, csrftoken, deadline)
end
|
.save_credentials(username, ticket, csrftoken, deadline) ⇒ Object
106
107
108
109
110
111
112
113
|
# File 'lib/fog/proxmox.rb', line 106
def self.save_credentials(username, ticket, csrftoken, deadline)
@credentials = {
username: username,
ticket: ticket,
csrftoken: csrftoken,
deadline: deadline
}
end
|