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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4521dde2dff786a4f14fcf50c4eb68cd412596029a0f2ee32d54bd8154c51135
4
- data.tar.gz: 6e316973c79ab4e51f95578e3c282a0d5345dde397afb5d14ad9ac011a8fc9d0
3
+ metadata.gz: ed21bae26c68450f3f8c540f27b8ec6a11b2e11d1f26eaa02e57e8713fab3ff0
4
+ data.tar.gz: b1bf45f6b722c7ff7a54fbb2eeefd3323a4a3050a0d0add477357295d8b620c9
5
5
  SHA512:
6
- metadata.gz: 9d034e8a37538e334329ab3a8df9447325ca7d2809a0b185819bc0fe62757fc39cee691799fa8699802d50855da41d3e4f8df17a3a2ffe1924376dfbcbacfc20
7
- data.tar.gz: '09e3bd0ebb1cd6ece7103cc0d07f0d0c5a0c02598a8f72787359599ee8a8004c6c3add7d9d43a7ffdd9b2486c4fe2faeb5fa28b05ddc83cf290fe0ff55211b5a'
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[:base] << e.message
59
+ errors.add(:base, e.message)
60
60
  if e.message.include?('SSL')
61
- errors[:ssl_certs] << e.message
61
+ errors.add(:ssl_certs, e.message)
62
62
  else
63
- errors[:url] << e.message
63
+ errors.add(:url, e.message)
64
64
  end
65
65
  end
66
66
 
@@ -18,7 +18,6 @@
18
18
  # along with ForemanFogProxmox. If not, see <http://www.gnu.org/licenses/>.
19
19
 
20
20
  require 'fog/proxmox/helpers/ip_helper'
21
- require 'net/validations'
22
21
 
23
22
  module ForemanFogProxmox
24
23
  module ProxmoxInterfaces
@@ -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
- remove: "erb[loud]:contains('compute_resources_vms/form/networks'), erb[loud]:contains('compute_resources_vms/form/volumes')"
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
  )
@@ -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 %>
@@ -110,7 +110,7 @@ ethernets:
110
110
  addresses:
111
111
  - <%= @host.ip %>/<%= @host.subnet.cidr %>
112
112
  routes:
113
- - to: 0.0.0.0
113
+ - to: 0.0.0.0/0
114
114
  via: <%= @host.subnet.gateway %>
115
115
  nameservers:
116
116
  addresses:
@@ -18,5 +18,5 @@
18
18
  # along with ForemanFogProxmox. If not, see <http://www.gnu.org/licenses/>.
19
19
 
20
20
  module ForemanFogProxmox
21
- VERSION = '0.17.0'
21
+ VERSION = '0.18.1'
22
22
  end
data/package.json CHANGED
@@ -28,7 +28,6 @@
28
28
  },
29
29
  "devDependencies": {
30
30
  "@babel/core": "^7.7.0",
31
- "@testing-library/react": "^10.4.9",
32
31
  "@theforeman/builder": ">= 12.0.1",
33
32
  "@theforeman/eslint-plugin-foreman": ">= 12.0.1",
34
33
  "@theforeman/find-foreman": ">= 12.0.1",
@@ -53,7 +53,7 @@ const MountPoint = ({ id, data, storagesMap }) => {
53
53
  <InputField
54
54
  label={__('Device')}
55
55
  name={mp?.device?.name}
56
- disabled
56
+ readOnly
57
57
  value={mp?.device?.value}
58
58
  onChange={handleChange}
59
59
  tooltip={__('Device value is set automatically.')}
@@ -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.filter(
153
- hardDisk => hardDisk.id !== idToRemove
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 style={{ position: 'relative' }}>
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
- disabled
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.17.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: 2024-10-08 00:00:00.000000000 Z
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: '0.15'
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: '0.15'
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/functional/compute_resources_controller_test.rb
297
- - test/unit/foreman_fog_proxmox/semver_test.rb
298
- - test/unit/foreman_fog_proxmox/proxmox_vm_commands_server_update_hard_disk_test.rb
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/helpers/proxmox_container_helper_test.rb
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/unit/foreman_fog_proxmox/proxmox_vm_new_test.rb
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