foreman_fog_proxmox 0.10.2 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of foreman_fog_proxmox might be problematic. Click here for more details.

Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +46 -12
  3. data/app/assets/javascripts/foreman_fog_proxmox/proxmox_vm_server.js +0 -22
  4. data/app/helpers/proxmox_compute_selectors_helper.rb +9 -0
  5. data/app/helpers/proxmox_server_helper.rb +2 -6
  6. data/app/helpers/proxmox_vm_helper.rb +2 -2
  7. data/app/models/concerns/fog_extensions/proxmox/server.rb +1 -0
  8. data/app/models/foreman_fog_proxmox/proxmox_pools.rb +56 -0
  9. data/app/models/foreman_fog_proxmox/proxmox_vm_commands.rb +4 -1
  10. data/app/models/foreman_fog_proxmox/proxmox_vm_new.rb +4 -4
  11. data/app/models/foreman_fog_proxmox/proxmox_vm_queries.rb +6 -7
  12. data/app/views/api/v2/compute_resources/proxmox.json.rabl +1 -1
  13. data/app/views/compute_resources_vms/form/proxmox/_general.html.erb +1 -0
  14. data/app/views/compute_resources_vms/form/proxmox/server/_config.html.erb +3 -4
  15. data/app/views/compute_resources_vms/show/_proxmox.html.erb +1 -0
  16. data/lib/foreman_fog_proxmox/version.rb +1 -1
  17. data/locale/en/foreman_fog_proxmox.edit.po +46 -26
  18. data/locale/en/foreman_fog_proxmox.po +18 -3
  19. data/locale/foreman_fog_proxmox.pot +48 -28
  20. data/locale/fr/foreman_fog_proxmox.edit.po +50 -27
  21. data/locale/fr/foreman_fog_proxmox.po +18 -3
  22. data/test/factories/foreman_fog_proxmox/proxmox_node_mock_factory.rb +6 -0
  23. data/test/unit/foreman_fog_proxmox/helpers/proxmox_container_helper_test.rb +4 -4
  24. data/test/unit/foreman_fog_proxmox/helpers/proxmox_server_helper_test.rb +10 -9
  25. data/test/unit/foreman_fog_proxmox/helpers/proxmox_vm_helper_test.rb +1 -1
  26. data/test/unit/foreman_fog_proxmox/proxmox_version_test.rb +4 -4
  27. data/test/unit/foreman_fog_proxmox/proxmox_vm_commands_container_test.rb +14 -0
  28. data/test/unit/foreman_fog_proxmox/proxmox_vm_commands_server_create_test.rb +14 -0
  29. data/test/unit/foreman_fog_proxmox/proxmox_vm_commands_server_update_test.rb +91 -0
  30. data/test/unit/foreman_fog_proxmox/proxmox_vm_queries_test.rb +7 -2
  31. data/test/unit/foreman_fog_proxmox/semver_test.rb +3 -5
  32. metadata +20 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2a2aa0eb531e4580fc08dd5645fb2db4a4f1f2cbe22e9f8facee9428e1ca2d75
4
- data.tar.gz: fcc524d8576edc27619cae0f08049e429bca3a936d5970e094dbd55ea28df8d7
3
+ metadata.gz: 9c5ef621a01ef69d1d270c6feb71f77046a254a556ff257c81633f372debeaad
4
+ data.tar.gz: 6d2b6dfcb99730a206f14798f4f7c79e0573eddad591227644d6b37f5e80a40f
5
5
  SHA512:
6
- metadata.gz: b2faa03134097bbcf3923d768469b73b37c3fb0230cf75090306ed2dd40529282fab6518cc9558693b513310ea875d947ab1f8403cb9045b09a94b03b1f4a072
7
- data.tar.gz: d9480dfad771621a8debce4575689a60ddb3328da49e3133e73005e28522514c538aecc592b1aa97b5b2a1734fe62f954ebedd8306fca4fda0af46448e07ab48
6
+ metadata.gz: fd050c257f61d7cc967434ae57b7448b63451f6b13919036b2bea7eb43de7acad752c941114b7f7e1798e3274fc1afe7c89f8626444e1c280cfe6d658206ad0e
7
+ data.tar.gz: 279158c35f1276fcc29f8a29fa16fe3ab3546943f58de2647dd5938f7ac32cc012f16b14cb5819c9c4706ca1df666c8bfb9f77cb8a056f9f17d6803cf10b0fcf
data/README.md CHANGED
@@ -1,8 +1,9 @@
1
1
  ![ForemanFogProxmox](.github/images/foremanproxmox.png)
