foreman_fog_proxmox 0.17.0 → 0.18.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 +1 -1
- data/app/helpers/proxmox_vm_attrs_helper.rb +2 -2
- data/app/models/foreman_fog_proxmox/proxmox_connection.rb +3 -3
- data/app/models/foreman_fog_proxmox/proxmox_interfaces.rb +0 -1
- data/app/overrides/compute_resources_vms/form/add_from_profile_to_compute_attributes_form.rb +2 -1
- data/app/overrides/compute_resources_vms/form/update_react_component_to_host_form.rb +2 -1
- data/app/views/compute_resources_vms/form/proxmox/_update_react_component_to_host_form.html.erb +3 -0
- data/app/views/templates/provisioning/user_data/proxmox_user_data.erb +1 -1
- data/lib/foreman_fog_proxmox/version.rb +1 -1
- data/package.json +0 -1
- data/webpack/components/ProxmoxContainer/MountPoint.js +1 -1
- data/webpack/components/ProxmoxServer/ProxmoxServerStorage.js +14 -4
- data/webpack/components/ProxmoxServer/components/HardDisk.js +5 -1
- data/webpack/components/common/FormInputs.js +6 -0
- metadata +26 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ed21bae26c68450f3f8c540f27b8ec6a11b2e11d1f26eaa02e57e8713fab3ff0
|
4
|
+
data.tar.gz: b1bf45f6b722c7ff7a54fbb2eeefd3323a4a3050a0d0add477357295d8b620c9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6f5a6cf6d75b4e839b434b2e14ee6ef91be7b22844858fa8330eff6ce9ca862c9d75d6f610e5d696dfee9aee6f249051880486df2a534305bbef12842f6de17c
|
7
|
+
data.tar.gz: 4d6c56f0f54b6fc5cac4e42784f34fddb8bb99fb8e7dbead14b0230fb6c5931acb25a47ec88f59022251ccddda73c2f7878ad2475eda10454149674c8f74c1eb
|
data/README.md
CHANGED
@@ -34,7 +34,7 @@ You can support the plugin development via the following methods:
|
|
34
34
|
|>=0.12 |>=6.1|>=0.11|>=2.0|>=2.5|
|
35
35
|
|>=0.14 |>=6.2|=0.13.0|>=2.4|>=2.7|
|
36
36
|
|>=0.14 |>=6.2|>=0.13.1|>=2.3|>=2.5|
|
37
|
-
|>=0.14 |>=6.2|>=0.14.0|>=2.5|>=2.5|
|
37
|
+
|>=0.14 |>=6.2,<8.0|>=0.14.0|>=2.5|>=2.5|
|
38
38
|
|
39
39
|
## Installation
|
40
40
|
|
@@ -62,7 +62,7 @@ module ProxmoxVMAttrsHelper
|
|
62
62
|
keys = ['id', 'volid', 'storage', 'size', 'storage_type']
|
63
63
|
type = 'rootfs'
|
64
64
|
elsif vol.hard_disk?
|
65
|
-
keys = ['id', 'volid', 'storage_type', 'storage', 'controller', 'device', 'cache', 'size']
|
65
|
+
keys = ['id', 'volid', 'storage_type', 'storage', 'controller', 'device', 'cache', 'size', '_delete']
|
66
66
|
type = 'hard_disk'
|
67
67
|
elsif vol.cdrom?
|
68
68
|
keys = ['id', 'storage_type', 'cdrom', 'storage', 'volid']
|
@@ -82,7 +82,7 @@ module ProxmoxVMAttrsHelper
|
|
82
82
|
def vol_keys(param_scope, keys, vol, id)
|
83
83
|
attrs = ActiveSupport::HashWithIndifferentAccess.new
|
84
84
|
keys.each do |key|
|
85
|
-
camel_key = key.to_s.include?('_') ? snake_to_camel(key.to_s).to_sym : key
|
85
|
+
camel_key = key.to_s.include?('_') && key.to_s != '_delete' ? snake_to_camel(key.to_s).to_sym : key
|
86
86
|
attrs[camel_key] = { :name => "#{param_scope}[volumes_attributes][#{id}][#{key}]", :value => vol.public_send(key) }
|
87
87
|
end
|
88
88
|
attrs
|
@@ -56,11 +56,11 @@ module ForemanFogProxmox
|
|
56
56
|
identity_client
|
57
57
|
version_suitable?
|
58
58
|
rescue StandardError => e
|
59
|
-
errors
|
59
|
+
errors.add(:base, e.message)
|
60
60
|
if e.message.include?('SSL')
|
61
|
-
errors
|
61
|
+
errors.add(:ssl_certs, e.message)
|
62
62
|
else
|
63
|
-
errors
|
63
|
+
errors.add(:url, e.message)
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
data/app/overrides/compute_resources_vms/form/add_from_profile_to_compute_attributes_form.rb
CHANGED
@@ -20,7 +20,8 @@
|
|
20
20
|
Deface::Override.new(
|
21
21
|
virtual_path: 'compute_attributes/_compute_form',
|
22
22
|
name: 'remove_networks_and_volumes_partial',
|
23
|
-
|
23
|
+
surround: "erb[loud]:contains('compute_resources_vms/form/networks'), erb[loud]:contains('compute_resources_vms/form/volumes')",
|
24
|
+
text: "<% unless compute_resource.class == ForemanFogProxmox::Proxmox %><%= render_original %><% end %>"
|
24
25
|
)
|
25
26
|
|
26
27
|
Deface::Override.new(
|
@@ -21,5 +21,6 @@ Deface::Override.new(
|
|
21
21
|
:virtual_path => 'hosts/_compute',
|
22
22
|
:name => 'update_react_component_to_virtual_machine_tab',
|
23
23
|
:replace => "erb[loud]:contains('hosts/compute_detail')",
|
24
|
-
:partial => 'compute_resources_vms/form/proxmox/update_react_component_to_host_form'
|
24
|
+
:partial => 'compute_resources_vms/form/proxmox/update_react_component_to_host_form',
|
25
|
+
:original => 'c71aceb245363af92515509d25cac0c066bd58ed'
|
25
26
|
)
|
data/app/views/compute_resources_vms/form/proxmox/_update_react_component_to_host_form.html.erb
CHANGED
@@ -23,4 +23,7 @@ along with ForemanFogProxmox. If not, see <http://www.gnu.org/licenses/>. %>
|
|
23
23
|
<%= render :partial => provider_partial(compute_resource, 'base'),
|
24
24
|
locals: { f: compute, host: host, compute_resource: compute_resource, new_host: host.new_record?, new_vm: !compute.object.persisted?,
|
25
25
|
arch: host.architecture_id, os: host.operatingsystem_id } %>
|
26
|
+
|
27
|
+
<!--Storage-->
|
28
|
+
<%= render :partial => 'compute_resources_vms/form/volumes', :locals => { :f => compute, :compute_resource => compute_resource, :new_host => !compute.object.persisted?, :new_vm => !compute.object.persisted?, :item_layout => 'removable' } %>
|
26
29
|
<% end %>
|
data/package.json
CHANGED
@@ -140,6 +140,7 @@ const ProxmoxServerStorage = ({ storage, storages, paramScope, nodeId }) => {
|
|
140
140
|
storages,
|
141
141
|
data: initHdd,
|
142
142
|
disks: storage,
|
143
|
+
isNew: !isPreExisting,
|
143
144
|
};
|
144
145
|
setHardDisks(prevHardDisks => [...prevHardDisks, newHardDisk]);
|
145
146
|
return newNextId;
|
@@ -149,9 +150,11 @@ const ProxmoxServerStorage = ({ storage, storages, paramScope, nodeId }) => {
|
|
149
150
|
);
|
150
151
|
|
151
152
|
const removeHardDisk = idToRemove => {
|
152
|
-
const newHardDisks = hardDisks
|
153
|
-
hardDisk => hardDisk.id
|
154
|
-
|
153
|
+
const newHardDisks = hardDisks
|
154
|
+
.filter(hardDisk => !(hardDisk.id === idToRemove && hardDisk.isNew))
|
155
|
+
.map(hardDisk =>
|
156
|
+
hardDisk.id === idToRemove ? { ...hardDisk, hidden: true } : hardDisk
|
157
|
+
);
|
155
158
|
setHardDisks(newHardDisks);
|
156
159
|
};
|
157
160
|
|
@@ -224,7 +227,13 @@ const ProxmoxServerStorage = ({ storage, storages, paramScope, nodeId }) => {
|
|
224
227
|
/>
|
225
228
|
)}
|
226
229
|
{hardDisks.map(hardDisk => (
|
227
|
-
<div
|
230
|
+
<div
|
231
|
+
key={hardDisk.id}
|
232
|
+
style={{
|
233
|
+
position: 'relative',
|
234
|
+
display: hardDisk.hidden ? 'none' : 'block',
|
235
|
+
}}
|
236
|
+
>
|
228
237
|
<div
|
229
238
|
style={{
|
230
239
|
marginTop: '10px',
|
@@ -247,6 +256,7 @@ const ProxmoxServerStorage = ({ storage, storages, paramScope, nodeId }) => {
|
|
247
256
|
disks={hardDisk.disks}
|
248
257
|
updateHardDiskData={updateHardDiskData}
|
249
258
|
createUniqueDevice={createUniqueDevice}
|
259
|
+
hidden={hardDisk.hidden ? true : ''}
|
250
260
|
/>
|
251
261
|
</div>
|
252
262
|
))}
|
@@ -13,6 +13,7 @@ const HardDisk = ({
|
|
13
13
|
disks,
|
14
14
|
updateHardDiskData,
|
15
15
|
createUniqueDevice,
|
16
|
+
hidden,
|
16
17
|
nodeId,
|
17
18
|
}) => {
|
18
19
|
const [hdd, setHdd] = useState(data);
|
@@ -107,7 +108,7 @@ const HardDisk = ({
|
|
107
108
|
name={hdd?.device?.name}
|
108
109
|
value={hdd?.device?.value}
|
109
110
|
onChange={handleChange}
|
110
|
-
|
111
|
+
readOnly
|
111
112
|
tooltip={__('Device value is set automatically.')}
|
112
113
|
/>
|
113
114
|
<InputField
|
@@ -125,6 +126,7 @@ const HardDisk = ({
|
|
125
126
|
value={hdd?.size?.value}
|
126
127
|
onChange={handleChange}
|
127
128
|
/>
|
129
|
+
<input name={hdd?._delete?.name} type="hidden" value={hidden} />
|
128
130
|
</div>
|
129
131
|
);
|
130
132
|
};
|
@@ -134,6 +136,7 @@ HardDisk.propTypes = {
|
|
134
136
|
data: PropTypes.object,
|
135
137
|
storages: PropTypes.array,
|
136
138
|
disks: PropTypes.array,
|
139
|
+
hidden: PropTypes.bool,
|
137
140
|
updateHardDiskData: PropTypes.func,
|
138
141
|
createUniqueDevice: PropTypes.func,
|
139
142
|
nodeId: PropTypes.string,
|
@@ -144,6 +147,7 @@ HardDisk.defaultProps = {
|
|
144
147
|
storages: [],
|
145
148
|
disks: [],
|
146
149
|
nodeId: '',
|
150
|
+
hidden: 'false',
|
147
151
|
updateHardDiskData: Function.prototype,
|
148
152
|
createUniqueDevice: Function.prototype,
|
149
153
|
};
|
@@ -13,6 +13,7 @@ const InputField = ({
|
|
13
13
|
required,
|
14
14
|
type,
|
15
15
|
disabled,
|
16
|
+
readOnly,
|
16
17
|
options,
|
17
18
|
checked,
|
18
19
|
error,
|
@@ -40,6 +41,7 @@ const InputField = ({
|
|
40
41
|
renderComponent = (
|
41
42
|
<select
|
42
43
|
disabled={disabled}
|
44
|
+
readOnly={readOnly}
|
43
45
|
name={name}
|
44
46
|
className="without_select2 form-control"
|
45
47
|
value={value}
|
@@ -59,6 +61,7 @@ const InputField = ({
|
|
59
61
|
checked={checked}
|
60
62
|
onChange={onChange}
|
61
63
|
disabled={disabled}
|
64
|
+
readOnly={readOnly}
|
62
65
|
/>
|
63
66
|
);
|
64
67
|
break;
|
@@ -71,6 +74,7 @@ const InputField = ({
|
|
71
74
|
value={value}
|
72
75
|
onChange={onChange}
|
73
76
|
disabled={disabled}
|
77
|
+
readOnly={readOnly}
|
74
78
|
/>
|
75
79
|
);
|
76
80
|
break;
|
@@ -122,6 +126,7 @@ InputField.propTypes = {
|
|
122
126
|
'checkbox',
|
123
127
|
]),
|
124
128
|
disabled: PropTypes.bool,
|
129
|
+
readOnly: PropTypes.bool,
|
125
130
|
checked: PropTypes.bool,
|
126
131
|
options: PropTypes.arrayOf(
|
127
132
|
PropTypes.shape({
|
@@ -142,6 +147,7 @@ InputField.defaultProps = {
|
|
142
147
|
required: false,
|
143
148
|
type: 'text',
|
144
149
|
disabled: false,
|
150
|
+
readOnly: false,
|
145
151
|
checked: false,
|
146
152
|
options: [],
|
147
153
|
error: '',
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman_fog_proxmox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.18.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tristan Robert
|
8
8
|
- The Foreman Team
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2025-02-27 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:
|
34
|
+
version: 0.15.1
|
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:
|
41
|
+
version: 0.15.1
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: rdoc
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -273,7 +273,7 @@ homepage: https://github.com/theforeman/foreman_fog_proxmox
|
|
273
273
|
licenses:
|
274
274
|
- GPL-3.0
|
275
275
|
metadata: {}
|
276
|
-
post_install_message:
|
276
|
+
post_install_message:
|
277
277
|
rdoc_options: []
|
278
278
|
require_paths:
|
279
279
|
- lib
|
@@ -289,33 +289,33 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
289
289
|
version: '0'
|
290
290
|
requirements: []
|
291
291
|
rubygems_version: 3.1.6
|
292
|
-
signing_key:
|
292
|
+
signing_key:
|
293
293
|
specification_version: 4
|
294
294
|
summary: Foreman plugin that adds Proxmox VE compute resource using fog-proxmox
|
295
295
|
test_files:
|
296
|
-
- test/
|
297
|
-
- test/
|
298
|
-
- test/
|
296
|
+
- test/test_plugin_helper.rb
|
297
|
+
- test/factories/foreman_fog_proxmox/proxmox_server_mock_factory.rb
|
298
|
+
- test/factories/foreman_fog_proxmox/proxmox_node_mock_factory.rb
|
299
|
+
- test/factories/foreman_fog_proxmox/proxmox_container_mock_factory.rb
|
300
|
+
- test/factories/proxmox_factory.rb
|
301
|
+
- test/unit/foreman_fog_proxmox/proxmox_vm_commands_server_update_cdrom_test.rb
|
302
|
+
- test/unit/foreman_fog_proxmox/proxmox_vm_commands_container_test.rb
|
303
|
+
- test/unit/foreman_fog_proxmox/proxmox_interfaces_test.rb
|
304
|
+
- test/unit/foreman_fog_proxmox/proxmox_vm_commands_server_create_test.rb
|
305
|
+
- test/unit/foreman_fog_proxmox/proxmox_version_test.rb
|
306
|
+
- test/unit/foreman_fog_proxmox/proxmox_vm_new_test.rb
|
299
307
|
- test/unit/foreman_fog_proxmox/proxmox_vm_commands_test.rb
|
300
|
-
- test/unit/foreman_fog_proxmox/
|
308
|
+
- test/unit/foreman_fog_proxmox/proxmox_vm_commands_server_update_hard_disk_test.rb
|
309
|
+
- test/unit/foreman_fog_proxmox/proxmox_test.rb
|
310
|
+
- test/unit/foreman_fog_proxmox/proxmox_vm_commands_server_update_test.rb
|
311
|
+
- test/unit/foreman_fog_proxmox/proxmox_images_test.rb
|
312
|
+
- test/unit/foreman_fog_proxmox/semver_test.rb
|
301
313
|
- test/unit/foreman_fog_proxmox/helpers/proxmox_vm_volumes_helper_test.rb
|
314
|
+
- test/unit/foreman_fog_proxmox/helpers/proxmox_container_helper_test.rb
|
315
|
+
- test/unit/foreman_fog_proxmox/helpers/proxmox_server_helper_test.rb
|
302
316
|
- test/unit/foreman_fog_proxmox/helpers/proxmox_vm_uuid_helper_test.rb
|
303
317
|
- test/unit/foreman_fog_proxmox/helpers/proxmox_vm_helper_test.rb
|
304
|
-
- test/unit/foreman_fog_proxmox/helpers/proxmox_server_helper_test.rb
|
305
|
-
- test/unit/foreman_fog_proxmox/proxmox_version_test.rb
|
306
|
-
- test/unit/foreman_fog_proxmox/proxmox_interfaces_test.rb
|
307
|
-
- test/unit/foreman_fog_proxmox/proxmox_vm_commands_container_test.rb
|
308
|
-
- test/unit/foreman_fog_proxmox/proxmox_vm_commands_server_update_test.rb
|
309
318
|
- test/unit/foreman_fog_proxmox/proxmox_compute_attributes_test.rb
|
310
319
|
- test/unit/foreman_fog_proxmox/proxmox_vm_queries_test.rb
|
311
|
-
- test/unit/foreman_fog_proxmox/proxmox_images_test.rb
|
312
|
-
- test/unit/foreman_fog_proxmox/proxmox_test.rb
|
313
|
-
- test/unit/foreman_fog_proxmox/proxmox_vm_commands_server_update_cdrom_test.rb
|
314
320
|
- test/unit/foreman_fog_proxmox/proxmox_vm_commands_server_update_cloudinit_test.rb
|
315
|
-
- test/
|
316
|
-
- test/unit/foreman_fog_proxmox/proxmox_vm_commands_server_create_test.rb
|
317
|
-
- test/test_plugin_helper.rb
|
318
|
-
- test/factories/proxmox_factory.rb
|
319
|
-
- test/factories/foreman_fog_proxmox/proxmox_server_mock_factory.rb
|
320
|
-
- test/factories/foreman_fog_proxmox/proxmox_container_mock_factory.rb
|
321
|
-
- test/factories/foreman_fog_proxmox/proxmox_node_mock_factory.rb
|
321
|
+
- test/functional/compute_resources_controller_test.rb
|