fog-proxmox-configlmm 0.15.1 → 0.16.0
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 +32 -0
- data/README.md +1 -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 +17 -6
- data/lib/fog/proxmox/compute/models/server_config.rb +11 -0
- data/lib/fog/proxmox/compute/requests/delete_server.rb +7 -3
- data/lib/fog/proxmox/compute.rb +1 -0
- data/lib/fog/proxmox/helpers/disk_helper.rb +1 -1
- data/lib/fog/proxmox/helpers/efidisk_helper.rb +76 -0
- 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/variables.rb +1 -1
- data/lib/fog/proxmox/version.rb +1 -1
- data/spec/fixtures/proxmox/compute/snapshots.yml +35 -35
- data/spec/helpers/cpu_helper_spec.rb +1 -1
- data/spec/helpers/disk_helper_spec.rb +8 -1
- data/spec/helpers/efidisk_helper_spec.rb +68 -0
- metadata +11 -124
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 69ad62236123ea30e953c71b1024700ccaf06256aca6be17e9105d1c9bd20701
|
|
4
|
+
data.tar.gz: 0eb58322d6d257168cb58fedfce27ead53bb2b168016093494e4afcd8a590729
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6358510819d9f83c608a3beee8294edefb13875a9afe963e804b52ceee148bcfb7a7bc85dcaad34779b3f68ceed10d4b32572adc431e77e8ff6714ad537dd67d
|
|
7
|
+
data.tar.gz: d42674351bc1ab44ea6142d330a0ce9dc8c2c21447be64ab4cf33be87c2b57fb0547e7b84902c0f58b16c60737531debdf3175422cf65d2dddccb20a2815b471
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,37 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.16.0](https://github.com/fog/fog-proxmox/compare/v0.15.4...v0.16.0) (2026-02-18)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### ⚠ BREAKING CHANGES
|
|
7
|
+
|
|
8
|
+
* Add query as optional param to request method ([#127](https://github.com/fog/fog-proxmox/issues/127))
|
|
9
|
+
|
|
10
|
+
### Bug Fixes
|
|
11
|
+
|
|
12
|
+
* Add query as optional param to request method ([#127](https://github.com/fog/fog-proxmox/issues/127)) ([e1ea7be](https://github.com/fog/fog-proxmox/commit/e1ea7be08d7550676972fa12bc7299af454ee46e))
|
|
13
|
+
|
|
14
|
+
## [0.15.4](https://github.com/fog/fog-proxmox/compare/v0.15.3...v0.15.4) (2026-02-06)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* Update README ([1854a21](https://github.com/fog/fog-proxmox/commit/1854a215204cd1e42c984b3886206c73bfa3ddf8))
|
|
20
|
+
|
|
21
|
+
## [0.15.3](https://github.com/fog/fog-proxmox/compare/v0.15.2...v0.15.3) (2026-01-22)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### Bug Fixes
|
|
25
|
+
|
|
26
|
+
* 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)
|
|
27
|
+
|
|
28
|
+
## [0.15.2](https://github.com/fog/fog-proxmox/compare/v0.15.1...v0.15.2) (2025-08-06)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
### Miscellaneous Chores
|
|
32
|
+
|
|
33
|
+
* release 0.15.2 ([#116](https://github.com/fog/fog-proxmox/issues/116)) ([d460740](https://github.com/fog/fog-proxmox/commit/d46074059cc48e0951109850904b8bc6a030da81))
|
|
34
|
+
|
|
3
35
|
## [0.15.1](https://github.com/fog/fog-proxmox/compare/v0.15.0...v0.15.1) (2025-02-25)
|
|
4
36
|
|
|
5
37
|
|
data/README.md
CHANGED
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
|
|
@@ -26,7 +26,7 @@ module Fog
|
|
|
26
26
|
module Proxmox
|
|
27
27
|
class Compute
|
|
28
28
|
# Server model
|
|
29
|
-
# rubocop:disable ClassLength
|
|
29
|
+
# rubocop:disable Metrics/ClassLength
|
|
30
30
|
class Server < Fog::Compute::Server
|
|
31
31
|
identity :vmid
|
|
32
32
|
attribute :type
|
|
@@ -91,10 +91,12 @@ module Fog
|
|
|
91
91
|
end
|
|
92
92
|
|
|
93
93
|
# request with async task
|
|
94
|
-
def request(name, body_params = {}, path_params = {})
|
|
94
|
+
def request(name, body_params = {}, path_params = {}, query = {})
|
|
95
95
|
requires :node_id, :type
|
|
96
96
|
path = path_params.merge(node: node_id, type: type)
|
|
97
|
-
|
|
97
|
+
args = [name, path, body_params]
|
|
98
|
+
args << query if query&.any?
|
|
99
|
+
task_upid = service.send(*args)
|
|
98
100
|
tasks.wait_for(task_upid)
|
|
99
101
|
end
|
|
100
102
|
|
|
@@ -116,8 +118,17 @@ module Fog
|
|
|
116
118
|
reload
|
|
117
119
|
end
|
|
118
120
|
|
|
119
|
-
def destroy(options = {})
|
|
120
|
-
|
|
121
|
+
def destroy(options = {}, query: nil)
|
|
122
|
+
# stop vm before destroying if it's an HA resource
|
|
123
|
+
if ha['managed'].to_i == 1 && status == 'running'
|
|
124
|
+
action('stop')
|
|
125
|
+
# wait for vm to stop
|
|
126
|
+
Fog.wait_for(10, 5) do
|
|
127
|
+
reload
|
|
128
|
+
status == 'stopped'
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
request(:delete_server, options, { vmid: vmid }, query)
|
|
121
132
|
end
|
|
122
133
|
|
|
123
134
|
def action(action, options = {})
|
|
@@ -265,7 +276,7 @@ module Fog
|
|
|
265
276
|
Fog::Proxmox::Compute::Node.new(service: service, node: node_id)
|
|
266
277
|
end
|
|
267
278
|
end
|
|
268
|
-
# rubocop:enable ClassLength
|
|
279
|
+
# rubocop:enable Metrics/ClassLength
|
|
269
280
|
end
|
|
270
281
|
end
|
|
271
282
|
end
|
|
@@ -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] || 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,16 +23,20 @@ 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 = {})
|
|
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
|
|
data/lib/fog/proxmox/compute.rb
CHANGED
|
@@ -136,7 +136,7 @@ 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
|
|
|
@@ -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
|
|
@@ -30,7 +30,7 @@ module Fog
|
|
|
30
30
|
def self.to_hash(instance, prefix)
|
|
31
31
|
hash = {}
|
|
32
32
|
instance.instance_variables.select { |variable| variable.to_s.start_with? '@' + prefix }.each do |param|
|
|
33
|
-
name = param.to_s[1
|
|
33
|
+
name = param.to_s[1..]
|
|
34
34
|
hash.store(name.to_sym, instance.instance_variable_get(param))
|
|
35
35
|
end
|
|
36
36
|
hash
|
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: ''
|
|
@@ -66,7 +66,7 @@ describe Fog::Proxmox::CpuHelper do
|
|
|
66
66
|
end
|
|
67
67
|
end
|
|
68
68
|
|
|
69
|
-
describe '#flatten
|
|
69
|
+
describe '#flatten' do
|
|
70
70
|
it 'returns cputype=kvm64,flags=+pcid;+ibpb;-hv-tlbflush' do
|
|
71
71
|
result = Fog::Proxmox::CpuHelper.flatten('cpu_type' => 'kvm64', 'spectre' => '0', 'pcid' => '+1',
|
|
72
72
|
'ssbd' => '0', 'ibpb' => '+1', 'virt_ssbd' => '0', 'amd_ssbd' => '0', 'amd_no_ssb' => '0', 'md_clear' => '0', 'pdpe1gb' => '0', 'hv_tlbflush' => '-1', 'aes' => '0', 'hv_evmcs' => '0')
|
|
@@ -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,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fog-proxmox-configlmm
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.16.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- ConfigLMM
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: bundler
|
|
@@ -38,62 +37,6 @@ dependencies:
|
|
|
38
37
|
- - "~>"
|
|
39
38
|
- !ruby/object:Gem::Version
|
|
40
39
|
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
40
|
- !ruby/object:Gem::Dependency
|
|
98
41
|
name: minitest
|
|
99
42
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -136,34 +79,6 @@ dependencies:
|
|
|
136
79
|
- - "~>"
|
|
137
80
|
- !ruby/object:Gem::Version
|
|
138
81
|
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
82
|
- !ruby/object:Gem::Dependency
|
|
168
83
|
name: rspec
|
|
169
84
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -192,20 +107,6 @@ dependencies:
|
|
|
192
107
|
- - "~>"
|
|
193
108
|
- !ruby/object:Gem::Version
|
|
194
109
|
version: '1.39'
|
|
195
|
-
- !ruby/object:Gem::Dependency
|
|
196
|
-
name: rubocop-factory_bot
|
|
197
|
-
requirement: !ruby/object:Gem::Requirement
|
|
198
|
-
requirements:
|
|
199
|
-
- - "<"
|
|
200
|
-
- !ruby/object:Gem::Version
|
|
201
|
-
version: 2.26.0
|
|
202
|
-
type: :development
|
|
203
|
-
prerelease: false
|
|
204
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
205
|
-
requirements:
|
|
206
|
-
- - "<"
|
|
207
|
-
- !ruby/object:Gem::Version
|
|
208
|
-
version: 2.26.0
|
|
209
110
|
- !ruby/object:Gem::Dependency
|
|
210
111
|
name: rubocop-minitest
|
|
211
112
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -240,42 +141,28 @@ dependencies:
|
|
|
240
141
|
requirements:
|
|
241
142
|
- - "~>"
|
|
242
143
|
- !ruby/object:Gem::Version
|
|
243
|
-
version: '
|
|
144
|
+
version: '3.5'
|
|
244
145
|
type: :development
|
|
245
146
|
prerelease: false
|
|
246
147
|
version_requirements: !ruby/object:Gem::Requirement
|
|
247
148
|
requirements:
|
|
248
149
|
- - "~>"
|
|
249
150
|
- !ruby/object:Gem::Version
|
|
250
|
-
version: '
|
|
151
|
+
version: '3.5'
|
|
251
152
|
- !ruby/object:Gem::Dependency
|
|
252
153
|
name: rubocop-rspec_rails
|
|
253
|
-
requirement: !ruby/object:Gem::Requirement
|
|
254
|
-
requirements:
|
|
255
|
-
- - "<"
|
|
256
|
-
- !ruby/object:Gem::Version
|
|
257
|
-
version: 2.29.0
|
|
258
|
-
type: :development
|
|
259
|
-
prerelease: false
|
|
260
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
261
|
-
requirements:
|
|
262
|
-
- - "<"
|
|
263
|
-
- !ruby/object:Gem::Version
|
|
264
|
-
version: 2.29.0
|
|
265
|
-
- !ruby/object:Gem::Dependency
|
|
266
|
-
name: ruby-debug-ide
|
|
267
154
|
requirement: !ruby/object:Gem::Requirement
|
|
268
155
|
requirements:
|
|
269
156
|
- - "~>"
|
|
270
157
|
- !ruby/object:Gem::Version
|
|
271
|
-
version: '
|
|
158
|
+
version: '2.30'
|
|
272
159
|
type: :development
|
|
273
160
|
prerelease: false
|
|
274
161
|
version_requirements: !ruby/object:Gem::Requirement
|
|
275
162
|
requirements:
|
|
276
163
|
- - "~>"
|
|
277
164
|
- !ruby/object:Gem::Version
|
|
278
|
-
version: '
|
|
165
|
+
version: '2.30'
|
|
279
166
|
- !ruby/object:Gem::Dependency
|
|
280
167
|
name: simplecov
|
|
281
168
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -347,7 +234,6 @@ dependencies:
|
|
|
347
234
|
- !ruby/object:Gem::Version
|
|
348
235
|
version: '1.2'
|
|
349
236
|
description: This library can be used as a module for `fog`.
|
|
350
|
-
email:
|
|
351
237
|
executables: []
|
|
352
238
|
extensions: []
|
|
353
239
|
extra_rdoc_files: []
|
|
@@ -369,6 +255,7 @@ files:
|
|
|
369
255
|
- lib/fog/proxmox/compute.rb
|
|
370
256
|
- lib/fog/proxmox/compute/models/disk.rb
|
|
371
257
|
- lib/fog/proxmox/compute/models/disks.rb
|
|
258
|
+
- lib/fog/proxmox/compute/models/efidisk.rb
|
|
372
259
|
- lib/fog/proxmox/compute/models/interface.rb
|
|
373
260
|
- lib/fog/proxmox/compute/models/interfaces.rb
|
|
374
261
|
- lib/fog/proxmox/compute/models/node.rb
|
|
@@ -427,6 +314,7 @@ files:
|
|
|
427
314
|
- lib/fog/proxmox/helpers/controller_helper.rb
|
|
428
315
|
- lib/fog/proxmox/helpers/cpu_helper.rb
|
|
429
316
|
- lib/fog/proxmox/helpers/disk_helper.rb
|
|
317
|
+
- lib/fog/proxmox/helpers/efidisk_helper.rb
|
|
430
318
|
- lib/fog/proxmox/helpers/ip_helper.rb
|
|
431
319
|
- lib/fog/proxmox/helpers/nic_helper.rb
|
|
432
320
|
- lib/fog/proxmox/identity.rb
|
|
@@ -533,6 +421,7 @@ files:
|
|
|
533
421
|
- spec/helpers/controller_helper_spec.rb
|
|
534
422
|
- spec/helpers/cpu_helper_spec.rb
|
|
535
423
|
- spec/helpers/disk_helper_spec.rb
|
|
424
|
+
- spec/helpers/efidisk_helper_spec.rb
|
|
536
425
|
- spec/helpers/ip_helper_spec.rb
|
|
537
426
|
- spec/helpers/nic_helper_spec.rb
|
|
538
427
|
- spec/identity_spec.rb
|
|
@@ -544,7 +433,6 @@ licenses:
|
|
|
544
433
|
- GPL-3.0
|
|
545
434
|
metadata:
|
|
546
435
|
rubygems_mfa_required: 'true'
|
|
547
|
-
post_install_message:
|
|
548
436
|
rdoc_options: []
|
|
549
437
|
require_paths:
|
|
550
438
|
- lib
|
|
@@ -552,15 +440,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
552
440
|
requirements:
|
|
553
441
|
- - ">="
|
|
554
442
|
- !ruby/object:Gem::Version
|
|
555
|
-
version: '2.
|
|
443
|
+
version: '2.7'
|
|
556
444
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
557
445
|
requirements:
|
|
558
446
|
- - ">="
|
|
559
447
|
- !ruby/object:Gem::Version
|
|
560
448
|
version: '0'
|
|
561
449
|
requirements: []
|
|
562
|
-
rubygems_version:
|
|
563
|
-
signing_key:
|
|
450
|
+
rubygems_version: 4.0.15
|
|
564
451
|
specification_version: 4
|
|
565
452
|
summary: Fork of fog-proxmox with few improvements
|
|
566
453
|
test_files: []
|