foreman_bootdisk 23.0.0 → 23.1.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: 2953eaa163391d29858def498833920f069bc5565f71ac0e535b173d8965d922
4
- data.tar.gz: 6c80849f4cca281f3d4de80758c302a3355915a7f51d7dc6234ed89b8ad7efce
3
+ metadata.gz: 7115babe231d5d12bf7cf520823714559a7f9c9435df2aff0f1e30e431bef3d7
4
+ data.tar.gz: e0ef9f391e1a762225c6e02c81c8312645d4639420b53db8f40f88f7bf7d608a
5
5
  SHA512:
6
- metadata.gz: '09f1c3d97e04c81cfb630310c5374a53c8596ab6418a912c29163a2b2cc970b992479abc2a37925ef95d1c8d2b7c01c136f092f5562523947f10f0d9dfba788a'
7
- data.tar.gz: 6c093377e782eb515e56d61309959f041e7daacb7fa8ed1d472237399c6f96a5ea4fc5d91e782f6e3a1644dc00c67a418e0e38b4a4519fbeeebd88144193496f
6
+ metadata.gz: 7a528c3019743c86ce6920ae26c3ede482c73ab60a31b9dc631c3eb5bedb64c1735b8b05250e5c8e41f0154689f5e06b01a97ea484bdf86a279da1c9773d9a11
7
+ data.tar.gz: f0291a50c6b5ed15cedbeb76fd3862ccafd830b6ae1cb8fad0f90eed3e51ba3c796bdef5c00b067f4159b97b4d1ca63f005605f52bb00879e75c1696e089dea5
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ForemanBootdisk
4
+ module ComputeResources
5
+ module Proxmox
6
+ CDROM_VOLUME = 'ide2'
7
+
8
+ def capabilities
9
+ super + [:bootdisk]
10
+ end
11
+
12
+ def iso_upload(iso, vm_uuid)
13
+ server = find_vm_by_uuid(vm_uuid)
14
+ server.ssh_options = { password: fog_credentials[:proxmox_password] }
15
+ server.ssh_ip_address = proxmox_host
16
+ server.username = client.credentials[:current_user].split('@').first
17
+ server.scp_upload(iso, '/var/lib/vz/template/iso/')
18
+ server.reload
19
+ storage = storages(server.node_id, 'iso')[0]
20
+ storage.volumes.any? { |v| v.volid.include? File.basename(iso) }
21
+ end
22
+
23
+ def iso_attach(iso, vm_uuid)
24
+ server = find_vm_by_uuid(vm_uuid)
25
+ storage = storages(server.node_id, 'iso')[0]
26
+ volume = storage.volumes.detect { |v| v.volid.include? File.basename(iso) }
27
+ disks = server.disks.map { |disk| disk.split(":")[0] }.join(";")
28
+ server.update({ ide2: "#{volume.volid},media=cdrom" })
29
+ server.update({ boot: "order=ide2;#{disks}" })
30
+ server.reboot
31
+ end
32
+
33
+ def iso_detach(vm_uuid)
34
+ server = find_vm_by_uuid(vm_uuid)
35
+
36
+ # get volid to delete iso after detaching from vm
37
+ volid = server.volumes.get(CDROM_VOLUME).volid
38
+ server.update({ ide2: "none,media=cdrom" })
39
+
40
+ # cdrom will be ejected on next power off
41
+ server.detach(CDROM_VOLUME)
42
+
43
+ # delete the iso file from proxmox server
44
+ storage = storages(server.node_id, 'iso')[0]
45
+ volume = storage.volumes.detect { |v| v.volid.include? volid }
46
+ volume.destroy
47
+ end
48
+ end
49
+ end
50
+ end
@@ -12,7 +12,7 @@ module ForemanBootdisk
12
12
  if args[:provision_method] == 'bootdisk'
13
13
  args[:cdroms] = [new_cdrom]
14
14
  args[:boot_order] = %w[cdrom disk]
15
- args[:boot_retry] = 10
15
+ args[:boot_retry] = 10 * 1000 # boot_retry is in ms. Shortest is 10s
16
16
  end
17
17
  args
18
18
  end
@@ -140,6 +140,7 @@ module ForemanBootdisk
140
140
  Host::Managed.prepend ForemanBootdisk::HostExt
141
141
  Host::Managed.include ForemanBootdisk::Orchestration::Compute
142
142
  Foreman::Model::Vmware.prepend ForemanBootdisk::ComputeResources::Vmware if Foreman::Model::Vmware.available?
143
+ ForemanFogProxmox::Proxmox.prepend ForemanBootdisk::ComputeResources::Proxmox if ForemanBootdisk.with_proxmox?
143
144
  rescue StandardError => e
144
145
  Rails.logger.warn "#{ForemanBootdisk::ENGINE_NAME}: skipping engine hook (#{e})"
145
146
  end
@@ -149,4 +150,8 @@ module ForemanBootdisk
149
150
  def self.logger
150
151
  Foreman::Logging.logger('foreman_bootdisk')
151
152
  end
153
+
154
+ def self.with_proxmox?
155
+ Foreman::Plugin.installed?('foreman_fog_proxmox')
156
+ end
152
157
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ForemanBootdisk
4
- VERSION = '23.0.0'
4
+ VERSION = '23.1.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_bootdisk
3
3
  version: !ruby/object:Gem::Version
4
- version: 23.0.0
4
+ version: 23.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dominic Cleal
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2025-04-02 00:00:00.000000000 Z
10
+ date: 2025-06-03 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: theforeman-rubocop
@@ -68,6 +67,7 @@ files:
68
67
  - app/lib/foreman_bootdisk/scope/full_host_bootdisk.rb
69
68
  - app/lib/foreman_bootdisk/scope/full_host_bootdisk_efi.rb
70
69
  - app/lib/foreman_bootdisk/template_helpers.rb
70
+ - app/models/concerns/foreman_bootdisk/compute_resources/proxmox.rb
71
71
  - app/models/concerns/foreman_bootdisk/compute_resources/vmware.rb
72
72
  - app/models/concerns/foreman_bootdisk/host_ext.rb
73
73
  - app/models/concerns/foreman_bootdisk/orchestration/compute.rb
@@ -149,7 +149,6 @@ homepage: https://github.com/theforeman/foreman_bootdisk
149
149
  licenses:
150
150
  - GPL-3.0
151
151
  metadata: {}
152
- post_install_message:
153
152
  rdoc_options: []
154
153
  require_paths:
155
154
  - lib
@@ -167,8 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
167
166
  - !ruby/object:Gem::Version
168
167
  version: '0'
169
168
  requirements: []
170
- rubygems_version: 3.5.22
171
- signing_key:
169
+ rubygems_version: 3.6.2
172
170
  specification_version: 4
173
171
  summary: Create boot disks to provision hosts with Foreman
174
172
  test_files: []