foreman_fog_proxmox 0.14.0 → 0.14.1
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/README.md +42 -29
- data/app/controllers/concerns/foreman_fog_proxmox/compute_resources_vms_controller.rb +17 -7
- data/app/controllers/concerns/foreman_fog_proxmox/controller/parameters/compute_resource.rb +1 -1
- data/app/controllers/concerns/foreman_fog_proxmox/hosts_controller.rb +8 -3
- data/app/controllers/foreman_fog_proxmox/compute_resources_controller.rb +6 -3
- data/app/helpers/proxmox_compute_controllers_helper.rb +2 -1
- data/app/helpers/proxmox_compute_resources_helper.rb +3 -3
- data/app/helpers/proxmox_compute_resources_vms_helper.rb +16 -7
- data/app/helpers/proxmox_form_helper.rb +9 -5
- data/app/helpers/proxmox_vm_config_helper.rb +16 -25
- data/app/helpers/proxmox_vm_interfaces_helper.rb +19 -6
- data/app/helpers/proxmox_vm_os_template_helper.rb +2 -5
- data/app/helpers/proxmox_vm_uuid_helper.rb +1 -1
- data/app/helpers/proxmox_vm_volumes_helper.rb +22 -25
- data/app/models/concerns/fog_extensions/proxmox/node.rb +2 -2
- data/app/models/concerns/fog_extensions/proxmox/server.rb +9 -5
- data/app/models/concerns/host_ext/proxmox/associator.rb +3 -2
- data/app/models/concerns/host_ext/proxmox/for_vm.rb +1 -1
- data/app/models/concerns/host_ext/proxmox/interfaces.rb +7 -3
- data/app/models/concerns/orchestration/proxmox/compute.rb +11 -4
- data/app/models/foreman_fog_proxmox/options_select.rb +1 -3
- data/app/models/foreman_fog_proxmox/proxmox.rb +12 -10
- data/app/models/foreman_fog_proxmox/proxmox_compute_attributes.rb +15 -3
- data/app/models/foreman_fog_proxmox/proxmox_connection.rb +6 -2
- data/app/models/foreman_fog_proxmox/proxmox_console.rb +3 -1
- data/app/models/foreman_fog_proxmox/proxmox_images.rb +2 -2
- data/app/models/foreman_fog_proxmox/proxmox_interfaces.rb +28 -6
- data/app/models/foreman_fog_proxmox/proxmox_operating_systems.rb +6 -1
- data/app/models/foreman_fog_proxmox/proxmox_pools.rb +4 -4
- data/app/models/foreman_fog_proxmox/proxmox_version.rb +7 -3
- data/app/models/foreman_fog_proxmox/proxmox_vm_commands.rb +9 -7
- data/app/models/foreman_fog_proxmox/proxmox_vm_new.rb +37 -24
- data/app/models/foreman_fog_proxmox/proxmox_vm_queries.rb +4 -5
- data/app/models/foreman_fog_proxmox/proxmox_volumes.rb +23 -12
- data/app/models/foreman_fog_proxmox/vms.rb +2 -2
- data/app/views/compute_resources_vms/form/proxmox/container/_config.html.erb +2 -2
- data/app/views/compute_resources_vms/form/proxmox/container/_volume_mp.html.erb +1 -1
- data/app/views/compute_resources_vms/form/proxmox/container/_volume_rootfs.html.erb +1 -1
- data/app/views/compute_resources_vms/form/proxmox/server/_config.html.erb +3 -3
- data/app/views/compute_resources_vms/form/proxmox/server/_volume_hard_disk.html.erb +1 -1
- data/config/routes.rb +8 -4
- data/db/migrate/20210312105013_update_proxmox_uuid_host.rb +1 -2
- data/lib/foreman_fog_proxmox/engine.rb +4 -3
- data/lib/foreman_fog_proxmox/semver.rb +1 -4
- data/lib/foreman_fog_proxmox/version.rb +1 -1
- data/locale/en/foreman_fog_proxmox.po +140 -47
- data/locale/foreman_fog_proxmox.pot +300 -137
- data/locale/fr/foreman_fog_proxmox.po +145 -52
- data/test/factories/foreman_fog_proxmox/proxmox_container_mock_factory.rb +6 -7
- data/test/factories/foreman_fog_proxmox/proxmox_server_mock_factory.rb +6 -7
- data/test/functional/compute_resources_controller_test.rb +4 -2
- data/test/test_plugin_helper.rb +12 -7
- data/test/unit/foreman_fog_proxmox/helpers/proxmox_container_helper_test.rb +38 -47
- data/test/unit/foreman_fog_proxmox/helpers/proxmox_server_helper_test.rb +49 -34
- data/test/unit/foreman_fog_proxmox/helpers/proxmox_vm_helper_test.rb +29 -65
- data/test/unit/foreman_fog_proxmox/helpers/proxmox_vm_volumes_helper_test.rb +3 -3
- data/test/unit/foreman_fog_proxmox/proxmox_compute_attributes_test.rb +22 -13
- data/test/unit/foreman_fog_proxmox/proxmox_interfaces_test.rb +18 -9
- data/test/unit/foreman_fog_proxmox/proxmox_vm_commands_container_test.rb +45 -35
- data/test/unit/foreman_fog_proxmox/proxmox_vm_commands_server_create_test.rb +0 -4
- data/test/unit/foreman_fog_proxmox/proxmox_vm_commands_server_update_cdrom_test.rb +34 -22
- data/test/unit/foreman_fog_proxmox/proxmox_vm_commands_server_update_cloudinit_test.rb +20 -14
- data/test/unit/foreman_fog_proxmox/proxmox_vm_commands_server_update_hard_disk_test.rb +76 -54
- data/test/unit/foreman_fog_proxmox/proxmox_vm_commands_server_update_test.rb +26 -15
- data/test/unit/foreman_fog_proxmox/proxmox_vm_queries_test.rb +1 -1
- data/test/unit/foreman_fog_proxmox/semver_test.rb +2 -1
- metadata +35 -21
@@ -24,7 +24,7 @@ require 'factories/foreman_fog_proxmox/proxmox_server_mock_factory'
|
|
24
24
|
require 'active_support/core_ext/hash/indifferent_access'
|
25
25
|
|
26
26
|
module ForemanFogProxmox
|
27
|
-
class
|
27
|
+
class ProxmoxVmCommandsServerUpdateHardDiskTest < ActiveSupport::TestCase
|
28
28
|
include ComputeResourceTestHelpers
|
29
29
|
include ProxmoxNodeMockFactory
|
30
30
|
include ProxmoxServerMockFactory
|
@@ -40,10 +40,12 @@ module ForemanFogProxmox
|
|
40
40
|
config = mock('config')
|
41
41
|
disks = mock('disks')
|
42
42
|
disk = mock('disk')
|
43
|
-
disk.stubs(:size).returns(
|
43
|
+
disk.stubs(:size).returns('1')
|
44
|
+
disk.stubs(:hard_disk?).returns(true)
|
45
|
+
disk.stubs(:cdrom?).returns(false)
|
44
46
|
disk.stubs(:storage).returns('local-lvm')
|
45
47
|
disk.stubs(:id).returns('scsi0')
|
46
|
-
disk.stubs(:attributes).returns(id: 'scsi0', storage: 'local-lvm', size:
|
48
|
+
disk.stubs(:attributes).returns(id: 'scsi0', storage: 'local-lvm', size: '1')
|
47
49
|
disks.stubs(:get).returns
|
48
50
|
config.stubs(:disks).returns(disks)
|
49
51
|
config.stubs(:attributes).returns(:cores => '')
|
@@ -60,7 +62,7 @@ module ForemanFogProxmox
|
|
60
62
|
'node_id' => 'proxmox',
|
61
63
|
'config_attributes' => {
|
62
64
|
'cores' => '1',
|
63
|
-
'cpulimit' => '1'
|
65
|
+
'cpulimit' => '1',
|
64
66
|
},
|
65
67
|
'volumes_attributes' => {
|
66
68
|
'0' => {
|
@@ -70,14 +72,15 @@ module ForemanFogProxmox
|
|
70
72
|
'controller' => 'scsi',
|
71
73
|
'storage_type' => 'hard_disk',
|
72
74
|
'storage' => 'local-lvm',
|
73
|
-
'size' => '
|
74
|
-
'cache' => 'none'
|
75
|
-
}
|
76
|
-
}
|
75
|
+
'size' => '2',
|
76
|
+
'cache' => 'none',
|
77
|
+
},
|
78
|
+
},
|
77
79
|
}.with_indifferent_access
|
78
|
-
@cr.stubs(:parse_server_vm).returns('vmid' => '100', 'node_id' => 'proxmox', 'type' => 'qemu', 'cores' => '1',
|
80
|
+
@cr.stubs(:parse_server_vm).returns('vmid' => '100', 'node_id' => 'proxmox', 'type' => 'qemu', 'cores' => '1',
|
81
|
+
'cpulimit' => '1', 'onboot' => '0')
|
79
82
|
expected_config_attr = { :cores => '1', :cpulimit => '1' }
|
80
|
-
expected_volume_attr = { id: 'scsi0', storage: 'local:lvm', size:
|
83
|
+
expected_volume_attr = { id: 'scsi0', storage: 'local:lvm', size: '2' }
|
81
84
|
vm.expects(:attach, expected_volume_attr)
|
82
85
|
vm.expects(:update, expected_config_attr)
|
83
86
|
@cr.save_vm(uuid, new_attributes)
|
@@ -88,7 +91,9 @@ module ForemanFogProxmox
|
|
88
91
|
config = mock('config')
|
89
92
|
disks = mock('disks')
|
90
93
|
disk = mock('disk')
|
91
|
-
disk.stubs(:size).returns(
|
94
|
+
disk.stubs(:size).returns('1')
|
95
|
+
disk.stubs(:hard_disk?).returns(true)
|
96
|
+
disk.stubs(:cdrom?).returns(false)
|
92
97
|
disk.stubs(:storage).returns('local-lvm')
|
93
98
|
disk.stubs(:id).returns('virtio0')
|
94
99
|
disks.stubs(:get).returns(disk)
|
@@ -108,7 +113,7 @@ module ForemanFogProxmox
|
|
108
113
|
'node_id' => 'proxmox',
|
109
114
|
'config_attributes' => {
|
110
115
|
'cores' => '1',
|
111
|
-
'cpulimit' => '1'
|
116
|
+
'cpulimit' => '1',
|
112
117
|
},
|
113
118
|
'volumes_attributes' => {
|
114
119
|
'0' => {
|
@@ -119,12 +124,13 @@ module ForemanFogProxmox
|
|
119
124
|
'device' => '0',
|
120
125
|
'controller' => 'scsi',
|
121
126
|
'storage' => 'local-lvm',
|
122
|
-
'size' => '
|
123
|
-
'cache' => 'none'
|
124
|
-
}
|
125
|
-
}
|
127
|
+
'size' => '2',
|
128
|
+
'cache' => 'none',
|
129
|
+
},
|
130
|
+
},
|
126
131
|
}.with_indifferent_access
|
127
|
-
@cr.stubs(:parse_server_vm).returns('vmid' => '100', 'node_id' => 'proxmox', 'type' => 'qemu', 'cores' => '1',
|
132
|
+
@cr.stubs(:parse_server_vm).returns('vmid' => '100', 'node_id' => 'proxmox', 'type' => 'qemu', 'cores' => '1',
|
133
|
+
'cpulimit' => '1', 'config_attributes' => { 'onboot' => '0' })
|
128
134
|
expected_config_attr = { :cores => '1', :cpulimit => '1' }
|
129
135
|
expected_volume_attr = 'scsi0'
|
130
136
|
vm.expects(:detach, expected_volume_attr)
|
@@ -138,10 +144,13 @@ module ForemanFogProxmox
|
|
138
144
|
config = mock('config')
|
139
145
|
disks = mock('disks')
|
140
146
|
disk = mock('disk')
|
141
|
-
disk.stubs(:size).returns(
|
147
|
+
disk.stubs(:size).returns('1')
|
148
|
+
disk.stubs(:hard_disk?).returns(true)
|
149
|
+
disk.stubs(:cdrom?).returns(false)
|
142
150
|
disk.stubs(:storage).returns('scsi0')
|
151
|
+
disk.stubs(:volid).returns('local-lvm:vm-100-disk-0')
|
143
152
|
disk.stubs(:id).returns('local-lvm')
|
144
|
-
disk.stubs(:attributes).returns(id: 'scsi0', storage: 'local-lvm', size:
|
153
|
+
disk.stubs(:attributes).returns(id: 'scsi0', storage: 'local-lvm', size: 1)
|
145
154
|
disks.stubs(:get).returns(disk)
|
146
155
|
config.stubs(:disks).returns(disks)
|
147
156
|
config.stubs(:attributes).returns(:cores => '')
|
@@ -159,7 +168,7 @@ module ForemanFogProxmox
|
|
159
168
|
'node_id' => 'proxmox',
|
160
169
|
'config_attributes' => {
|
161
170
|
'cores' => '1',
|
162
|
-
'cpulimit' => '1'
|
171
|
+
'cpulimit' => '1',
|
163
172
|
},
|
164
173
|
'volumes_attributes' => {
|
165
174
|
'0' => {
|
@@ -170,12 +179,13 @@ module ForemanFogProxmox
|
|
170
179
|
'device' => '0',
|
171
180
|
'controller' => 'scsi',
|
172
181
|
'storage' => 'local-lvm',
|
173
|
-
'size' => '
|
174
|
-
'cache' => 'none'
|
175
|
-
}
|
176
|
-
}
|
182
|
+
'size' => '2',
|
183
|
+
'cache' => 'none',
|
184
|
+
},
|
185
|
+
},
|
177
186
|
}.with_indifferent_access
|
178
|
-
@cr.stubs(:parse_server_vm).returns('vmid' => '100', 'node_id' => 'proxmox', 'type' => 'qemu', 'cores' => '1',
|
187
|
+
@cr.stubs(:parse_server_vm).returns('vmid' => '100', 'node_id' => 'proxmox', 'type' => 'qemu', 'cores' => '1',
|
188
|
+
'cpulimit' => '1')
|
179
189
|
expected_config_attr = { :cores => '1', :cpulimit => '1' }
|
180
190
|
expected_volume_attr = ['scsi0', '+1G']
|
181
191
|
vm.expects(:extend, expected_volume_attr)
|
@@ -189,26 +199,30 @@ module ForemanFogProxmox
|
|
189
199
|
disks = mock('disks')
|
190
200
|
disk = mock('disk')
|
191
201
|
disk.stubs(:id).returns('scsi0')
|
192
|
-
disk.stubs(:size).returns(
|
202
|
+
disk.stubs(:size).returns('2')
|
203
|
+
disk.stubs(:hard_disk?).returns(true)
|
204
|
+
disk.stubs(:cdrom?).returns(false)
|
193
205
|
disk.stubs(:storage).returns('local-lvm')
|
194
|
-
disk.stubs(:
|
206
|
+
disk.stubs(:volid).returns('local-lvm:vm-100-disk-0')
|
207
|
+
disk.stubs(:attributes).returns(id: 'scsi0', storage: 'local-lvm', size: '2')
|
195
208
|
disks.stubs(:get).returns(disk)
|
196
209
|
config.stubs(:disks).returns(disks)
|
197
|
-
config.stubs(:attributes).returns(:cores => '')
|
210
|
+
config.stubs(:attributes).returns(:cores => '1')
|
198
211
|
vm = mock('vm')
|
199
212
|
vm.stubs(:identity).returns(uuid)
|
200
213
|
vm.stubs(:attributes).returns('scsi0' => '')
|
201
214
|
vm.stubs(:config).returns(config)
|
202
215
|
vm.stubs(:container?).returns(false)
|
216
|
+
vm.stubs(:templated?).returns(false)
|
203
217
|
vm.stubs(:type).returns('qemu')
|
204
|
-
vm.stubs(:node_id).returns('
|
218
|
+
vm.stubs(:node_id).returns('pve')
|
205
219
|
@cr.stubs(:find_vm_by_uuid).returns(vm)
|
206
220
|
new_attributes = {
|
207
221
|
'templated' => '0',
|
208
|
-
'node_id' => '
|
222
|
+
'node_id' => 'pve',
|
209
223
|
'config_attributes' => {
|
210
224
|
'cores' => '1',
|
211
|
-
'cpulimit' => '1'
|
225
|
+
'cpulimit' => '1',
|
212
226
|
},
|
213
227
|
'volumes_attributes' => {
|
214
228
|
'0' => {
|
@@ -219,12 +233,12 @@ module ForemanFogProxmox
|
|
219
233
|
'device' => '0',
|
220
234
|
'controller' => 'scsi',
|
221
235
|
'storage' => 'local-lvm',
|
222
|
-
'size' => '
|
223
|
-
'cache' => 'none'
|
224
|
-
}
|
225
|
-
}
|
236
|
+
'size' => '1',
|
237
|
+
'cache' => 'none',
|
238
|
+
},
|
239
|
+
},
|
226
240
|
}.with_indifferent_access
|
227
|
-
@cr.stubs(:parse_server_vm).returns('vmid' => '100', 'node_id' => '
|
241
|
+
@cr.stubs(:parse_server_vm).returns('vmid' => '100', 'node_id' => 'pve', 'type' => 'qemu', 'cores' => '1', 'cpulimit' => '1')
|
228
242
|
err = assert_raises Foreman::Exception do
|
229
243
|
@cr.save_vm(uuid, new_attributes)
|
230
244
|
end
|
@@ -237,9 +251,13 @@ module ForemanFogProxmox
|
|
237
251
|
disks = mock('disks')
|
238
252
|
disk = mock('disk')
|
239
253
|
disk.stubs(:id).returns('scsi0')
|
240
|
-
disk.stubs(:size).returns(
|
254
|
+
disk.stubs(:size).returns('1')
|
255
|
+
disk.stubs(:hard_disk?).returns(true)
|
256
|
+
disk.stubs(:cdrom?).returns(false)
|
257
|
+
disk.stubs(:hard_disk?).returns(true)
|
258
|
+
disk.stubs(:cdrom?).returns(false)
|
241
259
|
disk.stubs(:storage).returns('local-lvm')
|
242
|
-
disk.stubs(:attributes).returns(id: 'scsi0', storage: 'local-lvm', size:
|
260
|
+
disk.stubs(:attributes).returns(id: 'scsi0', storage: 'local-lvm', size: '1', volid: 'local-lvm:vm-100-disk-0')
|
243
261
|
disks.stubs(:get).returns(disk)
|
244
262
|
config.stubs(:disks).returns(disks)
|
245
263
|
config.stubs(:attributes).returns(:cores => '')
|
@@ -256,23 +274,24 @@ module ForemanFogProxmox
|
|
256
274
|
'node_id' => 'proxmox',
|
257
275
|
'config_attributes' => {
|
258
276
|
'cores' => '1',
|
259
|
-
'cpulimit' => '1'
|
277
|
+
'cpulimit' => '1',
|
260
278
|
},
|
261
279
|
'volumes_attributes' => {
|
262
280
|
'0' => {
|
263
281
|
'id' => 'scsi0',
|
264
282
|
'_delete' => '',
|
265
283
|
'storage_type' => 'hard_disk',
|
266
|
-
'volid' => 'local-
|
284
|
+
'volid' => 'local-lvm2:vm-100-disk-0',
|
267
285
|
'device' => '0',
|
268
286
|
'controller' => 'scsi',
|
269
287
|
'storage' => 'local-lvm2',
|
270
|
-
'size' => '
|
271
|
-
'cache' => 'none'
|
272
|
-
}
|
273
|
-
}
|
288
|
+
'size' => '1',
|
289
|
+
'cache' => 'none',
|
290
|
+
},
|
291
|
+
},
|
274
292
|
}.with_indifferent_access
|
275
|
-
@cr.stubs(:parse_server_vm).returns('vmid' => '100', 'node_id' => 'proxmox', 'type' => 'qemu', 'cores' => '1',
|
293
|
+
@cr.stubs(:parse_server_vm).returns('vmid' => '100', 'node_id' => 'proxmox', 'type' => 'qemu', 'cores' => '1',
|
294
|
+
'cpulimit' => '1')
|
276
295
|
expected_config_attr = { :cores => '1', :cpulimit => '1' }
|
277
296
|
expected_volume_attr = ['scsi0', 'local-lvm2']
|
278
297
|
vm.expects(:move, expected_volume_attr)
|
@@ -285,11 +304,13 @@ module ForemanFogProxmox
|
|
285
304
|
config = mock('config')
|
286
305
|
disks = mock('disks')
|
287
306
|
disk = mock('disk')
|
288
|
-
disk.stubs(:size).returns(
|
307
|
+
disk.stubs(:size).returns('1')
|
308
|
+
disk.stubs(:hard_disk?).returns(true)
|
309
|
+
disk.stubs(:cdrom?).returns(false)
|
289
310
|
disk.stubs(:storage).returns('local-lvm')
|
290
311
|
disk.stubs(:volid).returns('local-lvm:vm-100-disk-0')
|
291
312
|
disk.stubs(:id).returns('scsi0')
|
292
|
-
disk.stubs(:attributes).returns(id: 'scsi0', storage: 'local-lvm', volid: 'local-lvm:vm-100-disk-0', size:
|
313
|
+
disk.stubs(:attributes).returns(id: 'scsi0', storage: 'local-lvm', volid: 'local-lvm:vm-100-disk-0', size: '1')
|
293
314
|
disks.stubs(:get).returns(disk)
|
294
315
|
config.stubs(:disks).returns(disks)
|
295
316
|
config.stubs(:attributes).returns(:cores => '')
|
@@ -306,7 +327,7 @@ module ForemanFogProxmox
|
|
306
327
|
'node_id' => 'proxmox',
|
307
328
|
'config_attributes' => {
|
308
329
|
'cores' => '1',
|
309
|
-
'cpulimit' => '1'
|
330
|
+
'cpulimit' => '1',
|
310
331
|
},
|
311
332
|
'volumes_attributes' => {
|
312
333
|
'0' => {
|
@@ -317,14 +338,15 @@ module ForemanFogProxmox
|
|
317
338
|
'device' => '0',
|
318
339
|
'controller' => 'scsi',
|
319
340
|
'storage' => 'local-lvm',
|
320
|
-
'size' => '
|
321
|
-
'cache' => 'directsync'
|
322
|
-
}
|
323
|
-
}
|
341
|
+
'size' => '1',
|
342
|
+
'cache' => 'directsync',
|
343
|
+
},
|
344
|
+
},
|
324
345
|
}.with_indifferent_access
|
325
|
-
@cr.stubs(:parse_server_vm).returns('vmid' => '100', 'node_id' => 'proxmox', 'type' => 'qemu', 'cores' => '1',
|
346
|
+
@cr.stubs(:parse_server_vm).returns('vmid' => '100', 'node_id' => 'proxmox', 'type' => 'qemu', 'cores' => '1',
|
347
|
+
'cpulimit' => '1')
|
326
348
|
expected_config_attr = { :cores => '1', :cpulimit => '1' }
|
327
|
-
expected_volume_attr = { :id => 'scsi0', :volid => 'local-lvm:vm-100-disk-0', :size =>
|
349
|
+
expected_volume_attr = { :id => 'scsi0', :volid => 'local-lvm:vm-100-disk-0', :size => 1 }, { :cache => 'directsync' }
|
328
350
|
vm.expects(:attach, expected_volume_attr)
|
329
351
|
vm.expects(:update, expected_config_attr)
|
330
352
|
@cr.save_vm(uuid, new_attributes)
|
@@ -62,8 +62,10 @@ module ForemanFogProxmox
|
|
62
62
|
vm.stubs(:type).returns('qemu')
|
63
63
|
vm.stubs(:node_id).returns('proxmox')
|
64
64
|
@cr.stubs(:find_vm_by_uuid).returns(vm)
|
65
|
-
attr = { 'templated' => '0', 'node_id' => 'proxmox',
|
66
|
-
|
65
|
+
attr = { 'templated' => '0', 'node_id' => 'proxmox',
|
66
|
+
'config_attributes' => { 'cores' => '1', 'cpulimit' => '1', 'onboot' => '0' } }.with_indifferent_access
|
67
|
+
@cr.stubs(:parse_typed_vm).returns('vmid' => '100', 'node_id' => 'proxmox', 'type' => 'qemu', 'cores' => '1',
|
68
|
+
'cpulimit' => '1', 'onboot' => '0')
|
67
69
|
expected_attr = { :cores => '1', :cpulimit => '1' }.with_indifferent_access
|
68
70
|
vm.expects(:update, expected_attr)
|
69
71
|
@cr.save_vm(uuid, attr)
|
@@ -104,14 +106,14 @@ module ForemanFogProxmox
|
|
104
106
|
'node_id' => 'proxmox',
|
105
107
|
'config_attributes' => {
|
106
108
|
'cores' => '1',
|
107
|
-
'cpulimit' => '1'
|
109
|
+
'cpulimit' => '1',
|
108
110
|
},
|
109
111
|
'interfaces_attributes' => {
|
110
112
|
'0' => {
|
111
113
|
'_delete' => '1',
|
112
|
-
'id' => 'net0'
|
113
|
-
}
|
114
|
-
}
|
114
|
+
'id' => 'net0',
|
115
|
+
},
|
116
|
+
},
|
115
117
|
}.with_indifferent_access
|
116
118
|
@cr.stubs(:parse_typed_vm).returns(
|
117
119
|
'vmid' => '100',
|
@@ -154,9 +156,12 @@ module ForemanFogProxmox
|
|
154
156
|
pools.expects(:get).with('pool2').returns(pool2)
|
155
157
|
identity_client.stubs(:pools).returns(pools)
|
156
158
|
@cr.stubs(:identity_client).returns(identity_client)
|
157
|
-
attr = { 'templated' => '0', 'node_id' => 'proxmox', 'pool' => 'pool2',
|
158
|
-
|
159
|
-
|
159
|
+
attr = { 'templated' => '0', 'node_id' => 'proxmox', 'pool' => 'pool2',
|
160
|
+
'config_attributes' => { 'cores' => '1', 'cpulimit' => '1', 'onboot' => '0' } }.with_indifferent_access
|
161
|
+
@cr.stubs(:parse_typed_vm).returns('vmid' => '100', 'node_id' => 'proxmox', 'type' => 'qemu', 'cores' => '1',
|
162
|
+
'cpulimit' => '1', 'onboot' => '0', 'pool' => 'pool2')
|
163
|
+
vm.expects(:update).with({ 'node_id' => 'proxmox', 'type' => 'qemu', 'cores' => '1', 'cpulimit' => '1',
|
164
|
+
'onboot' => '0' }.with_indifferent_access)
|
160
165
|
@cr.save_vm(uuid, attr)
|
161
166
|
end
|
162
167
|
|
@@ -183,9 +188,12 @@ module ForemanFogProxmox
|
|
183
188
|
pools.expects(:get).with('').returns(nil)
|
184
189
|
identity_client.stubs(:pools).returns(pools)
|
185
190
|
@cr.stubs(:identity_client).returns(identity_client)
|
186
|
-
attr = { 'templated' => '0', 'node_id' => 'proxmox', 'pool' => '',
|
187
|
-
|
188
|
-
|
191
|
+
attr = { 'templated' => '0', 'node_id' => 'proxmox', 'pool' => '',
|
192
|
+
'config_attributes' => { 'cores' => '1', 'cpulimit' => '1', 'onboot' => '0' } }.with_indifferent_access
|
193
|
+
@cr.stubs(:parse_typed_vm).returns('vmid' => '100', 'node_id' => 'proxmox', 'type' => 'qemu', 'cores' => '1',
|
194
|
+
'cpulimit' => '1', 'onboot' => '0', 'pool' => '')
|
195
|
+
vm.expects(:update).with({ 'node_id' => 'proxmox', 'type' => 'qemu', 'cores' => '1', 'cpulimit' => '1',
|
196
|
+
'onboot' => '0' }.with_indifferent_access)
|
189
197
|
@cr.save_vm(uuid, attr)
|
190
198
|
end
|
191
199
|
|
@@ -212,9 +220,12 @@ module ForemanFogProxmox
|
|
212
220
|
pools.expects(:get).with('').returns(nil)
|
213
221
|
identity_client.stubs(:pools).returns(pools)
|
214
222
|
@cr.stubs(:identity_client).returns(identity_client)
|
215
|
-
attr = { 'templated' => '0', 'node_id' => 'proxmox', 'pool' => 'pool2',
|
216
|
-
|
217
|
-
|
223
|
+
attr = { 'templated' => '0', 'node_id' => 'proxmox', 'pool' => 'pool2',
|
224
|
+
'config_attributes' => { 'cores' => '1', 'cpulimit' => '1', 'onboot' => '0' } }.with_indifferent_access
|
225
|
+
@cr.stubs(:parse_typed_vm).returns('vmid' => '100', 'node_id' => 'proxmox', 'type' => 'qemu', 'cores' => '1',
|
226
|
+
'cpulimit' => '1', 'onboot' => '0', 'pool' => 'pool2')
|
227
|
+
vm.expects(:update).with({ 'node_id' => 'proxmox', 'type' => 'qemu', 'cores' => '1', 'cpulimit' => '1',
|
228
|
+
'onboot' => '0' }.with_indifferent_access)
|
218
229
|
@cr.save_vm(uuid, attr)
|
219
230
|
end
|
220
231
|
end
|
@@ -35,7 +35,7 @@ module ForemanFogProxmox
|
|
35
35
|
describe 'find_vm_by_uuid' do
|
36
36
|
it 'returns nil when the uuid does not match' do
|
37
37
|
cr = mock_node_servers_containers(ForemanFogProxmox::Proxmox.new, empty_servers, empty_servers)
|
38
|
-
|
38
|
+
assert_nil cr.find_vm_by_uuid('1_100')
|
39
39
|
end
|
40
40
|
|
41
41
|
it 'raises RecordNotFound when the compute raises error' do
|
@@ -77,7 +77,8 @@ module ForemanFogProxmox
|
|
77
77
|
assert ForemanFogProxmox::Semver.to_semver('1.0.10') <= ForemanFogProxmox::Semver.to_semver('1.0.20')
|
78
78
|
end
|
79
79
|
it '#1.2.3-beta == 1.2.3-beta returns true' do
|
80
|
-
assert_equal ForemanFogProxmox::Semver.to_semver('1.2.3-beta'),
|
80
|
+
assert_equal ForemanFogProxmox::Semver.to_semver('1.2.3-beta'),
|
81
|
+
ForemanFogProxmox::Semver.to_semver('1.2.3-beta')
|
81
82
|
end
|
82
83
|
it '#1.2.3-beta >= 1.-beta raises ArgumentError' do
|
83
84
|
assert_raises ArgumentError do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman_fog_proxmox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.14.
|
4
|
+
version: 0.14.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tristan Robert
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-12-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: deface
|
@@ -31,14 +31,14 @@ dependencies:
|
|
31
31
|
requirements:
|
32
32
|
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '0.
|
34
|
+
version: '0.15'
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: '0.
|
41
|
+
version: '0.15'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: rdoc
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -81,6 +81,20 @@ dependencies:
|
|
81
81
|
- - ">="
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '0'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: theforeman-rubocop
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - "~>"
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0.1'
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - "~>"
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0.1'
|
84
98
|
description: Foreman plugin adds Proxmox VE compute resource using fog-proxmox. It
|
85
99
|
is compatible with Foreman 1.22+
|
86
100
|
email:
|
@@ -243,34 +257,34 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
243
257
|
- !ruby/object:Gem::Version
|
244
258
|
version: '0'
|
245
259
|
requirements: []
|
246
|
-
rubygems_version: 3.
|
260
|
+
rubygems_version: 3.1.6
|
247
261
|
signing_key:
|
248
262
|
specification_version: 4
|
249
263
|
summary: Foreman plugin that adds Proxmox VE compute resource using fog-proxmox
|
250
264
|
test_files:
|
251
|
-
- test/
|
265
|
+
- test/functional/compute_resources_controller_test.rb
|
252
266
|
- test/factories/foreman_fog_proxmox/proxmox_node_mock_factory.rb
|
267
|
+
- test/factories/foreman_fog_proxmox/proxmox_container_mock_factory.rb
|
253
268
|
- test/factories/foreman_fog_proxmox/proxmox_server_mock_factory.rb
|
254
269
|
- test/factories/proxmox_factory.rb
|
255
|
-
- test/functional/compute_resources_controller_test.rb
|
256
|
-
- test/test_plugin_helper.rb
|
257
|
-
- test/unit/foreman_fog_proxmox/helpers/proxmox_container_helper_test.rb
|
258
|
-
- test/unit/foreman_fog_proxmox/helpers/proxmox_server_helper_test.rb
|
259
|
-
- test/unit/foreman_fog_proxmox/helpers/proxmox_vm_helper_test.rb
|
260
|
-
- test/unit/foreman_fog_proxmox/helpers/proxmox_vm_uuid_helper_test.rb
|
261
|
-
- test/unit/foreman_fog_proxmox/helpers/proxmox_vm_volumes_helper_test.rb
|
262
|
-
- test/unit/foreman_fog_proxmox/proxmox_compute_attributes_test.rb
|
263
|
-
- test/unit/foreman_fog_proxmox/proxmox_images_test.rb
|
264
|
-
- test/unit/foreman_fog_proxmox/proxmox_interfaces_test.rb
|
265
|
-
- test/unit/foreman_fog_proxmox/proxmox_test.rb
|
266
|
-
- test/unit/foreman_fog_proxmox/proxmox_version_test.rb
|
267
|
-
- test/unit/foreman_fog_proxmox/proxmox_vm_commands_container_test.rb
|
268
|
-
- test/unit/foreman_fog_proxmox/proxmox_vm_commands_server_create_test.rb
|
269
270
|
- test/unit/foreman_fog_proxmox/proxmox_vm_commands_server_update_cdrom_test.rb
|
270
271
|
- test/unit/foreman_fog_proxmox/proxmox_vm_commands_server_update_cloudinit_test.rb
|
271
272
|
- test/unit/foreman_fog_proxmox/proxmox_vm_commands_server_update_hard_disk_test.rb
|
273
|
+
- test/unit/foreman_fog_proxmox/proxmox_interfaces_test.rb
|
272
274
|
- test/unit/foreman_fog_proxmox/proxmox_vm_commands_server_update_test.rb
|
275
|
+
- test/unit/foreman_fog_proxmox/helpers/proxmox_vm_volumes_helper_test.rb
|
276
|
+
- test/unit/foreman_fog_proxmox/helpers/proxmox_vm_helper_test.rb
|
277
|
+
- test/unit/foreman_fog_proxmox/helpers/proxmox_container_helper_test.rb
|
278
|
+
- test/unit/foreman_fog_proxmox/helpers/proxmox_server_helper_test.rb
|
279
|
+
- test/unit/foreman_fog_proxmox/helpers/proxmox_vm_uuid_helper_test.rb
|
280
|
+
- test/unit/foreman_fog_proxmox/proxmox_version_test.rb
|
273
281
|
- test/unit/foreman_fog_proxmox/proxmox_vm_commands_test.rb
|
274
282
|
- test/unit/foreman_fog_proxmox/proxmox_vm_new_test.rb
|
275
|
-
- test/unit/foreman_fog_proxmox/
|
283
|
+
- test/unit/foreman_fog_proxmox/proxmox_vm_commands_container_test.rb
|
276
284
|
- test/unit/foreman_fog_proxmox/semver_test.rb
|
285
|
+
- test/unit/foreman_fog_proxmox/proxmox_images_test.rb
|
286
|
+
- test/unit/foreman_fog_proxmox/proxmox_vm_queries_test.rb
|
287
|
+
- test/unit/foreman_fog_proxmox/proxmox_compute_attributes_test.rb
|
288
|
+
- test/unit/foreman_fog_proxmox/proxmox_vm_commands_server_create_test.rb
|
289
|
+
- test/unit/foreman_fog_proxmox/proxmox_test.rb
|
290
|
+
- test/test_plugin_helper.rb
|