fog-proxmox 0.15.1 → 0.15.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -0
- data/examples/compute.rb +2 -1
- data/lib/fog/proxmox/auth/token/access_ticket.rb +2 -2
- data/lib/fog/proxmox/compute/models/efidisk.rb +46 -0
- data/lib/fog/proxmox/compute/models/server.rb +2 -2
- data/lib/fog/proxmox/compute/models/server_config.rb +11 -0
- data/lib/fog/proxmox/compute/requests/delete_server.rb +8 -4
- data/lib/fog/proxmox/compute.rb +1 -0
- data/lib/fog/proxmox/helpers/disk_helper.rb +8 -8
- data/lib/fog/proxmox/helpers/efidisk_helper.rb +76 -0
- data/lib/fog/proxmox/helpers/nic_helper.rb +1 -1
- data/lib/fog/proxmox/identity/models/group.rb +1 -1
- data/lib/fog/proxmox/identity/models/token.rb +1 -1
- data/lib/fog/proxmox/identity/models/user.rb +1 -1
- data/lib/fog/proxmox/string.rb +2 -2
- data/lib/fog/proxmox/version.rb +1 -1
- data/spec/fixtures/proxmox/compute/snapshots.yml +35 -35
- data/spec/helpers/disk_helper_spec.rb +8 -1
- data/spec/helpers/efidisk_helper_spec.rb +68 -0
- metadata +5 -100
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9484bef489394b238790e49ebd6e4ca8faa2a43606c6dfcc24298ce7590d7eb1
|
|
4
|
+
data.tar.gz: 66950f4f17d62d9e05803fad7c7dbc971b64791aed8dd1a86bf9f753ce76dbca
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 437671da2ce7a9dd745673b5679f07adf6c12fbc6cdf9c98a16fca89ce348e0c15c8d958edf475cad6bd7a2975b11e5a11ba05c35fb715efc17484ae3c40fa0b
|
|
7
|
+
data.tar.gz: d85e62d58878800e640b4af5b9960adc28a050cf49f79931ea4d3e68110074f757e6d5dce1212a5bf7c7a042863118b8b7af08baff951699801000b1fbd9ceea
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.15.3](https://github.com/fog/fog-proxmox/compare/v0.15.2...v0.15.3) (2026-01-22)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* Add query params instead of body params to support purge option ([dca9c29](https://github.com/fog/fog-proxmox/commit/dca9c294a64d68598436c53172860b72afd3eb89)), closes [#119](https://github.com/fog/fog-proxmox/issues/119)
|
|
9
|
+
|
|
10
|
+
## [0.15.2](https://github.com/fog/fog-proxmox/compare/v0.15.1...v0.15.2) (2025-08-06)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Miscellaneous Chores
|
|
14
|
+
|
|
15
|
+
* release 0.15.2 ([#116](https://github.com/fog/fog-proxmox/issues/116)) ([d460740](https://github.com/fog/fog-proxmox/commit/d46074059cc48e0951109850904b8bc6a030da81))
|
|
16
|
+
|
|
3
17
|
## [0.15.1](https://github.com/fog/fog-proxmox/compare/v0.15.0...v0.15.1) (2025-02-25)
|
|
4
18
|
|
|
5
19
|
|
data/examples/compute.rb
CHANGED
|
@@ -34,7 +34,8 @@ proxmox_password = 'proxmox01'
|
|
|
34
34
|
compute = Fog::Proxmox::Compute.new(
|
|
35
35
|
proxmox_url: proxmox_url,
|
|
36
36
|
proxmox_username: proxmox_username,
|
|
37
|
-
proxmox_password: proxmox_password
|
|
37
|
+
proxmox_password: proxmox_password,
|
|
38
|
+
proxmox_auth_method: 'access_ticket'
|
|
38
39
|
)
|
|
39
40
|
|
|
40
41
|
# Create pools
|
|
@@ -48,11 +48,11 @@ module Fog
|
|
|
48
48
|
def auth_body(params = {})
|
|
49
49
|
raise URIError, 'URI params is required' if params.nil? || params.empty?
|
|
50
50
|
|
|
51
|
-
if params[:proxmox_username].nil? || params[:proxmox_username].empty?
|
|
51
|
+
if params[:proxmox_username].nil? || params[:proxmox_username].to_s.strip.empty?
|
|
52
52
|
raise URIError,
|
|
53
53
|
'proxmox_username is required'
|
|
54
54
|
end
|
|
55
|
-
if params[:proxmox_password].nil? || params[:proxmox_password].empty?
|
|
55
|
+
if params[:proxmox_password].nil? || params[:proxmox_password].to_s.strip.empty?
|
|
56
56
|
raise URIError,
|
|
57
57
|
'proxmox_password is required'
|
|
58
58
|
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Copyright 2026 ATIX AG
|
|
2
|
+
|
|
3
|
+
# This file is part of Fog::Proxmox.
|
|
4
|
+
|
|
5
|
+
# Fog::Proxmox is free software: you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
# (at your option) any later version.
|
|
9
|
+
|
|
10
|
+
# Fog::Proxmox is distributed in the hope that it will be useful,
|
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
# GNU General Public License for more details.
|
|
14
|
+
|
|
15
|
+
# You should have received a copy of the GNU General Public License
|
|
16
|
+
# along with Fog::Proxmox. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
|
|
18
|
+
# frozen_string_literal: true
|
|
19
|
+
|
|
20
|
+
require 'fog/proxmox/helpers/efidisk_helper'
|
|
21
|
+
|
|
22
|
+
module Fog
|
|
23
|
+
module Proxmox
|
|
24
|
+
class Compute
|
|
25
|
+
# class Efidisk model: https://pve.proxmox.com/pve-docs/api-viewer/index.html#/nodes/{node}/{qemu|lxc}/{vmid}/config
|
|
26
|
+
# size is in Gb
|
|
27
|
+
class Efidisk < Fog::Model
|
|
28
|
+
identity :id
|
|
29
|
+
attribute :volid
|
|
30
|
+
attribute :size
|
|
31
|
+
attribute :format
|
|
32
|
+
attribute :storage
|
|
33
|
+
attribute :efitype
|
|
34
|
+
attribute :pre_enrolled_keys
|
|
35
|
+
|
|
36
|
+
def flatten
|
|
37
|
+
Fog::Proxmox::EfidiskHelper.flatten(attributes)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def to_s
|
|
41
|
+
Fog::Proxmox::Hash.flatten(flatten)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -116,8 +116,8 @@ module Fog
|
|
|
116
116
|
reload
|
|
117
117
|
end
|
|
118
118
|
|
|
119
|
-
def destroy(options = {})
|
|
120
|
-
request(:delete_server, options, vmid: vmid)
|
|
119
|
+
def destroy(options = {}, query: nil)
|
|
120
|
+
request(:delete_server, options, vmid: vmid, query: query)
|
|
121
121
|
end
|
|
122
122
|
|
|
123
123
|
def action(action, options = {})
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
require 'fog/proxmox/attributes'
|
|
21
21
|
require 'fog/proxmox/helpers/nic_helper'
|
|
22
22
|
require 'fog/proxmox/helpers/controller_helper'
|
|
23
|
+
require 'fog/proxmox/helpers/efidisk_helper'
|
|
23
24
|
|
|
24
25
|
module Fog
|
|
25
26
|
module Proxmox
|
|
@@ -78,6 +79,7 @@ module Fog
|
|
|
78
79
|
attribute :sshkeys
|
|
79
80
|
attribute :searchdomain
|
|
80
81
|
attribute :nameserver
|
|
82
|
+
attribute :efidisk
|
|
81
83
|
|
|
82
84
|
def initialize(new_attributes = {})
|
|
83
85
|
prepare_service_value(new_attributes)
|
|
@@ -85,6 +87,7 @@ module Fog
|
|
|
85
87
|
requires :vmid
|
|
86
88
|
initialize_interfaces(new_attributes)
|
|
87
89
|
initialize_disks(new_attributes)
|
|
90
|
+
initialize_efidisk(new_attributes)
|
|
88
91
|
super(new_attributes)
|
|
89
92
|
end
|
|
90
93
|
|
|
@@ -155,6 +158,14 @@ module Fog
|
|
|
155
158
|
attributes[:disks] << Fog::Proxmox::Compute::Disk.new(disk_hash)
|
|
156
159
|
end
|
|
157
160
|
end
|
|
161
|
+
|
|
162
|
+
def initialize_efidisk(new_attributes)
|
|
163
|
+
efidisk = new_attributes['efidisk0']
|
|
164
|
+
return if efidisk.nil?
|
|
165
|
+
|
|
166
|
+
efidisk_hash = Fog::Proxmox::EfidiskHelper.extract(efidisk)
|
|
167
|
+
attributes[:efidisk] = Fog::Proxmox::Compute::Efidisk.new(efidisk_hash)
|
|
168
|
+
end
|
|
158
169
|
end
|
|
159
170
|
end
|
|
160
171
|
end
|
|
@@ -23,22 +23,26 @@ module Fog
|
|
|
23
23
|
class Compute
|
|
24
24
|
# class Real delete_server request
|
|
25
25
|
class Real
|
|
26
|
-
def delete_server(path_params, body_params)
|
|
26
|
+
def delete_server(path_params, body_params, query: nil)
|
|
27
27
|
node = path_params[:node]
|
|
28
28
|
type = path_params[:type]
|
|
29
29
|
vmid = path_params[:vmid]
|
|
30
|
-
|
|
30
|
+
options = {
|
|
31
31
|
expects: [200],
|
|
32
32
|
method: 'DELETE',
|
|
33
33
|
path: "nodes/#{node}/#{type}/#{vmid}",
|
|
34
34
|
body: URI.encode_www_form(body_params)
|
|
35
|
-
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
options[:query] = query if query&.any?
|
|
38
|
+
|
|
39
|
+
request(options)
|
|
36
40
|
end
|
|
37
41
|
end
|
|
38
42
|
|
|
39
43
|
# class Mock delete_server request
|
|
40
44
|
class Mock
|
|
41
|
-
def delete_server(_path_params, _body_params); end
|
|
45
|
+
def delete_server(_path_params, _body_params, query: nil); end
|
|
42
46
|
end
|
|
43
47
|
end
|
|
44
48
|
end
|
data/lib/fog/proxmox/compute.rb
CHANGED
|
@@ -136,28 +136,28 @@ module Fog
|
|
|
136
136
|
|
|
137
137
|
def self.extract_size(disk_value)
|
|
138
138
|
size = extract_option('size', disk_value)
|
|
139
|
-
size = to_int_gb(to_bytes(size)).to_s if size
|
|
139
|
+
size = to_int_gb(to_bytes(size)).to_s if size&.match?(/\d+(G)/)
|
|
140
140
|
size
|
|
141
141
|
end
|
|
142
142
|
|
|
143
143
|
def self.disk?(id)
|
|
144
|
-
DISKS_REGEXP.match(id)
|
|
144
|
+
DISKS_REGEXP.match(id) || false
|
|
145
145
|
end
|
|
146
146
|
|
|
147
147
|
def self.cdrom?(value)
|
|
148
|
-
CDROM_REGEXP.match(value)
|
|
148
|
+
CDROM_REGEXP.match(value) || false
|
|
149
149
|
end
|
|
150
150
|
|
|
151
151
|
def self.server_disk?(id)
|
|
152
|
-
SERVER_DISK_REGEXP.match(id)
|
|
152
|
+
SERVER_DISK_REGEXP.match(id) || false
|
|
153
153
|
end
|
|
154
154
|
|
|
155
155
|
def self.rootfs?(id)
|
|
156
|
-
ROOTFS_REGEXP.match(id)
|
|
156
|
+
ROOTFS_REGEXP.match(id) || false
|
|
157
157
|
end
|
|
158
158
|
|
|
159
159
|
def self.mount_point?(id)
|
|
160
|
-
MOUNT_POINT_REGEXP.match(id)
|
|
160
|
+
MOUNT_POINT_REGEXP.match(id) || false
|
|
161
161
|
end
|
|
162
162
|
|
|
163
163
|
def self.container_disk?(id)
|
|
@@ -165,11 +165,11 @@ module Fog
|
|
|
165
165
|
end
|
|
166
166
|
|
|
167
167
|
def self.template?(volid)
|
|
168
|
-
TEMPLATE_REGEXP.match(volid)
|
|
168
|
+
TEMPLATE_REGEXP.match(volid) || false
|
|
169
169
|
end
|
|
170
170
|
|
|
171
171
|
def self.cloud_init?(volid)
|
|
172
|
-
CLOUD_INIT_REGEXP.match(volid)
|
|
172
|
+
CLOUD_INIT_REGEXP.match(volid) || false
|
|
173
173
|
end
|
|
174
174
|
|
|
175
175
|
def self.of_type?(disk_h, vm_type)
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Copyright 2026 ATIX AG
|
|
4
|
+
|
|
5
|
+
# This file is part of Fog::Proxmox.
|
|
6
|
+
|
|
7
|
+
# Fog::Proxmox is free software: you can redistribute it and/or modify
|
|
8
|
+
# it under the terms of the GNU General Public License as published by
|
|
9
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
10
|
+
# (at your option) any later version.
|
|
11
|
+
|
|
12
|
+
# Fog::Proxmox is distributed in the hope that it will be useful,
|
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
15
|
+
# GNU General Public License for more details.
|
|
16
|
+
|
|
17
|
+
# You should have received a copy of the GNU General Public License
|
|
18
|
+
# along with Fog::Proxmox. If not, see <http://www.gnu.org/licenses/>.
|
|
19
|
+
|
|
20
|
+
module Fog
|
|
21
|
+
module Proxmox
|
|
22
|
+
# module EfidiskHelper mixins
|
|
23
|
+
module EfidiskHelper
|
|
24
|
+
def self.flatten(efidisk)
|
|
25
|
+
return '' if efidisk.nil?
|
|
26
|
+
|
|
27
|
+
volume = efidisk[:volid]
|
|
28
|
+
options = []
|
|
29
|
+
|
|
30
|
+
if efidisk.key?(:efitype)
|
|
31
|
+
options.push("efitype=#{efidisk[:efitype]}")
|
|
32
|
+
else
|
|
33
|
+
options.push('efitype=4m') # default efitype
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
options.push("size=#{efidisk[:size]}") if efidisk.key?(:size)
|
|
37
|
+
|
|
38
|
+
if efidisk.key?(:pre_enrolled_keys)
|
|
39
|
+
options.push("pre-enrolled-keys=#{efidisk[:pre_enrolled_keys]}")
|
|
40
|
+
else
|
|
41
|
+
options.push('pre-enrolled-keys=0') # Use 0=disabled if not given
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
{ "efidisk#{efidisk[:id]}": "#{volume},#{options.join(',')}" }
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def self.extract_key(name, efidisk)
|
|
48
|
+
matches = efidisk.match(%r{,{0,1}#{name}={1}(?<name_value>[\w/.:]+)})
|
|
49
|
+
matches ? matches[:name_value] : matches
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def self.extract_storage(key)
|
|
53
|
+
values_a = key.scan(%r{^(([\w-]+):{0,1}([\w/.-]+))})
|
|
54
|
+
values = values_a.first if values_a
|
|
55
|
+
values[1]
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def self.extract(efidisk_key)
|
|
59
|
+
efidisk = efidisk_key.dup
|
|
60
|
+
# convert "-" to "_" in 'local:110/vm-110-disk-0.qcow2,efitype=4m,pre-enrolled-keys=1,size=528K'
|
|
61
|
+
efidisk&.gsub!('pre-enrolled-keys', 'pre_enrolled_keys')
|
|
62
|
+
|
|
63
|
+
names = %i[efitype pre_enrolled_keys size]
|
|
64
|
+
efidisk_hash = {
|
|
65
|
+
id: 0,
|
|
66
|
+
volid: efidisk.split(',')[0],
|
|
67
|
+
storage: extract_storage(efidisk)
|
|
68
|
+
}
|
|
69
|
+
names.each do |name|
|
|
70
|
+
efidisk_hash.store(name.to_sym, extract_key(name, efidisk))
|
|
71
|
+
end
|
|
72
|
+
efidisk_hash
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
@@ -28,7 +28,7 @@ module Fog
|
|
|
28
28
|
attribute :members
|
|
29
29
|
|
|
30
30
|
def save(options = {})
|
|
31
|
-
service.create_group(
|
|
31
|
+
service.create_group(attributes.reject { |attribute| %i[users members].include? attribute }.merge(options))
|
|
32
32
|
reload
|
|
33
33
|
end
|
|
34
34
|
|
|
@@ -42,7 +42,7 @@ module Fog
|
|
|
42
42
|
|
|
43
43
|
def save(options = {})
|
|
44
44
|
requires :tokenid, :userid
|
|
45
|
-
token_hash =
|
|
45
|
+
token_hash = attributes.reject { |attribute| %i[userid tokenid info].include? attribute }.merge(options)
|
|
46
46
|
service.create_token(userid, tokenid, token_hash)
|
|
47
47
|
reload
|
|
48
48
|
end
|
|
@@ -45,7 +45,7 @@ module Fog
|
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
def save(options = {})
|
|
48
|
-
service.create_user(
|
|
48
|
+
service.create_user(attributes.reject { |attribute| [:tokens].include? attribute }.merge(options))
|
|
49
49
|
reload
|
|
50
50
|
end
|
|
51
51
|
|
data/lib/fog/proxmox/string.rb
CHANGED
|
@@ -22,8 +22,8 @@ module Fog
|
|
|
22
22
|
# module String mixins
|
|
23
23
|
module String
|
|
24
24
|
def self.to_boolean(text)
|
|
25
|
-
return true if text == true || text =~
|
|
26
|
-
return false if text == false || text.empty? || text =~
|
|
25
|
+
return true if text == true || text =~ /(true|t|yes|y|1)$/i
|
|
26
|
+
return false if text == false || text.empty? || text =~ /(false|f|no|n|0)$/i
|
|
27
27
|
|
|
28
28
|
raise ArgumentError, "invalid value for Boolean: \"#{text}\""
|
|
29
29
|
end
|
data/lib/fog/proxmox/version.rb
CHANGED
|
@@ -39,7 +39,7 @@ http_interactions:
|
|
|
39
39
|
recorded_at: Wed, 10 May 2023 11:52:43 GMT
|
|
40
40
|
- request:
|
|
41
41
|
method: get
|
|
42
|
-
uri: https://
|
|
42
|
+
uri: https://192.168.56.101:8006/api2/json/nodes
|
|
43
43
|
body:
|
|
44
44
|
encoding: US-ASCII
|
|
45
45
|
string: ''
|
|
@@ -76,7 +76,7 @@ http_interactions:
|
|
|
76
76
|
recorded_at: Thu, 11 May 2023 13:03:10 GMT
|
|
77
77
|
- request:
|
|
78
78
|
method: get
|
|
79
|
-
uri: https://
|
|
79
|
+
uri: https://192.168.56.101:8006/api2/json/cluster/nextid
|
|
80
80
|
body:
|
|
81
81
|
encoding: US-ASCII
|
|
82
82
|
string: ''
|
|
@@ -113,7 +113,7 @@ http_interactions:
|
|
|
113
113
|
recorded_at: Thu, 11 May 2023 13:03:10 GMT
|
|
114
114
|
- request:
|
|
115
115
|
method: get
|
|
116
|
-
uri: https://
|
|
116
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/tasks
|
|
117
117
|
body:
|
|
118
118
|
encoding: US-ASCII
|
|
119
119
|
string: ''
|
|
@@ -155,7 +155,7 @@ http_interactions:
|
|
|
155
155
|
recorded_at: Thu, 11 May 2023 13:03:10 GMT
|
|
156
156
|
- request:
|
|
157
157
|
method: get
|
|
158
|
-
uri: https://
|
|
158
|
+
uri: https://192.168.56.101:8006/api2/json/cluster/nextid?vmid=101
|
|
159
159
|
body:
|
|
160
160
|
encoding: US-ASCII
|
|
161
161
|
string: ''
|
|
@@ -192,7 +192,7 @@ http_interactions:
|
|
|
192
192
|
recorded_at: Thu, 11 May 2023 13:03:10 GMT
|
|
193
193
|
- request:
|
|
194
194
|
method: post
|
|
195
|
-
uri: https://
|
|
195
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/qemu
|
|
196
196
|
body:
|
|
197
197
|
encoding: US-ASCII
|
|
198
198
|
string: vmid=101
|
|
@@ -231,7 +231,7 @@ http_interactions:
|
|
|
231
231
|
recorded_at: Thu, 11 May 2023 13:03:10 GMT
|
|
232
232
|
- request:
|
|
233
233
|
method: get
|
|
234
|
-
uri: https://
|
|
234
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE0:0022900B:645CE78E:qmcreate:101:root@pam:/status
|
|
235
235
|
body:
|
|
236
236
|
encoding: US-ASCII
|
|
237
237
|
string: ''
|
|
@@ -268,7 +268,7 @@ http_interactions:
|
|
|
268
268
|
recorded_at: Thu, 11 May 2023 13:03:10 GMT
|
|
269
269
|
- request:
|
|
270
270
|
method: get
|
|
271
|
-
uri: https://
|
|
271
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE0:0022900B:645CE78E:qmcreate:101:root@pam:/log
|
|
272
272
|
body:
|
|
273
273
|
encoding: US-ASCII
|
|
274
274
|
string: ''
|
|
@@ -305,7 +305,7 @@ http_interactions:
|
|
|
305
305
|
recorded_at: Thu, 11 May 2023 13:03:10 GMT
|
|
306
306
|
- request:
|
|
307
307
|
method: get
|
|
308
|
-
uri: https://
|
|
308
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE0:0022900B:645CE78E:qmcreate:101:root@pam:/status
|
|
309
309
|
body:
|
|
310
310
|
encoding: US-ASCII
|
|
311
311
|
string: ''
|
|
@@ -342,7 +342,7 @@ http_interactions:
|
|
|
342
342
|
recorded_at: Thu, 11 May 2023 13:03:10 GMT
|
|
343
343
|
- request:
|
|
344
344
|
method: get
|
|
345
|
-
uri: https://
|
|
345
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE0:0022900B:645CE78E:qmcreate:101:root@pam:/log
|
|
346
346
|
body:
|
|
347
347
|
encoding: US-ASCII
|
|
348
348
|
string: ''
|
|
@@ -379,7 +379,7 @@ http_interactions:
|
|
|
379
379
|
recorded_at: Thu, 11 May 2023 13:03:10 GMT
|
|
380
380
|
- request:
|
|
381
381
|
method: get
|
|
382
|
-
uri: https://
|
|
382
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/qemu/101/status/current
|
|
383
383
|
body:
|
|
384
384
|
encoding: US-ASCII
|
|
385
385
|
string: ''
|
|
@@ -417,7 +417,7 @@ http_interactions:
|
|
|
417
417
|
recorded_at: Thu, 11 May 2023 13:03:10 GMT
|
|
418
418
|
- request:
|
|
419
419
|
method: get
|
|
420
|
-
uri: https://
|
|
420
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/qemu/101/config
|
|
421
421
|
body:
|
|
422
422
|
encoding: US-ASCII
|
|
423
423
|
string: ''
|
|
@@ -455,7 +455,7 @@ http_interactions:
|
|
|
455
455
|
recorded_at: Thu, 11 May 2023 13:03:10 GMT
|
|
456
456
|
- request:
|
|
457
457
|
method: get
|
|
458
|
-
uri: https://
|
|
458
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/tasks
|
|
459
459
|
body:
|
|
460
460
|
encoding: US-ASCII
|
|
461
461
|
string: ''
|
|
@@ -497,7 +497,7 @@ http_interactions:
|
|
|
497
497
|
recorded_at: Thu, 11 May 2023 13:03:10 GMT
|
|
498
498
|
- request:
|
|
499
499
|
method: get
|
|
500
|
-
uri: https://
|
|
500
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/qemu/101/status/current
|
|
501
501
|
body:
|
|
502
502
|
encoding: US-ASCII
|
|
503
503
|
string: ''
|
|
@@ -535,7 +535,7 @@ http_interactions:
|
|
|
535
535
|
recorded_at: Thu, 11 May 2023 13:03:10 GMT
|
|
536
536
|
- request:
|
|
537
537
|
method: get
|
|
538
|
-
uri: https://
|
|
538
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/qemu/101/config
|
|
539
539
|
body:
|
|
540
540
|
encoding: US-ASCII
|
|
541
541
|
string: ''
|
|
@@ -573,7 +573,7 @@ http_interactions:
|
|
|
573
573
|
recorded_at: Thu, 11 May 2023 13:03:10 GMT
|
|
574
574
|
- request:
|
|
575
575
|
method: get
|
|
576
|
-
uri: https://
|
|
576
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/tasks
|
|
577
577
|
body:
|
|
578
578
|
encoding: US-ASCII
|
|
579
579
|
string: ''
|
|
@@ -615,7 +615,7 @@ http_interactions:
|
|
|
615
615
|
recorded_at: Thu, 11 May 2023 13:03:10 GMT
|
|
616
616
|
- request:
|
|
617
617
|
method: get
|
|
618
|
-
uri: https://
|
|
618
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/tasks
|
|
619
619
|
body:
|
|
620
620
|
encoding: US-ASCII
|
|
621
621
|
string: ''
|
|
@@ -657,7 +657,7 @@ http_interactions:
|
|
|
657
657
|
recorded_at: Thu, 11 May 2023 13:03:11 GMT
|
|
658
658
|
- request:
|
|
659
659
|
method: post
|
|
660
|
-
uri: https://
|
|
660
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/qemu/101/snapshot
|
|
661
661
|
body:
|
|
662
662
|
encoding: US-ASCII
|
|
663
663
|
string: snapname=snapshot1&vmstate=0
|
|
@@ -696,7 +696,7 @@ http_interactions:
|
|
|
696
696
|
recorded_at: Thu, 11 May 2023 13:03:11 GMT
|
|
697
697
|
- request:
|
|
698
698
|
method: get
|
|
699
|
-
uri: https://
|
|
699
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE4:00229055:645CE78F:qmsnapshot:101:root@pam:/status
|
|
700
700
|
body:
|
|
701
701
|
encoding: US-ASCII
|
|
702
702
|
string: ''
|
|
@@ -733,7 +733,7 @@ http_interactions:
|
|
|
733
733
|
recorded_at: Thu, 11 May 2023 13:03:11 GMT
|
|
734
734
|
- request:
|
|
735
735
|
method: get
|
|
736
|
-
uri: https://
|
|
736
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE4:00229055:645CE78F:qmsnapshot:101:root@pam:/log
|
|
737
737
|
body:
|
|
738
738
|
encoding: US-ASCII
|
|
739
739
|
string: ''
|
|
@@ -770,7 +770,7 @@ http_interactions:
|
|
|
770
770
|
recorded_at: Thu, 11 May 2023 13:03:11 GMT
|
|
771
771
|
- request:
|
|
772
772
|
method: get
|
|
773
|
-
uri: https://
|
|
773
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE4:00229055:645CE78F:qmsnapshot:101:root@pam:/status
|
|
774
774
|
body:
|
|
775
775
|
encoding: US-ASCII
|
|
776
776
|
string: ''
|
|
@@ -807,7 +807,7 @@ http_interactions:
|
|
|
807
807
|
recorded_at: Thu, 11 May 2023 13:03:11 GMT
|
|
808
808
|
- request:
|
|
809
809
|
method: get
|
|
810
|
-
uri: https://
|
|
810
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE4:00229055:645CE78F:qmsnapshot:101:root@pam:/log
|
|
811
811
|
body:
|
|
812
812
|
encoding: US-ASCII
|
|
813
813
|
string: ''
|
|
@@ -844,7 +844,7 @@ http_interactions:
|
|
|
844
844
|
recorded_at: Thu, 11 May 2023 13:03:11 GMT
|
|
845
845
|
- request:
|
|
846
846
|
method: get
|
|
847
|
-
uri: https://
|
|
847
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/qemu/101/snapshot
|
|
848
848
|
body:
|
|
849
849
|
encoding: US-ASCII
|
|
850
850
|
string: ''
|
|
@@ -882,7 +882,7 @@ http_interactions:
|
|
|
882
882
|
recorded_at: Thu, 11 May 2023 13:03:11 GMT
|
|
883
883
|
- request:
|
|
884
884
|
method: put
|
|
885
|
-
uri: https://
|
|
885
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/qemu/101/snapshot/snapshot1/config
|
|
886
886
|
body:
|
|
887
887
|
encoding: US-ASCII
|
|
888
888
|
string: description=Snapshot+1
|
|
@@ -921,7 +921,7 @@ http_interactions:
|
|
|
921
921
|
recorded_at: Thu, 11 May 2023 13:03:11 GMT
|
|
922
922
|
- request:
|
|
923
923
|
method: get
|
|
924
|
-
uri: https://
|
|
924
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/qemu/101/snapshot
|
|
925
925
|
body:
|
|
926
926
|
encoding: US-ASCII
|
|
927
927
|
string: ''
|
|
@@ -959,7 +959,7 @@ http_interactions:
|
|
|
959
959
|
recorded_at: Thu, 11 May 2023 13:03:11 GMT
|
|
960
960
|
- request:
|
|
961
961
|
method: get
|
|
962
|
-
uri: https://
|
|
962
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/tasks
|
|
963
963
|
body:
|
|
964
964
|
encoding: US-ASCII
|
|
965
965
|
string: ''
|
|
@@ -1001,7 +1001,7 @@ http_interactions:
|
|
|
1001
1001
|
recorded_at: Thu, 11 May 2023 13:03:11 GMT
|
|
1002
1002
|
- request:
|
|
1003
1003
|
method: delete
|
|
1004
|
-
uri: https://
|
|
1004
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/qemu/101/snapshot/snapshot1?force=0
|
|
1005
1005
|
body:
|
|
1006
1006
|
encoding: US-ASCII
|
|
1007
1007
|
string: ''
|
|
@@ -1040,7 +1040,7 @@ http_interactions:
|
|
|
1040
1040
|
recorded_at: Thu, 11 May 2023 13:03:11 GMT
|
|
1041
1041
|
- request:
|
|
1042
1042
|
method: get
|
|
1043
|
-
uri: https://
|
|
1043
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE5:00229093:645CE78F:qmdelsnapshot:101:root@pam:/status
|
|
1044
1044
|
body:
|
|
1045
1045
|
encoding: US-ASCII
|
|
1046
1046
|
string: ''
|
|
@@ -1077,7 +1077,7 @@ http_interactions:
|
|
|
1077
1077
|
recorded_at: Thu, 11 May 2023 13:03:11 GMT
|
|
1078
1078
|
- request:
|
|
1079
1079
|
method: get
|
|
1080
|
-
uri: https://
|
|
1080
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE5:00229093:645CE78F:qmdelsnapshot:101:root@pam:/log
|
|
1081
1081
|
body:
|
|
1082
1082
|
encoding: US-ASCII
|
|
1083
1083
|
string: ''
|
|
@@ -1114,7 +1114,7 @@ http_interactions:
|
|
|
1114
1114
|
recorded_at: Thu, 11 May 2023 13:03:11 GMT
|
|
1115
1115
|
- request:
|
|
1116
1116
|
method: get
|
|
1117
|
-
uri: https://
|
|
1117
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE5:00229093:645CE78F:qmdelsnapshot:101:root@pam:/status
|
|
1118
1118
|
body:
|
|
1119
1119
|
encoding: US-ASCII
|
|
1120
1120
|
string: ''
|
|
@@ -1151,7 +1151,7 @@ http_interactions:
|
|
|
1151
1151
|
recorded_at: Thu, 11 May 2023 13:03:11 GMT
|
|
1152
1152
|
- request:
|
|
1153
1153
|
method: get
|
|
1154
|
-
uri: https://
|
|
1154
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE5:00229093:645CE78F:qmdelsnapshot:101:root@pam:/log
|
|
1155
1155
|
body:
|
|
1156
1156
|
encoding: US-ASCII
|
|
1157
1157
|
string: ''
|
|
@@ -1188,7 +1188,7 @@ http_interactions:
|
|
|
1188
1188
|
recorded_at: Thu, 11 May 2023 13:03:11 GMT
|
|
1189
1189
|
- request:
|
|
1190
1190
|
method: delete
|
|
1191
|
-
uri: https://
|
|
1191
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/qemu/101
|
|
1192
1192
|
body:
|
|
1193
1193
|
encoding: US-ASCII
|
|
1194
1194
|
string: ''
|
|
@@ -1227,7 +1227,7 @@ http_interactions:
|
|
|
1227
1227
|
recorded_at: Thu, 11 May 2023 13:03:12 GMT
|
|
1228
1228
|
- request:
|
|
1229
1229
|
method: get
|
|
1230
|
-
uri: https://
|
|
1230
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE6:002290AF:645CE790:qmdestroy:101:root@pam:/status
|
|
1231
1231
|
body:
|
|
1232
1232
|
encoding: US-ASCII
|
|
1233
1233
|
string: ''
|
|
@@ -1264,7 +1264,7 @@ http_interactions:
|
|
|
1264
1264
|
recorded_at: Thu, 11 May 2023 13:03:12 GMT
|
|
1265
1265
|
- request:
|
|
1266
1266
|
method: get
|
|
1267
|
-
uri: https://
|
|
1267
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE6:002290AF:645CE790:qmdestroy:101:root@pam:/log
|
|
1268
1268
|
body:
|
|
1269
1269
|
encoding: US-ASCII
|
|
1270
1270
|
string: ''
|
|
@@ -1301,7 +1301,7 @@ http_interactions:
|
|
|
1301
1301
|
recorded_at: Thu, 11 May 2023 13:03:12 GMT
|
|
1302
1302
|
- request:
|
|
1303
1303
|
method: get
|
|
1304
|
-
uri: https://
|
|
1304
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE6:002290AF:645CE790:qmdestroy:101:root@pam:/status
|
|
1305
1305
|
body:
|
|
1306
1306
|
encoding: US-ASCII
|
|
1307
1307
|
string: ''
|
|
@@ -1338,7 +1338,7 @@ http_interactions:
|
|
|
1338
1338
|
recorded_at: Thu, 11 May 2023 13:03:12 GMT
|
|
1339
1339
|
- request:
|
|
1340
1340
|
method: get
|
|
1341
|
-
uri: https://
|
|
1341
|
+
uri: https://192.168.56.101:8006/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE6:002290AF:645CE790:qmdestroy:101:root@pam:/log
|
|
1342
1342
|
body:
|
|
1343
1343
|
encoding: US-ASCII
|
|
1344
1344
|
string: ''
|
|
@@ -30,7 +30,7 @@ describe Fog::Proxmox::DiskHelper do
|
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
let(:scsi) do
|
|
33
|
-
{ scsi0: 'local-lvm:vm-100-disk-1,size=8,cache=none' }
|
|
33
|
+
{ scsi0: 'local-lvm:vm-100-disk-1,size=8,cache=none', scsi1: 'zdata:vm-221-disk-0' }
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
let(:virtio1) do
|
|
@@ -118,6 +118,13 @@ describe Fog::Proxmox::DiskHelper do
|
|
|
118
118
|
assert_equal('8', size)
|
|
119
119
|
end
|
|
120
120
|
|
|
121
|
+
it 'returns scsi get zdata storage and volid with no size' do
|
|
122
|
+
storage, volid, size = Fog::Proxmox::DiskHelper.extract_storage_volid_size(scsi[:scsi1])
|
|
123
|
+
assert_equal('zdata', storage)
|
|
124
|
+
assert_equal('zdata:vm-221-disk-0', volid)
|
|
125
|
+
assert_nil size
|
|
126
|
+
end
|
|
127
|
+
|
|
121
128
|
it 'returns virtio get local storage volid and size' do
|
|
122
129
|
storage, volid, size = Fog::Proxmox::DiskHelper.extract_storage_volid_size(virtio[:virtio1])
|
|
123
130
|
assert_equal('local', storage)
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Copyright 2026 ATIX AG
|
|
4
|
+
|
|
5
|
+
# This file is part of Fog::Proxmox.
|
|
6
|
+
|
|
7
|
+
# Fog::Proxmox is free software: you can redistribute it and/or modify
|
|
8
|
+
# it under the terms of the GNU General Public License as published by
|
|
9
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
10
|
+
# (at your option) any later version.
|
|
11
|
+
|
|
12
|
+
# Fog::Proxmox is distributed in the hope that it will be useful,
|
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
15
|
+
# GNU General Public License for more details.
|
|
16
|
+
|
|
17
|
+
# You should have received a copy of the GNU General Public License
|
|
18
|
+
# along with Fog::Proxmox. If not, see <http://www.gnu.org/licenses/>.
|
|
19
|
+
|
|
20
|
+
require 'spec_helper'
|
|
21
|
+
require 'fog/proxmox/helpers/efidisk_helper'
|
|
22
|
+
|
|
23
|
+
describe Fog::Proxmox::EfidiskHelper do
|
|
24
|
+
let(:efidisk0_full) do
|
|
25
|
+
{ id: 0, volid: 'local:110/vm-110-disk-0.qcow2,efitype=4m,size=528K,pre-enrolled-keys=1' }
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
let(:efidisk0_full_flatten) do
|
|
29
|
+
{ id: 0, volid: 'local:110/vm-110-disk-0.qcow2', efitype: '4m', pre_enrolled_keys: '1', size: '528K' }
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
let(:efidisk0_min) do
|
|
33
|
+
{ id: 0, volid: 'local:110/vm-110-disk-0.qcow2,size=528K' }
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
describe '#flatten' do
|
|
37
|
+
it 'returns full efidisk hash' do
|
|
38
|
+
efidisk = Fog::Proxmox::EfidiskHelper.flatten(efidisk0_full_flatten)
|
|
39
|
+
assert_equal(efidisk, { "efidisk0": efidisk0_full[:volid] })
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
describe '#extract' do
|
|
44
|
+
it 'returns full efidisk hash' do
|
|
45
|
+
efidisk = Fog::Proxmox::EfidiskHelper.extract(efidisk0_full[:volid])
|
|
46
|
+
assert_equal({
|
|
47
|
+
id: 0,
|
|
48
|
+
volid: 'local:110/vm-110-disk-0.qcow2',
|
|
49
|
+
storage: 'local',
|
|
50
|
+
efitype: '4m',
|
|
51
|
+
pre_enrolled_keys: '1',
|
|
52
|
+
size: '528K'
|
|
53
|
+
}, efidisk)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
it 'returns full efidisk min' do
|
|
57
|
+
efidisk = Fog::Proxmox::EfidiskHelper.extract(efidisk0_min[:volid])
|
|
58
|
+
assert_equal({
|
|
59
|
+
id: 0,
|
|
60
|
+
volid: 'local:110/vm-110-disk-0.qcow2',
|
|
61
|
+
storage: 'local',
|
|
62
|
+
efitype: nil,
|
|
63
|
+
pre_enrolled_keys: nil,
|
|
64
|
+
size: '528K'
|
|
65
|
+
}, efidisk)
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fog-proxmox
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.15.
|
|
4
|
+
version: 0.15.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tristan Robert
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-01-22 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -38,62 +38,6 @@ dependencies:
|
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: '0.6'
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: debase
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - "~>"
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: 0.2.2
|
|
48
|
-
type: :development
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - "~>"
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: 0.2.2
|
|
55
|
-
- !ruby/object:Gem::Dependency
|
|
56
|
-
name: debride
|
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
|
58
|
-
requirements:
|
|
59
|
-
- - "~>"
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: '1.8'
|
|
62
|
-
type: :development
|
|
63
|
-
prerelease: false
|
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
-
requirements:
|
|
66
|
-
- - "~>"
|
|
67
|
-
- !ruby/object:Gem::Version
|
|
68
|
-
version: '1.8'
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: fasterer
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
-
requirements:
|
|
73
|
-
- - "~>"
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
version: '0.3'
|
|
76
|
-
type: :development
|
|
77
|
-
prerelease: false
|
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
-
requirements:
|
|
80
|
-
- - "~>"
|
|
81
|
-
- !ruby/object:Gem::Version
|
|
82
|
-
version: '0.3'
|
|
83
|
-
- !ruby/object:Gem::Dependency
|
|
84
|
-
name: fastri
|
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
|
86
|
-
requirements:
|
|
87
|
-
- - "~>"
|
|
88
|
-
- !ruby/object:Gem::Version
|
|
89
|
-
version: '0.3'
|
|
90
|
-
type: :development
|
|
91
|
-
prerelease: false
|
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
-
requirements:
|
|
94
|
-
- - "~>"
|
|
95
|
-
- !ruby/object:Gem::Version
|
|
96
|
-
version: '0.3'
|
|
97
41
|
- !ruby/object:Gem::Dependency
|
|
98
42
|
name: minitest
|
|
99
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -136,34 +80,6 @@ dependencies:
|
|
|
136
80
|
- - "~>"
|
|
137
81
|
- !ruby/object:Gem::Version
|
|
138
82
|
version: '12.3'
|
|
139
|
-
- !ruby/object:Gem::Dependency
|
|
140
|
-
name: rcodetools
|
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
|
142
|
-
requirements:
|
|
143
|
-
- - "~>"
|
|
144
|
-
- !ruby/object:Gem::Version
|
|
145
|
-
version: '0.3'
|
|
146
|
-
type: :development
|
|
147
|
-
prerelease: false
|
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
149
|
-
requirements:
|
|
150
|
-
- - "~>"
|
|
151
|
-
- !ruby/object:Gem::Version
|
|
152
|
-
version: '0.3'
|
|
153
|
-
- !ruby/object:Gem::Dependency
|
|
154
|
-
name: reek
|
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
|
156
|
-
requirements:
|
|
157
|
-
- - "~>"
|
|
158
|
-
- !ruby/object:Gem::Version
|
|
159
|
-
version: '6.1'
|
|
160
|
-
type: :development
|
|
161
|
-
prerelease: false
|
|
162
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
163
|
-
requirements:
|
|
164
|
-
- - "~>"
|
|
165
|
-
- !ruby/object:Gem::Version
|
|
166
|
-
version: '6.1'
|
|
167
83
|
- !ruby/object:Gem::Dependency
|
|
168
84
|
name: rspec
|
|
169
85
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -262,20 +178,6 @@ dependencies:
|
|
|
262
178
|
- - "<"
|
|
263
179
|
- !ruby/object:Gem::Version
|
|
264
180
|
version: 2.29.0
|
|
265
|
-
- !ruby/object:Gem::Dependency
|
|
266
|
-
name: ruby-debug-ide
|
|
267
|
-
requirement: !ruby/object:Gem::Requirement
|
|
268
|
-
requirements:
|
|
269
|
-
- - "~>"
|
|
270
|
-
- !ruby/object:Gem::Version
|
|
271
|
-
version: '0.6'
|
|
272
|
-
type: :development
|
|
273
|
-
prerelease: false
|
|
274
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
275
|
-
requirements:
|
|
276
|
-
- - "~>"
|
|
277
|
-
- !ruby/object:Gem::Version
|
|
278
|
-
version: '0.6'
|
|
279
181
|
- !ruby/object:Gem::Dependency
|
|
280
182
|
name: simplecov
|
|
281
183
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -370,6 +272,7 @@ files:
|
|
|
370
272
|
- lib/fog/proxmox/compute.rb
|
|
371
273
|
- lib/fog/proxmox/compute/models/disk.rb
|
|
372
274
|
- lib/fog/proxmox/compute/models/disks.rb
|
|
275
|
+
- lib/fog/proxmox/compute/models/efidisk.rb
|
|
373
276
|
- lib/fog/proxmox/compute/models/interface.rb
|
|
374
277
|
- lib/fog/proxmox/compute/models/interfaces.rb
|
|
375
278
|
- lib/fog/proxmox/compute/models/node.rb
|
|
@@ -428,6 +331,7 @@ files:
|
|
|
428
331
|
- lib/fog/proxmox/helpers/controller_helper.rb
|
|
429
332
|
- lib/fog/proxmox/helpers/cpu_helper.rb
|
|
430
333
|
- lib/fog/proxmox/helpers/disk_helper.rb
|
|
334
|
+
- lib/fog/proxmox/helpers/efidisk_helper.rb
|
|
431
335
|
- lib/fog/proxmox/helpers/ip_helper.rb
|
|
432
336
|
- lib/fog/proxmox/helpers/nic_helper.rb
|
|
433
337
|
- lib/fog/proxmox/identity.rb
|
|
@@ -529,6 +433,7 @@ files:
|
|
|
529
433
|
- spec/helpers/controller_helper_spec.rb
|
|
530
434
|
- spec/helpers/cpu_helper_spec.rb
|
|
531
435
|
- spec/helpers/disk_helper_spec.rb
|
|
436
|
+
- spec/helpers/efidisk_helper_spec.rb
|
|
532
437
|
- spec/helpers/ip_helper_spec.rb
|
|
533
438
|
- spec/helpers/nic_helper_spec.rb
|
|
534
439
|
- spec/identity_spec.rb
|