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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 899d26fa39c783763793936dd6f50ead16dd1492d5739850f902d9e6090728f3
4
- data.tar.gz: '094ced86a1423a121134baba0da50d28421e03e70b7d21b5d4f98290a18f5e5a'
3
+ metadata.gz: 69ad62236123ea30e953c71b1024700ccaf06256aca6be17e9105d1c9bd20701
4
+ data.tar.gz: 0eb58322d6d257168cb58fedfce27ead53bb2b168016093494e4afcd8a590729
5
5
  SHA512:
6
- metadata.gz: 6646f6c478eec45b27951c2dee8d6635dec10598f522df6b684ef886de19b24dfe1912a41bf77a426a195cfd212dddccfcf14b54fea7210cca5d3240fb5cd842
7
- data.tar.gz: 0ffa2036d50710ef68b4866b6f9be694a832549cd1c5d26ad854113b8a675136fdd41eb6729bf209ab8110da8772275ded6f2696487bd50cc24cd94258690954
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
@@ -23,6 +23,7 @@ It is inspired by the great [fog-openstack](https://github.com/fog/fog-openstack
23
23
  |>=0.9|>=6.0|>=2.1|>=2.3|
24
24
  |>=0.10|>=6.0|>=2.1|>=2.5|
25
25
  |>=0.14|>=6.2|>=2.1|>=2.5|
26
+ |>=0.15|>=7.0|>=2.1|>=2.7|
26
27
 
27
28
  ## Installation
28
29
 
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
- task_upid = service.send(name, path, body_params)
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
- request(:delete_server, options, vmid: vmid)
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
- request(
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
 
@@ -36,6 +36,7 @@ module Fog
36
36
  collection :interfaces
37
37
  model :disk
38
38
  collection :disks
39
+ model :efidisk
39
40
  model :server_config
40
41
  model :volume
41
42
  collection :volumes
@@ -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.match?(/\d+(G)/)
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((attributes.reject { |attribute| %i[users members].include? attribute }).merge(options))
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 = (attributes.reject { |attribute| %i[userid tokenid info].include? attribute }).merge(options)
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((attributes.reject { |attribute| [:tokens].include? attribute }).merge(options))
48
+ service.create_user(attributes.reject { |attribute| [:tokens].include? attribute }.merge(options))
49
49
  reload
50
50
  end
51
51
 
@@ -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 =~ (/(true|t|yes|y|1)$/i)
26
- return false if text == false || text.empty? || text =~ (/(false|f|no|n|0)$/i)
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..-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
@@ -19,6 +19,6 @@
19
19
 
20
20
  module Fog
21
21
  module Proxmox
22
- VERSION = '0.15.1'
22
+ VERSION = '0.16.0'
23
23
  end
24
24
  end
@@ -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://proxmox-noris.corp.atix.de/api2/json/nodes
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://proxmox-noris.corp.atix.de/api2/json/cluster/nextid
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/tasks
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://proxmox-noris.corp.atix.de/api2/json/cluster/nextid?vmid=101
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/qemu
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE0:0022900B:645CE78E:qmcreate:101:root@pam:/status
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE0:0022900B:645CE78E:qmcreate:101:root@pam:/log
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE0:0022900B:645CE78E:qmcreate:101:root@pam:/status
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE0:0022900B:645CE78E:qmcreate:101:root@pam:/log
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/qemu/101/status/current
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/qemu/101/config
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/tasks
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/qemu/101/status/current
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/qemu/101/config
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/tasks
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/tasks
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/qemu/101/snapshot
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE4:00229055:645CE78F:qmsnapshot:101:root@pam:/status
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE4:00229055:645CE78F:qmsnapshot:101:root@pam:/log
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE4:00229055:645CE78F:qmsnapshot:101:root@pam:/status
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE4:00229055:645CE78F:qmsnapshot:101:root@pam:/log
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/qemu/101/snapshot
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/qemu/101/snapshot/snapshot1/config
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/qemu/101/snapshot
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/tasks
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/qemu/101/snapshot/snapshot1?force=0
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE5:00229093:645CE78F:qmdelsnapshot:101:root@pam:/status
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE5:00229093:645CE78F:qmdelsnapshot:101:root@pam:/log
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE5:00229093:645CE78F:qmdelsnapshot:101:root@pam:/status
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE5:00229093:645CE78F:qmdelsnapshot:101:root@pam:/log
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/qemu/101
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE6:002290AF:645CE790:qmdestroy:101:root@pam:/status
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE6:002290AF:645CE790:qmdestroy:101:root@pam:/log
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE6:002290AF:645CE790:qmdestroy:101:root@pam:/status
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://proxmox-noris.corp.atix.de/api2/json/nodes/proxmox-noris/tasks/UPID:proxmox-noris:00011DE6:002290AF:645CE790:qmdestroy:101:root@pam:/log
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 ' do
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.15.1
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: 2025-04-26 00:00:00.000000000 Z
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: '2.15'
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: '2.15'
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: '0.6'
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: '0.6'
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.5'
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: 3.5.11
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: []