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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7115babe231d5d12bf7cf520823714559a7f9c9435df2aff0f1e30e431bef3d7
|
4
|
+
data.tar.gz: e0ef9f391e1a762225c6e02c81c8312645d4639420b53db8f40f88f7bf7d608a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
@@ -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
|
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.
|
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-
|
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.
|
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: []
|