2
2
 
3
- [![Build Status](https://travis-ci.com/theforeman/foreman_fog_proxmox.svg?branch=master)](https://travis-ci.com/theforeman/foreman_fog_proxmox)
3
+ ![CI](https://github.com/theforeman/foreman_fog_proxmox/workflows/CI/badge.svg)
4
4
  [![Maintainability](https://api.codeclimate.com/v1/badges/922162c278e0fa9207ba/maintainability)](https://codeclimate.com/github/theforeman/foreman_fog_proxmox/maintainability)
5
5
  [![Test Coverage](https://api.codeclimate.com/v1/badges/922162c278e0fa9207ba/test_coverage)](https://codeclimate.com/github/theforeman/foreman_fog_proxmox/test_coverage)
6
+ [![Gem Version](https://badge.fury.io/rb/foreman_fog_proxmox.svg)](https://badge.fury.io/rb/foreman_fog_proxmox)
6
7
 
7
8
  # ForemanFogProxmox
8
9
 
@@ -30,6 +31,7 @@ You can support the plugin development via the following methods:
30
31
  |>=0.9 |>=5.4|>=0.9.1|>=1.22|>=2.3|
31
32
  |>=0.10 |>=5.4|>=0.9.4|>=1.22|>=2.5|
32
33
  |>=0.11 |>=5.4|>=0.10|>=1.22|>=2.5|
34
+ |>=0.12 |>=6.1|>=0.11|>=2.0|>=2.5|
33
35
 
34
36
  ## Installation
35
37
 
@@ -129,8 +131,8 @@ git clone https://github.com/theforeman/foreman -b develop
129
131
  * Add this line:
130
132
 
131
133
  ```ruby
132
- gem 'foreman_fog_proxmox', :path => '/your_path_to/foreman_fog_proxmox'
133
- gem 'fog-proxmox', :path => '/your_path_to/fog-proxmox' # optional if you need to modify fog-proxmox code too
134
+ gem 'foreman_fog_proxmox', :path => '../../theforeman/foreman_fog_proxmox'
135
+ gem 'fog-proxmox', :path => '../../fog/fog-proxmox' # optional if you need to modify fog-proxmox code too
134
136
  gem 'ruby-debug-ide' # dev
135
137
  gem 'debase' # dev
136
138
  gem 'simplecov' # test
@@ -139,7 +141,8 @@ gem 'simplecov' # test
139
141
  * In foreman directory, install dependencies:
140
142
 
141
143
  ```shell
142
- bundle install --without libvirt postgresql mysql2
144
+ bundle config set without 'libvirt ovirt mysql2'
145
+ bundle install
143
146
  ```
144
147
 
145
148
  ```shell
@@ -152,14 +155,25 @@ npm install
152
155
  cp config/settings.yaml.test config/settings.yaml
153
156
  ```
154
157
 
155
- * Install foreman database (sqlite is default in rails development):
158
+ * Install foreman database in postgresql (sqlite is no more default in rails development):
156
159
 
157
160
  ```shell
158
161
  cp config/model.mappings.example config/model.mappings
159
162
  cp config/database.yml.example config/database.yml
163
+ ```
164
+
165
+ add these lines to config/database.yml:
166
+
167
+ ```yaml
168
+ username: foreman
169
+ password: foreman
170
+ ```
171
+
172
+ ```shell
160
173
  cp config/ignored_environments.yml.sample config/ignored_environments.yml
174
+ docker run --name foreman-db -e POSTGRES_DB=foreman -e POSTGRES_USER=foreman -e POSTGRES_PASSWORD=foreman -p 5432:5432 -d postgres
161
175
  bundle exec bin/rake db:migrate
162
- bundle exec bin/rake db:seed
176
+ bundle exec bin/rake db:seed assets:precompile locale:pack webpack:compile
163
177
  ```
164
178
 
165
179
  * You can reset admin password if needed:
@@ -170,6 +184,13 @@ bundle exec bin/rake permissions:reset
170
184
 
171
185
  * You should write tests and you can execute those specific to this plugin:
172
186
 
187
+ first, create database `foreman-test` with psql commands:
188
+
189
+ ```shell
190
+ docker exec -it foreman-db psql -U foreman
191
+ foreman=# create database "foreman-test";
192
+ ```
193
+
173
194
  all:
174
195
 
175
196
  ```shell
@@ -208,16 +229,28 @@ bundle exec bin/rake plugin:assets:precompile[foreman_fog_proxmox]
208
229
  bundle exec bin/rake plugin:gettext[foreman_fog_proxmox]
209
230
  ```
210
231
 
211
- * In foreman directory, run rails server:
232
+ * In foreman directory, run in a new terminal the webpack-dev-server:
212
233
 
213
234
  ```shell
214
- bundle exec bin/rails server
235
+ ./node_modules/.bin/webpack-dev-server --config config/webpack.config.js
215
236
  ```
216
237
 
217
- * In foreman directory, run in a new terminal the webpack-dev-server:
238
+ * Or without webpack-dev-server, add this line in config/settings.yml:
239
+
240
+ ```yml
241
+ :webpack_dev_server: false
242
+ ```
243
+
244
+ then compile webpack assets:
218
245
 
219
246
  ```shell
220
- ./node_modules/.bin/webpack-dev-server --config config/webpack.config.js
247
+ bundle exec bin/rake webpack:compile
248
+ ```
249
+
250
+ * In foreman directory, run rails server:
251
+
252
+ ```shell
253
+ bundle exec bin/rails server
221
254
  ```
222
255
 
223
256
  * Or you can launch all together:
@@ -232,8 +265,9 @@ See details in [foreman plugin development](https://projects.theforeman.org/proj
232
265
 
233
266
  If you like it and still want to improve it, [sponsor me](https://github.com/sponsors/tristanrobert)!
234
267
 
235
- You can reach the [contributors](.github/CONTRIBUTORS.md).
236
- Bug reports and pull requests are welcome on GitHub at [ForemanFogProxmox](https://github.com/theforeman/foreman_fog_proxmox).
268
+ * You can reach the [contributors](.github/CONTRIBUTORS.md).
269
+ * [Translate it in your favorite language](https://www.transifex.com/foreman/foreman/foreman_fog_proxmox/)
270
+ * Bug reports and pull requests are welcome on GitHub at [ForemanFogProxmox](https://github.com/theforeman/foreman_fog_proxmox).
237
271
 
238
272
  Please read more information about [how to contribute](.github/CONTRIBUTING.md).
239
273
 
@@ -122,26 +122,4 @@ function computeControllerMaxDevice(controller) {
122
122
  default:
123
123
  return 1;
124
124
  }
125
- }
126
-
127
- function balloonSelected(item) {
128
- var ballooned = $(item).is(':checked');
129
- var memory_f = $("input[name$='[config_attributes][memory]']:hidden");
130
- var min_memory_f = $("input[id$='config_attributes_min_memory']");
131
- var min_memory_hidden_f = $("input[name$='[config_attributes][min_memory]']:hidden");
132
- var shares_f = $("input[id$='config_attributes_shares']");
133
- var shares_hidden_f = $("input[name$='[config_attributes][shares]']:hidden");
134
- if (ballooned) {
135
- min_memory_f.removeAttr('disabled');
136
- shares_f.removeAttr('disabled');
137
- var max = memory_f.val();
138
- console.log("max=" + max);
139
- min_memory_f.attr('data-soft-max', max);
140
- } else {
141
- min_memory_f.attr('disabled', 'disabled');
142
- min_memory_hidden_f.attr('value', '');
143
- shares_f.attr('disabled', 'disabled');
144
- shares_hidden_f.attr('value', '');
145
- }
146
- tfm.numFields.initAll();
147
125
  }
@@ -47,6 +47,15 @@ module ProxmoxComputeSelectorsHelper
47
47
  ForemanFogProxmox::OptionsSelect.new(name: 'VirtIO Block', id: 'virtio', range: 15)]
48
48
  end
49
49
 
50
+ def proxmox_scsi_controllers_map
51
+ [OpenStruct.new(id: 'lsi', name: 'LSI 53C895A (Default)'),
52
+ OpenStruct.new(id: 'lsi53c810', name: 'LSI 53C810'),
53
+ OpenStruct.new(id: 'virtio-scsi-pci', name: 'VirtIO SCSI'),
54
+ OpenStruct.new(id: 'virtio-scsi-single', name: 'VirtIO SCSI Single'),
55
+ OpenStruct.new(id: 'megasas', name: 'MegaRAID SAS 8708EM2'),
56
+ OpenStruct.new(id: 'pvscsi', name: 'VMware PVSCSI')]
57
+ end
58
+
50
59
  def proxmox_operating_systems_map
51
60
  [OpenStruct.new(id: 'other', name: 'Unspecified OS'),
52
61
  OpenStruct.new(id: 'wxp', name: 'Microsoft Windows XP'),
@@ -38,7 +38,7 @@ module ProxmoxServerHelper
38
38
  volumes = parse_server_volumes(vols)
39
39
  cpu_a = ['cpu_type', 'spectre', 'pcid']
40
40
  cpu = parse_server_cpu(config.select { |key, _value| cpu_a.include? key })
41
- memory_a = ['memory', 'min_memory', 'balloon', 'shares']
41
+ memory_a = ['memory', 'balloon', 'shares']
42
42
  memory = parse_server_memory(config.select { |key, _value| memory_a.include? key })
43
43
  interfaces_attributes = args['interfaces_attributes']
44
44
  interfaces_to_add, interfaces_to_delete = parse_server_interfaces(interfaces_attributes)
@@ -64,11 +64,7 @@ module ProxmoxServerHelper
64
64
  def parse_server_memory(args)
65
65
  memory = {}
66
66
  memory.store(:memory, args['memory'].to_i) if args['memory']
67
- ballooned = args['balloon'].to_i == 1
68
- if ballooned
69
- memory.store(:shares, args['shares'].to_i) if args['shares']
70
- memory.store(:min_memory, args['min_memory'].to_i) if args['min_memory']
71
- end
67
+ memory.store(:shares, args['shares'].to_i) if args['shares']
72
68
  memory.store(:balloon, args['balloon'].to_i) if args['balloon']
73
69
  logger.debug("parse_server_memory(): #{memory}")
74
70
  memory
@@ -59,7 +59,7 @@ module ProxmoxVmHelper
59
59
 
60
60
  def convert_memory_sizes(args)
61
61
  convert_memory_size(args['config_attributes'], 'memory')
62
- convert_memory_size(args['config_attributes'], 'min_memory')
62
+ convert_memory_size(args['config_attributes'], 'balloon')
63
63
  convert_memory_size(args['config_attributes'], 'shares')
64
64
  convert_memory_size(args['config_attributes'], 'swap')
65
65
  end
@@ -70,7 +70,7 @@ module ProxmoxVmHelper
70
70
 
71
71
  def convert_sizes(args)
72
72
  convert_memory_size(args['config_attributes'], 'memory')
73
- convert_memory_size(args['config_attributes'], 'min_memory')
73
+ convert_memory_size(args['config_attributes'], 'balloon')
74
74
  convert_memory_size(args['config_attributes'], 'shares')
75
75
  convert_memory_size(args['config_attributes'], 'swap')
76
76
  args['volumes_attributes'].each_value { |value| value['size'] = (value['size'].to_i / GIGA).to_s unless ForemanFogProxmox::Value.empty?(value['size']) }
@@ -77,6 +77,7 @@ module FogExtensions
77
77
  end
78
78
 
79
79
  delegate :vga, to: :config
80
+ delegate :pool, to: :config
80
81
 
81
82
  def interfaces_attributes=(attrs); end
82
83
 
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2019 Tristan Robert
4
+
5
+ # This file is part of ForemanFogProxmox.
6
+
7
+ # ForemanFogProxmox is free software: you can redistribute it and/or modify
8
+ # it under the terms of the GNU General Public License as published by
9
+ # the Free Software Foundation, either version 3 of the License, or
10
+ # (at your option) any later version.
11
+
12
+ # ForemanFogProxmox is distributed in the hope that it will be useful,
13
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ # GNU General Public License for more details.
16
+
17
+ # You should have received a copy of the GNU General Public License
18
+ # along with ForemanFogProxmox. If not, see <http://www.gnu.org/licenses/>.
19
+
20
+ module ForemanFogProxmox
21
+ module ProxmoxPools
22
+ def pools
23
+ pools = identity_client.pools.all
24
+ pools.sort_by(&:poolid)
25
+ end
26
+
27
+ def pool_owner(vm)
28
+ logger.debug(format(_('pool_owner(%<vmid>s)'), vmid: vm&.vmid))
29
+ pools_owners = pools.select { |pool| pool.has_server?(vm&.vmid) }
30
+ pool = pools_owners.first
31
+ logger.debug(format(_('found vm: %<vmid>s member of pool: %<poolid>s'), vmid: vm&.vmid, poolid: pool&.poolid))
32
+ vm&.config&.pool = pool&.poolid
33
+ end
34
+
35
+ def add_vm_to_pool(poolid, vmid)
36
+ logger.debug(format(_('add_vm_to_pool(%<poolid>s, %<vmid>s)'), poolid: poolid, vmid: vmid))
37
+ pool = identity_client.pools.get poolid
38
+ pool&.add_server vmid
39
+ end
40
+
41
+ def remove_vm_from_pool(poolid, vmid)
42
+ logger.debug(format(_('remove_vm_from_pool(%<poolid>s, %<vmid>s)'), poolid: poolid, vmid: vmid))
43
+ pool = identity_client.pools.get poolid
44
+ pool&.remove_server vmid
45
+ end
46
+
47
+ def update_pool(vm, poolid)
48
+ pool_owner(vm)
49
+ vm_pool = vm.config.pool || ''
50
+ return if vm_pool.eql?(poolid)
51
+
52
+ remove_vm_from_pool(vm_pool, vm.vmid)
53
+ add_vm_to_pool(poolid, vm.vmid)
54
+ end
55
+ end
56
+ end
@@ -20,6 +20,7 @@
20
20
  module ForemanFogProxmox
21
21
  module ProxmoxVmCommands
22
22
  include ProxmoxVolumes
23
+ include ProxmoxPools
23
24
 
24
25
  def start_on_boot(vm, args)
25
26
  startonboot = args[:start_after_create].blank? ? false : Foreman::Cast.to_bool(args[:start_after_create])
@@ -100,11 +101,13 @@ module ForemanFogProxmox
100
101
  volumes_attributes&.each_value { |volume_attributes| save_volume(vm, volume_attributes) }
101
102
  parsed_attr = vm.container? ? parse_container_vm(new_attributes.merge(type: vm.type)) : parse_server_vm(new_attributes.merge(type: vm.type))
102
103
  logger.debug("parsed_attr=#{parsed_attr}")
103
- config_attributes = parsed_attr.reject { |key, _value| [:vmid, :templated, :ostemplate, :ostemplate_file, :ostemplate_storage, :volumes_attributes].include? key.to_sym }
104
+ config_attributes = parsed_attr.reject { |key, _value| [:vmid, :templated, :ostemplate, :ostemplate_file, :ostemplate_storage, :volumes_attributes, :pool].include? key.to_sym }
104
105
  config_attributes = config_attributes.reject { |_key, value| ForemanFogProxmox::Value.empty?(value) }
105
106
  cdrom_attributes = parsed_attr.select { |_key, value| Fog::Proxmox::DiskHelper.cdrom?(value.to_s) }
106
107
  config_attributes = config_attributes.reject { |key, _value| Fog::Proxmox::DiskHelper.disk?(key) }
107
108
  vm.update(config_attributes.merge(cdrom_attributes))
109
+ poolid = new_attributes['pool'] if new_attributes.key?('pool')
110
+ update_pool(vm, poolid) if poolid
108
111
  end
109
112
  find_vm_by_uuid(uuid)
110
113
  end
@@ -39,9 +39,9 @@ module ForemanFogProxmox
39
39
  type ||= 'qemu'
40
40
  case type
41
41
  when 'lxc'
42
- return new_volume_server(attr)
42
+ new_volume_server(attr)
43
43
  when 'qemu'
44
- return new_volume_container(attr)
44
+ new_volume_container(attr)
45
45
  end
46
46
  end
47
47
 
@@ -74,9 +74,9 @@ module ForemanFogProxmox
74
74
  type ||= 'qemu'
75
75
  case type
76
76
  when 'lxc'
77
- return new_container_interface(attr)
77
+ new_container_interface(attr)
78
78
  when 'qemu'
79
- return new_server_interface(attr)
79
+ new_server_interface(attr)
80
80
  end
81
81
  end
82
82
 
@@ -19,16 +19,13 @@
19
19
 
20
20
  module ForemanFogProxmox
21
21
  module ProxmoxVmQueries
22
+ include ProxmoxPools
23
+
22
24
  def nodes
23
25
  nodes = client.nodes.all if client
24
26
  nodes&.sort_by(&:node)
25
27
  end
26
28
 
27
- def pools
28
- pools = identity_client.pools.all
29
- pools.sort_by(&:poolid)
30
- end
31
-
32
29
  def storages(node_id = default_node_id, type = 'images')
33
30
  node = client.nodes.get node_id
34
31
  node ||= default_node
@@ -65,12 +62,14 @@ module ForemanFogProxmox
65
62
  end
66
63
 
67
64
  def find_vm_in_servers_by_uuid(servers, uuid)
68
- servers.get(uuid) if !uuid.nil? && !uuid.to_s.empty?
65
+ vm = servers.get(uuid) if !uuid.nil? && !uuid.to_s.empty?
66
+ pool_owner(vm) if vm
67
+ vm
69
68
  rescue Fog::Errors::NotFound
70
69
  nil
71
70
  rescue StandardError => e
72
71
  Foreman::Logging.exception(format(_('Failed retrieving proxmox server vm by vmid=%<vmid>s'), vmid: uuid), e)
73
- raise(ActiveRecord::RecordNotFound)
72
+ raise(ActiveRecord::RecordNotFound, e)
74
73
  end
75
74
  end
76
75
  end
@@ -1,3 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- attributes :user, :url, :ssl_verify_peer, :disable_proxy
3
+ attributes :url, :user, :password, :ssl_verify_peer, :ssl_certs, :renew
@@ -35,4 +35,5 @@ along with ForemanFogProxmox. If not, see <http://www.gnu.org/licenses/>. %>
35
35
  :label_size => "col-md-2" %>
36
36
  </div>
37
37
  <% end %>
38
+ <%= select_f f, :pool, compute_resource.pools, :poolid, :poolid, { :include_blank => true }, :label => _('Pool'), :label_size => "col-md-2", :required => false %>
38
39
  <% end %>
@@ -27,6 +27,7 @@ along with ForemanFogProxmox. If not, see <http://www.gnu.org/licenses/>. %>
27
27
  <%= checkbox_f f, :kvm, :label => _('KVM'), :label_help => _('Enable/disable KVM hardware virtualization') %>
28
28
  <%= select_f f, :keyboard, proxmox_keyboards_map, :id, :name, { }, :label => _('Keyboard'), :label_size => "col-md-2" %>
29
29
  <%= select_f f, :vga, proxmox_vgas_map, :id, :name, { :include_blank => true }, :label => _('VGA'), :label_size => "col-md-2" %>
30
+ <%= select_f f, :scsihw, proxmox_scsi_controllers_map, :id, :name, { }, :label => _('SCSI Controller'), :label_size => "col-md-2" %>
30
31
  <% end %>
31
32
  <%= field_set_tag _("CPU"), :id => "server_config_cpu", :class => 'hide', :disabled => !server do %>
32
33
  <%= select_f f, :cpu_type, proxmox_cpus_map, :id, :name, { }, :label => _('Type'), :label_size => "col-md-2" %>
@@ -40,11 +41,9 @@ along with ForemanFogProxmox. If not, see <http://www.gnu.org/licenses/>. %>
40
41
  <%= checkbox_f f, :spectre, :label => _('Spectre-CTRL') %>
41
42
  <% end %>
42
43
  <%= field_set_tag _("Memory"), :id => "server_config_memory", :class => 'hide', :disabled => !server do %>
43
- <% ballooned = f.object.balloon == 1 %>
44
44
  <%= byte_size_f f, :memory, :class => "input-mini", :label => _('Memory'), :label_size => "col-md-2" %>
45
- <%= byte_size_f f, :min_memory, :class => "input-mini", :label => _('Minimum memory'), :label_size => "col-md-2", :disabled => !ballooned %>
46
- <%= counter_f f, :shares, :class => "input-mini", :label => _('Shares'), :label_size => "col-md-2", :disabled => !ballooned %>
47
- <%= checkbox_f f, :balloon, :label => _('Ballooning Device'), :onchange => 'balloonSelected(this)' %>
45
+ <%= byte_size_f f, :balloon, :class => "input-mini", :label => _('Minimum memory'), :label_size => "col-md-2" %>
46
+ <%= counter_f f, :shares, :class => "input-mini", :label => _('Shares'), :label_size => "col-md-2" %>
48
47
  <% end %>
49
48
  <%= field_set_tag _("CD-ROM"), :id => "server_config_cdrom", :class => 'hide', :disabled => !server do %>
50
49
  <%= radio_button_f f, :cdrom, :value => 'none', :text => _('None'), :onclick => 'cdromSelected(this)' %>
@@ -26,6 +26,7 @@ along with ForemanFogProxmox. If not, see <http://www.gnu.org/licenses/>. %>
26
26
  <%= prop :type %>
27
27
  <%= prop :node_id %>
28
28
  <%= prop :templated? %>
29
+ <%= prop :pool %>
29
30
  <%= prop :memory %>
30
31
  <% unless @vm.container? %>
31
32
  <%= prop :vga %>
@@ -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.10.2'
21
+ VERSION = '0.11.0'
22
22
  end
@@ -65,6 +65,22 @@ msgstr ""
65
65
  msgid "create_vm(): clone %<image_id>s in %<vmid>s"
66
66
  msgstr ""
67
67
 
68
+ #: ../app/models/foreman_fog_proxmox/proxmox_pools.rb:28
69
+ msgid "pool_owner(%<vmid>s)"
70
+ msgstr ""
71
+
72
+ #: ../app/models/foreman_fog_proxmox/proxmox_pools.rb:31
73
+ msgid "found vm: %<vmid>s member of pool: %<poolid>s"
74
+ msgstr ""
75
+
76
+ #: ../app/models/foreman_fog_proxmox/proxmox_pools.rb:36
77
+ msgid "add_vm_to_pool(%<poolid>s, %<vmid>s)"
78
+ msgstr ""
79
+
80
+ #: ../app/models/foreman_fog_proxmox/proxmox_pools.rb:42
81
+ msgid "remove_vm_from_pool(%<poolid>s, %<vmid>s)"
82
+ msgstr ""
83
+
68
84
  #: ../app/models/foreman_fog_proxmox/proxmox_version.rb:25
69
85
  msgid "Proxmox compute resource version is %<version>s"
70
86
  msgstr ""
@@ -73,11 +89,11 @@ msgstr ""
73
89
  msgid "Proxmox version %<version>s is not semver suitable"
74
90
  msgstr ""
75
91
 
76
- #: ../app/models/foreman_fog_proxmox/proxmox_vm_commands.rb:34
92
+ #: ../app/models/foreman_fog_proxmox/proxmox_vm_commands.rb:35
77
93
  msgid "invalid vmid=%<vmid>s"
78
94
  msgstr ""
79
95
 
80
- #: ../app/models/foreman_fog_proxmox/proxmox_vm_commands.rb:53
96
+ #: ../app/models/foreman_fog_proxmox/proxmox_vm_commands.rb:54
81
97
  msgid "failed to create vm: %<e>s"
82
98
  msgstr ""
83
99
 
@@ -93,7 +109,7 @@ msgstr ""
93
109
  msgid "new_server_vm() vm.config=%<config>s"
94
110
  msgstr ""
95
111
 
96
- #: ../app/models/foreman_fog_proxmox/proxmox_vm_queries.rb:72
112
+ #: ../app/models/foreman_fog_proxmox/proxmox_vm_queries.rb:71
97
113
  msgid "Failed retrieving proxmox server vm by vmid=%<vmid>s"
98
114
  msgstr ""
99
115
 
@@ -165,7 +181,7 @@ msgstr ""
165
181
  msgid "add new storage volume"
166
182
  msgstr ""
167
183
 
168
- #: ../app/views/compute_resources_vms/form/proxmox/_base.html.erb:6 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:17 ../app/views/compute_resources_vms/index/_proxmox.html.erb:8
184
+ #: ../app/views/compute_resources_vms/form/proxmox/_base.html.erb:6 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:18 ../app/views/compute_resources_vms/index/_proxmox.html.erb:8
169
185
  msgid "Type"
170
186
  msgstr ""
171
187
 
@@ -189,10 +205,14 @@ msgstr ""
189
205
  msgid "Start after creation?"
190
206
  msgstr ""
191
207
 
192
- #: ../app/views/compute_resources_vms/form/proxmox/_general.html.erb:19 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:37
208
+ #: ../app/views/compute_resources_vms/form/proxmox/_general.html.erb:19 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:36
193
209
  msgid "Image"
194
210
  msgstr ""
195
211
 
212
+ #: ../app/views/compute_resources_vms/form/proxmox/_general.html.erb:23
213
+ msgid "Pool"
214
+ msgstr ""
215
+
196
216
  #: ../app/views/compute_resources_vms/form/proxmox/container/_advanced.html.erb:5 ../app/views/compute_resources_vms/form/proxmox/server/_advanced.html.erb:5
197
217
  msgid "Advanced"
198
218
  msgstr ""
@@ -203,11 +223,11 @@ msgid_plural "Main options"
203
223
  msgstr[0] ""
204
224
  msgstr[1] ""
205
225
 
206
- #: ../app/views/compute_resources_vms/form/proxmox/container/_advanced.html.erb:8 ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:9 ../app/views/compute_resources_vms/form/proxmox/server/_advanced.html.erb:8 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:16
226
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_advanced.html.erb:8 ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:9 ../app/views/compute_resources_vms/form/proxmox/server/_advanced.html.erb:8 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:17
207
227
  msgid "CPU"
208
228
  msgstr ""
209
229
 
210
- #: ../app/views/compute_resources_vms/form/proxmox/container/_advanced.html.erb:10 ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:15 ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:16 ../app/views/compute_resources_vms/form/proxmox/server/_advanced.html.erb:10 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:27 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:29 ../app/views/compute_resources_vms/index/_proxmox.html.erb:10
230
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_advanced.html.erb:10 ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:15 ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:16 ../app/views/compute_resources_vms/form/proxmox/server/_advanced.html.erb:10 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:28 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:29 ../app/views/compute_resources_vms/index/_proxmox.html.erb:10
211
231
  msgid "Memory"
212
232
  msgstr ""
213
233
 
@@ -231,15 +251,15 @@ msgstr ""
231
251
  msgid "Architecture"
232
252
  msgstr ""
233
253
 
234
- #: ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:11 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:19
254
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:11 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:20
235
255
  msgid "Cores"
236
256
  msgstr ""
237
257
 
238
- #: ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:12 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:21
258
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:12 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:22
239
259
  msgid "CPU limit"
240
260
  msgstr ""
241
261
 
242
- #: ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:13 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:22
262
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:13 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:23
243
263
  msgid "CPU units"
244
264
  msgstr ""
245
265
 
@@ -259,11 +279,11 @@ msgstr ""
259
279
  msgid "Search domain"
260
280
  msgstr ""
261
281
 
262
- #: ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:24 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:43
282
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:24 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:42
263
283
  msgid "Operating System"
264
284
  msgstr ""
265
285
 
266
- #: ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:25 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:44
286
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:25 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:43
267
287
  msgid "OS type"
268
288
  msgstr ""
269
289
 
@@ -331,7 +351,7 @@ msgstr ""
331
351
  msgid "Mount point"
332
352
  msgstr ""
333
353
 
334
- #: ../app/views/compute_resources_vms/form/proxmox/container/_volume_mp.html.erb:8 ../app/views/compute_resources_vms/form/proxmox/container/_volume_rootfs.html.erb:7 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:39 ../app/views/compute_resources_vms/form/proxmox/server/_volume.html.erb:8
354
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_volume_mp.html.erb:8 ../app/views/compute_resources_vms/form/proxmox/container/_volume_rootfs.html.erb:7 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:38 ../app/views/compute_resources_vms/form/proxmox/server/_volume.html.erb:8
335
355
  msgid "Storage"
336
356
  msgstr ""
337
357
 
@@ -387,23 +407,27 @@ msgstr ""
387
407
  msgid "VGA"
388
408
  msgstr ""
389
409
 
390
- #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:18
410
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:15
411
+ msgid "SCSI Controller"
412
+ msgstr ""
413
+
414
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:19
391
415
  msgid "Sockets"
392
416
  msgstr ""
393
417
 
394
- #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:20
418
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:21
395
419
  msgid "VCPUs"
396
420
  msgstr ""
397
421
 
398
- #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:23
422
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:24
399
423
  msgid "Enable NUMA"
400
424
  msgstr ""
401
425
 
402
- #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:24
426
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:25
403
427
  msgid "PCID"
404
428
  msgstr ""
405
429
 
406
- #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:25
430
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:26
407
431
  msgid "Spectre-CTRL"
408
432
  msgstr ""
409
433
 
@@ -415,23 +439,19 @@ msgstr ""
415
439
  msgid "Shares"
416
440
  msgstr ""
417
441
 
418
- #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:32
419
- msgid "Ballooning Device"
420
- msgstr ""
421
-
422
- #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:34
442
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:33
423
443
  msgid "CD-ROM"
424
444
  msgstr ""
425
445
 
426
- #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:35
446
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:34
427
447
  msgid "None"
428
448
  msgstr ""
429
449
 
430
- #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:36
450
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:35
431
451
  msgid "Physical"
432
452
  msgstr ""
433
453
 
434
- #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:40
454
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:39
435
455
  msgid "Image ISO"
436
456
  msgstr ""
437
457