foreman_fog_proxmox 0.4.0 → 0.5.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 (67) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +24 -12
  3. data/app/assets/javascripts/foreman_fog_proxmox/proxmox_compute_resource.js +26 -0
  4. data/app/assets/javascripts/foreman_fog_proxmox/proxmox_vm.js +92 -0
  5. data/app/assets/javascripts/foreman_fog_proxmox/proxmox_vm_container.js +60 -0
  6. data/app/assets/javascripts/foreman_fog_proxmox/{proxmox.js → proxmox_vm_server.js} +10 -10
  7. data/app/controllers/concerns/foreman_fog_proxmox/controller/parameters/compute_resource.rb +1 -1
  8. data/app/controllers/foreman_fog_proxmox/compute_resources_controller.rb +9 -1
  9. data/app/helpers/node_dashboard_helper.rb +36 -0
  10. data/app/helpers/proxmox_compute_selectors_helper.rb +23 -0
  11. data/app/helpers/proxmox_container_helper.rb +157 -0
  12. data/app/helpers/proxmox_form_helper.rb +67 -0
  13. data/app/helpers/{proxmox_compute_helper.rb → proxmox_server_helper.rb} +49 -38
  14. data/app/helpers/proxmox_vm_helper.rb +86 -0
  15. data/app/models/concerns/fog_extensions/proxmox/container.rb +57 -0
  16. data/{test/factories/foreman_fog_proxmox_factories.rb → app/models/concerns/fog_extensions/proxmox/container_config.rb} +16 -13
  17. data/app/models/concerns/fog_extensions/proxmox/server.rb +8 -2
  18. data/app/models/foreman_fog_proxmox/proxmox.rb +160 -67
  19. data/app/overrides/compute_resources_vms/form/add_clone_to_new_vm_compute_detail.rb +24 -0
  20. data/app/overrides/compute_resources_vms/form/add_vm_type_to_networks_form.rb +32 -0
  21. data/app/overrides/compute_resources_vms/form/add_vm_type_to_nic_provider_specific_form.rb +25 -0
  22. data/app/overrides/compute_resources_vms/form/add_vm_type_to_volumes_edit.rb +24 -0
  23. data/app/overrides/compute_resources_vms/form/add_vm_type_to_volumes_new_volume.rb +24 -0
  24. data/app/services/foreman_fog_proxmox/node_dashboard/data.rb +37 -0
  25. data/app/views/compute_resources/form/_proxmox.html.erb +7 -4
  26. data/app/views/compute_resources_vms/form/proxmox/_add_vm_type_to_networks_form.html.erb +23 -0
  27. data/app/views/compute_resources_vms/form/proxmox/_add_vm_type_to_networks_new_childs_form.html.erb +25 -0
  28. data/app/views/compute_resources_vms/form/proxmox/_add_vm_type_to_nic_provider_specific_form.html.erb +23 -0
  29. data/app/views/compute_resources_vms/form/proxmox/_add_vm_type_to_volumes_edit.html.erb +73 -0
  30. data/app/views/compute_resources_vms/form/proxmox/_base.html.erb +16 -23
  31. data/app/views/compute_resources_vms/form/proxmox/_general.html.erb +37 -0
  32. data/app/views/compute_resources_vms/form/proxmox/_network.html.erb +2 -7
  33. data/app/views/compute_resources_vms/form/proxmox/container/_advanced.html.erb +31 -0
  34. data/app/views/compute_resources_vms/form/proxmox/container/_config.html.erb +41 -0
  35. data/app/views/compute_resources_vms/form/proxmox/container/_extended.html.erb +26 -0
  36. data/app/views/compute_resources_vms/form/proxmox/container/_network.html.erb +25 -0
  37. data/app/views/compute_resources_vms/form/proxmox/container/_volume_mp.html.erb +25 -0
  38. data/app/views/compute_resources_vms/form/proxmox/container/_volume_rootfs.html.erb +24 -0
  39. data/app/views/compute_resources_vms/form/proxmox/server/_advanced.html.erb +31 -0
  40. data/app/views/compute_resources_vms/form/proxmox/{_config.html.erb → server/_config.html.erb} +11 -8
  41. data/app/views/compute_resources_vms/form/proxmox/server/_network.html.erb +29 -0
  42. data/app/views/compute_resources_vms/form/proxmox/server/_volume.html.erb +27 -0
  43. data/app/views/compute_resources_vms/index/_proxmox.html.erb +4 -2
  44. data/app/views/compute_resources_vms/show/_proxmox.html.erb +9 -2
  45. data/app/views/dashboard/_foreman_fog_proxmox_widget.erb +4 -2
  46. data/app/views/images/form/_proxmox.html.erb +17 -0
  47. data/config/routes.rb +1 -0
  48. data/lib/foreman_fog_proxmox/engine.rb +10 -3
  49. data/lib/foreman_fog_proxmox/value.rb +24 -0
  50. data/lib/foreman_fog_proxmox/version.rb +1 -1
  51. data/locale/en/foreman_fog_proxmox.edit.po +456 -0
  52. data/locale/en/foreman_fog_proxmox.po +327 -11
  53. data/locale/en/foreman_fog_proxmox.po.time_stamp +0 -0
  54. data/locale/foreman_fog_proxmox.pot +515 -8
  55. data/locale/fr/foreman_fog_proxmox.edit.po +456 -0
  56. data/locale/fr/foreman_fog_proxmox.po +327 -11
  57. data/locale/fr/foreman_fog_proxmox.po.time_stamp +0 -0
  58. data/test/factories/proxmox_factory.rb +72 -0
  59. data/test/functional/compute_resources_controller_test.rb +34 -0
  60. data/test/unit/foreman_fog_proxmox/helpers/proxmox_container_helper_test.rb +205 -0
  61. data/test/{helpers/proxmox_compute_helper_test.rb → unit/foreman_fog_proxmox/helpers/proxmox_server_helper_test.rb} +36 -28
  62. data/test/unit/foreman_fog_proxmox/helpers/proxmox_vm_helper_test.rb +240 -0
  63. data/test/unit/foreman_fog_proxmox/proxmox_test.rb +327 -0
  64. data/test/unit/foreman_fog_proxmox/proxmox_test_helpers.rb +251 -0
  65. metadata +83 -14
  66. data/app/views/compute_resources_vms/form/proxmox/_volume.html.erb +0 -23
  67. data/test/unit/foreman_fog_proxmox_test.rb +0 -11
@@ -0,0 +1,25 @@
1
+ <%# Copyright 2018 Tristan Robert
2
+
3
+ This file is part of ForemanFogProxmox.
4
+
5
+ ForemanFogProxmox is free software: you can redistribute it and/or modify
6
+ it under the terms of the GNU General Public License as published by
7
+ the Free Software Foundation, either version 3 of the License, or
8
+ (at your option) any later version.
9
+
10
+ ForemanFogProxmox is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU General Public License for more details.
14
+
15
+ You should have received a copy of the GNU General Public License
16
+ along with ForemanFogProxmox. If not, see <http://www.gnu.org/licenses/>. %>
17
+
18
+ <% container = type == 'lxc' %>
19
+
20
+ <%= field_set_tag _("Nic"), :id => "container_network", :style => ('display: none;' unless container), :disabled => !container do %>
21
+ <%= text_f f, :name, :label => _('Name'), :label_size => "col-md-2" %>
22
+ <%= counter_f f, :tag, :class => "input-mini", :label => _('VLAN tag'), :label_size => "col-md-2" %>
23
+ <%= counter_f f, :rate, :class => "input-mini", :label => _('Rate limit'), :label_size => "col-md-2" %>
24
+ <%= select_f f, :bridge, compute_resource.bridges, :iface, :iface, { }, :label => _('Bridge'), :label_size => "col-md-2" %>
25
+ <% end %>
@@ -0,0 +1,25 @@
1
+ <%# Copyright 2018 Tristan Robert
2
+
3
+ This file is part of ForemanFogProxmox.
4
+
5
+ ForemanFogProxmox is free software: you can redistribute it and/or modify
6
+ it under the terms of the GNU General Public License as published by
7
+ the Free Software Foundation, either version 3 of the License, or
8
+ (at your option) any later version.
9
+
10
+ ForemanFogProxmox is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU General Public License for more details.
14
+
15
+ You should have received a copy of the GNU General Public License
16
+ along with ForemanFogProxmox. If not, see <http://www.gnu.org/licenses/>. %>
17
+
18
+ <% container = type == 'lxc' %>
19
+
20
+ <%= field_set_tag _("Mount point"), :id => "container_volume_#{f.index}", :class => ('hide' unless container), :disabled => !container do %>
21
+ <%= f.hidden_field :volid if !new_vm %>
22
+ <%= select_f f, :storage, compute_resource.storages, :storage, :storage, { }, :label => _('Storage'), :label_size => "col-md-2", :disabled => !new_vm %>
23
+ <%= counter_f f, :device, :label => _('Device'), :label_size => "col-md-2", :class => ('hide' if f.object.rootfs?), :disabled => (!new_vm || f.object.rootfs?), :'data-soft-max' => 10 %>
24
+ <%= byte_size_f f, :size, :class => "input-mini", :label => _("Size"), :label_size => "col-md-2", :disabled => !new_vm %>
25
+ <% end %>
@@ -0,0 +1,24 @@
1
+ <%# Copyright 2018 Tristan Robert
2
+
3
+ This file is part of ForemanFogProxmox.
4
+
5
+ ForemanFogProxmox is free software: you can redistribute it and/or modify
6
+ it under the terms of the GNU General Public License as published by
7
+ the Free Software Foundation, either version 3 of the License, or
8
+ (at your option) any later version.
9
+
10
+ ForemanFogProxmox is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU General Public License for more details.
14
+
15
+ You should have received a copy of the GNU General Public License
16
+ along with ForemanFogProxmox. If not, see <http://www.gnu.org/licenses/>. %>
17
+
18
+ <% container = type == 'lxc' %>
19
+
20
+ <%= field_set_tag _("Rootfs"), :id => "container_volume_#{f.index}", :class => ('hide' unless container), :disabled => !container do %>
21
+ <%= f.hidden_field :volid if !new_vm %>
22
+ <%= select_f f, :storage, compute_resource.storages, :storage, :storage, { }, :label => _('Storage'), :label_size => "col-md-2", :disabled => !new_vm %>
23
+ <%= byte_size_f f, :size, :class => "input-mini", :label => _("Size"), :label_size => "col-md-2", :disabled => !new_vm %>
24
+ <% end %>
@@ -0,0 +1,31 @@
1
+ <%# Copyright 2018 Tristan Robert
2
+
3
+ This file is part of ForemanFogProxmox.
4
+
5
+ ForemanFogProxmox is free software: you can redistribute it and/or modify
6
+ it under the terms of the GNU General Public License as published by
7
+ the Free Software Foundation, either version 3 of the License, or
8
+ (at your option) any later version.
9
+
10
+ ForemanFogProxmox is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU General Public License for more details.
14
+
15
+ You should have received a copy of the GNU General Public License
16
+ along with ForemanFogProxmox. If not, see <http://www.gnu.org/licenses/>. %>
17
+
18
+ <% server = f.object.type == 'qemu' %>
19
+
20
+ <%= field_set_tag _("Advanced"), :id => "server_config_advanced_options", :class => ('hide' unless server) do %>
21
+ <%= label_tag 'show_server_config_options', n_("Main option", "Main options", 2) %>
22
+ <%= check_box_tag 'show_server_config_options', '1', false, :onclick => "$('#server_config_options').toggle()" %>
23
+ <%= label_tag 'show_server_config_cpu', _("CPU") %>
24
+ <%= check_box_tag 'show_server_config_cpu', '1', false, :onclick => "$('#server_config_cpu').toggle()" %>
25
+ <%= label_tag 'show_server_config_memory', _("Memory") %>
26
+ <%= check_box_tag 'show_server_config_memory', '1', false, :onclick => "$('#server_config_memory').toggle()" %>
27
+ <%= label_tag 'show_server_config_cdrom', _("CDROM") %>
28
+ <%= check_box_tag 'show_server_config_cdrom', '1', false, :onclick => "$('#server_config_cdrom').toggle()" %>
29
+ <%= label_tag 'show_server_config_os', _("OS") %>
30
+ <%= check_box_tag 'show_server_config_os', '1', false, :onclick => "$('#server_config_os').toggle()" %>
31
+ <% end %>
@@ -15,16 +15,19 @@ GNU General Public License for more details.
15
15
  You should have received a copy of the GNU General Public License
16
16
  along with ForemanFogProxmox. If not, see <http://www.gnu.org/licenses/>. %>
17
17
 
18
- <%= field_set_tag _("Config options"), :id => "config_options" do %>
18
+ <%= javascript_include_tag 'foreman_fog_proxmox/proxmox_vm_server', "data-turbolinks-track" => true %>
19
+ <% server = type == 'qemu' %>
20
+
21
+ <%= field_set_tag n_("Main option", "Main options", 2), :id => "server_config_options", :class => 'hide', :disabled => !server do %>
19
22
  <%= textarea_f f, :description, :label => _('Description'), :label_size => "col-md-2" %>
20
23
  <%= text_f f, :boot, :label => _('Start/Shutdown order'), :label_size => "col-md-2" %>
21
24
  <%= checkbox_f f, :onboot, :label => _('Start at boot') %>
22
25
  <%= checkbox_f f, :agent, :label => _('Qemu Agent') %>
23
26
  <%= checkbox_f f, :kvm, :label => _('KVM'), :label_help => _('Enable/disable KVM hardware virtualization') %>
24
- <%= select_f f, :keyboard, proxmox_keyboards_map, :id, :name, { }, :label => _('Keyboard'), :label_size => "col-md-2" %>
27
+ <%= select_f f, :keyboard, proxmox_keyboards_map, :id, :name, { }, :label => _('Keyboard'), :label_size => "col-md-2" %>
25
28
  <%= select_f f, :vga, proxmox_vgas_map, :id, :name, { :include_blank => true }, :label => _('VGA'), :label_size => "col-md-2" %>
26
29
  <% end %>
27
- <%= field_set_tag _("CPU"), :id => "cpu" do %>
30
+ <%= field_set_tag _("CPU"), :id => "server_config_cpu", :class => 'hide', :disabled => !server do %>
28
31
  <%= select_f f, :cpu_type, proxmox_cpus_map, :id, :name, { }, :label => _('Type'), :label_size => "col-md-2" %>
29
32
  <%= counter_f f, :sockets, :class => "input-mini", :label => _('Sockets'), :label_size => "col-md-2" %>
30
33
  <%= counter_f f, :cores, :class => "input-mini", :label => _('Cores'), :label_size => "col-md-2" %>
@@ -35,21 +38,21 @@ along with ForemanFogProxmox. If not, see <http://www.gnu.org/licenses/>. %>
35
38
  <%= checkbox_f f, :pcid, :label => _('PCID') %>
36
39
  <%= checkbox_f f, :spectre, :label => _('Spectre-CTRL') %>
37
40
  <% end %>
38
- <%= field_set_tag _("Memory"), :id => "memory" do %>
41
+ <%= field_set_tag _("Memory"), :id => "server_config_memory", :class => 'hide', :disabled => !server do %>
39
42
  <%= byte_size_f f, :memory, :class => "input-mini", :label => _('Memory'), :label_size => "col-md-2" %>
40
43
  <%= byte_size_f f, :min_memory, :class => "input-mini", :label => _('Minimum memory'), :label_size => "col-md-2" %>
41
44
  <%= counter_f f, :shares, :class => "input-mini", :label => _('Shares'), :label_size => "col-md-2" %>
42
45
  <%= checkbox_f f, :balloon, :label => _('Ballooning Device') %>
43
46
  <% end %>
44
- <%= field_set_tag _("CD-ROM"), :id => "cdrom" do %>
47
+ <%= field_set_tag _("CD-ROM"), :id => "server_config_cdrom", :class => 'hide', :disabled => !server do %>
45
48
  <%= radio_button_f f, :cdrom, :value => 'none', :text => _('None'), :onclick => 'cdromSelected(this)' %>
46
49
  <%= radio_button_f f, :cdrom, :value => 'cdrom' , :text => _('Physical'), :onclick => 'cdromSelected(this)' %>
47
50
  <%= radio_button_f f, :cdrom, :value => 'image' , :text => _('Image'), :onclick => 'cdromSelected(this)' %>
48
51
  <div id='cdrom_image_form' class='<%= 'hide' if %[none cdrom].include? f.object.cdrom %>'>
49
- <%= select_f f, :cdrom_storage, compute_resource.storages_isos, :storage, :storage, { :include_blank => true }, :label => _('Storage'), :label_size => "col-md-2", :onchange => 'storageIsoSelected(this)' %>
50
- <%= select_f f, :cdrom_iso, compute_resource.isos(f.object.cdrom_storage), :volid, :volid, { :include_blank => true }, :label => _('Image ISO'), :label_size => "col-md-2" %>
52
+ <%= select_f f, :cdrom_storage, compute_resource.storages('iso'), :storage, :storage, { :include_blank => true }, :label => _('Storage'), :label_size => "col-md-2", :onchange => 'storageIsoSelected(this)' %>
53
+ <%= select_f f, :cdrom_iso, compute_resource.images_by_storage('iso',f.object.cdrom_storage), :volid, :volid, { :include_blank => true }, :label => _('Image ISO'), :label_size => "col-md-2" %>
51
54
  </div>
52
55
  <% end %>
53
- <%= field_set_tag _("Operating System"), :id => "config_os" do %>
56
+ <%= field_set_tag _("Operating System"), :id => "server_config_os", :class => 'hide', :disabled => !server do %>
54
57
  <%= select_f f, :ostype, proxmox_operating_systems_map, :id, :name, { :include_blank => true }, :label => _('OS type'), :label_size => "col-md-2" %>
55
58
  <% end %>
@@ -0,0 +1,29 @@
1
+ <%# Copyright 2018 Tristan Robert
2
+
3
+ This file is part of ForemanFogProxmox.
4
+
5
+ ForemanFogProxmox is free software: you can redistribute it and/or modify
6
+ it under the terms of the GNU General Public License as published by
7
+ the Free Software Foundation, either version 3 of the License, or
8
+ (at your option) any later version.
9
+
10
+ ForemanFogProxmox is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU General Public License for more details.
14
+
15
+ You should have received a copy of the GNU General Public License
16
+ along with ForemanFogProxmox. If not, see <http://www.gnu.org/licenses/>. %>
17
+
18
+
19
+ <% server = type == 'qemu' %>
20
+
21
+ <%= field_set_tag _("Nic"), :id => "server_network", :style => ('display: none;' unless server), :disabled => !server do %>
22
+ <%= select_f f, :model, proxmox_networkcards_map, :id, :name, { }, :label => _('Card'), :label_size => "col-md-2" %>
23
+ <%= select_f f, :bridge, compute_resource.bridges, :iface, :iface, { }, :label => _('Bridge'), :label_size => "col-md-2" %>
24
+ <%= counter_f f, :tag, :class => "input-mini", :label => _('VLAN tag'), :label_size => "col-md-2" %>
25
+ <%= counter_f f, :rate, :class => "input-mini", :label => _('Rate limit'), :label_size => "col-md-2" %>
26
+ <%= counter_f f, :queues, :class => "input-mini", :label => _('Multiqueue'), :label_size => "col-md-2" %>
27
+ <%= checkbox_f f, :firewall, :label => _('Firewall') %>
28
+ <%= checkbox_f f, :link_down, :label => _('Disconnect') %>
29
+ <% end %>
@@ -0,0 +1,27 @@
1
+ <%# Copyright 2018 Tristan Robert
2
+
3
+ This file is part of ForemanFogProxmox.
4
+
5
+ ForemanFogProxmox is free software: you can redistribute it and/or modify
6
+ it under the terms of the GNU General Public License as published by
7
+ the Free Software Foundation, either version 3 of the License, or
8
+ (at your option) any later version.
9
+
10
+ ForemanFogProxmox is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU General Public License for more details.
14
+
15
+ You should have received a copy of the GNU General Public License
16
+ along with ForemanFogProxmox. If not, see <http://www.gnu.org/licenses/>. %>
17
+
18
+ <% server = type == 'qemu' %>
19
+
20
+ <%= field_set_tag _("Disk"), :id => "server_volume_#{f.index}", :class => ('hide' unless server), :disabled => !server do %>
21
+ <%= f.hidden_field :volid if !new_vm %>
22
+ <%= select_f f, :storage, compute_resource.storages, :storage, :storage, { }, :label => _('Storage'), :label_size => "col-md-2", :disabled => !new_vm %>
23
+ <%= select_f f, :controller, proxmox_controllers_map, :id, :name, { }, :label => _('Controller'), :label_size => "col-md-2", :disabled => !new_vm, :onchange => 'controllerSelected(this)' %>
24
+ <%= counter_f f, :device, :label => _('Device'), :label_size => "col-md-2", :disabled => !new_vm, :'data-soft-max' => proxmox_max_device(f.object.controller) %>
25
+ <%= select_f f, :cache, proxmox_caches_map, :id, :name, { }, :label => _('Cache'), :label_size => "col-md-2" %>
26
+ <%= byte_size_f f, :size, :class => "input-mini", :label => _("Size"), :label_size => "col-md-2", :disabled => !new_vm %>
27
+ <% end %>
@@ -19,6 +19,7 @@ along with ForemanFogProxmox. If not, see <http://www.gnu.org/licenses/>. %>
19
19
  <thead>
20
20
  <tr>
21
21
  <th><%= _('Name') -%></th>
22
+ <th><%= _('Type') -%></th>
22
23
  <th><%= _('CPUs') -%></th>
23
24
  <th><%= _('Memory') -%></th>
24
25
  <th><%= _('Power') -%></th>
@@ -30,8 +31,9 @@ along with ForemanFogProxmox. If not, see <http://www.gnu.org/licenses/>. %>
30
31
  <% @vms.each do |vm| -%>
31
32
  <tr>
32
33
  <td><%= link_to_if_authorized vm.name, hash_for_compute_resource_vm_path(:compute_resource_id => @compute_resource, :id => vm.identity) %></td>
33
- <td><%= vm.cpus %></td>
34
- <td><%= (vm.memory.to_i / (1024 * 1024)).to_s %> MB</td>
34
+ <td><%= vm.type %></td>
35
+ <td><%= vm.maxcpu %></td>
36
+ <td><%= (vm.maxmem.to_i / (1024 * 1024)).to_s %> MB</td>
35
37
  <td> <span <%= vm_power_class(vm.ready?) %>> <%= vm_state(vm) %></span> </td>
36
38
  <td><%= vm.uptime %></td>
37
39
  <td>
@@ -23,14 +23,21 @@ along with ForemanFogProxmox. If not, see <http://www.gnu.org/licenses/>. %>
23
23
  </tr>
24
24
 
25
25
  <%= prop :name %>
26
+ <%= prop :type %>
26
27
  <%= prop :templated? %>
27
28
  <%= prop :mac %>
28
29
  <%= prop :memory %>
29
- <%= prop :vga %>
30
+ <% unless @vm.container? %>
31
+ <%= prop :vga %>
32
+ <% end %>
30
33
  <%= prop :cpus %>
31
34
  <%= prop :uptime %>
32
35
  <%= prop :vmid %>
33
36
  <%= prop :description %>
34
- <%= prop :disks %>
37
+ <% if @vm.container? %>
38
+ <%= prop :mount_points %>
39
+ <% else %>
40
+ <%= prop :disks %>
41
+ <% end %>
35
42
  </table>
36
43
  </div>
@@ -15,5 +15,7 @@ GNU General Public License for more details.
15
15
  You should have received a copy of the GNU General Public License
16
16
  along with ForemanFogProxmox. If not, see <http://www.gnu.org/licenses/>. %>
17
17
 
18
- <h4 class="header ca"><%= _('ForemanFogProxmox') %></h4>
19
- <%= _('Widget content') %>
18
+ <% data = ForemanFogProxmox::NodeDashboard::Data.new() %>
19
+ <% node = data.node.to_s rescue nil %>
20
+ <h4 class="header ca"><%= N_("Proxmox Node Statistics: %s") % node %></h4>
21
+ <%= render_node_statistics(data.statistics, :class => 'statistics-bar') rescue nil %>
@@ -1,3 +1,20 @@
1
+ <%# Copyright 2018 Tristan Robert
2
+
3
+ This file is part of ForemanFogProxmox.
4
+
5
+ ForemanFogProxmox is free software: you can redistribute it and/or modify
6
+ it under the terms of the GNU General Public License as published by
7
+ the Free Software Foundation, either version 3 of the License, or
8
+ (at your option) any later version.
9
+
10
+ ForemanFogProxmox is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU General Public License for more details.
14
+
15
+ You should have received a copy of the GNU General Public License
16
+ along with ForemanFogProxmox. If not, see <http://www.gnu.org/licenses/>. %>
17
+
1
18
  <%= text_f f, :username, :placeholder => "root", :help_inline => _("The user that is used to ssh into the instance, normally cloud-user, ubuntu, root etc") %>
2
19
  <%= password_f f, :password, :help_inline => _("Password to authenticate with - used for SSH finish step.") %>
3
20
  <%= checkbox_f f, :user_data, :help_inline => _("Does this image support user data input (e.g. via cloud-init)?") %>
data/config/routes.rb CHANGED
@@ -20,5 +20,6 @@
20
20
  Rails.application.routes.draw do
21
21
  namespace :foreman_fog_proxmox do
22
22
  match 'isos/:storage', :to => 'compute_resources#isos', :via => 'get'
23
+ match 'ostemplates/:storage', :to => 'compute_resources#ostemplates', :via => 'get'
23
24
  end
24
25
  end
@@ -17,6 +17,8 @@
17
17
  # You should have received a copy of the GNU General Public License
18
18
  # along with ForemanFogProxmox. If not, see <http://www.gnu.org/licenses/>.
19
19
 
20
+ require 'deface'
21
+
20
22
  module ForemanFogProxmox
21
23
  class Engine < ::Rails::Engine
22
24
  engine_name 'foreman_fog_proxmox'
@@ -25,6 +27,7 @@ module ForemanFogProxmox
25
27
  config.autoload_paths += Dir["#{config.root}/app/helpers/concerns"]
26
28
  config.autoload_paths += Dir["#{config.root}/app/models/concerns"]
27
29
  config.autoload_paths += Dir["#{config.root}/app/overrides"]
30
+ config.autoload_paths += Dir["#{config.root}/app/services"]
28
31
 
29
32
  # Add any db migrations
30
33
  initializer 'foreman_fog_proxmox.load_app_instance_data' do |app|
@@ -35,12 +38,12 @@ module ForemanFogProxmox
35
38
 
36
39
  initializer 'foreman_fog_proxmox.register_plugin', :before => :finisher_hook do |_app|
37
40
  Foreman::Plugin.register :foreman_fog_proxmox do
38
- requires_foreman '>= 1.17'
41
+ requires_foreman '>= 1.17.3'
39
42
  # Register Proxmox VE compute resource in foreman
40
43
  compute_resource ForemanFogProxmox::Proxmox
41
44
  parameter_filter(ComputeResource, :uuid)
42
45
  # add dashboard widget
43
- widget 'foreman_fog_proxmox_widget', name: N_('Foreman Proxmox plugin template widget'), sizex: 4, sizey: 1
46
+ widget 'foreman_fog_proxmox_widget', name: N_('Foreman Fog Proxmox widget'), sizex: 8, sizey: 1
44
47
  end
45
48
  end
46
49
 
@@ -49,7 +52,7 @@ module ForemanFogProxmox
49
52
  # content twice.
50
53
  assets_to_precompile =
51
54
  Dir.chdir(root) do
52
- Dir['app/assets/javascripts/**/*', 'app/assets/stylesheets/**/*'].map do |f|
55
+ Dir['app/assets/javascripts/foreman_fog_proxmox/**/*', 'app/assets/stylesheets/foreman_fog_proxmox/**/*'].map do |f|
53
56
  f.split(File::SEPARATOR, 4).last
54
57
  end
55
58
  end
@@ -78,11 +81,15 @@ module ForemanFogProxmox
78
81
  config.to_prepare do
79
82
  require 'fog/compute/proxmox/models/server'
80
83
  require 'fog/compute/proxmox/models/server_config'
84
+ require 'fog/compute/proxmox/models/container'
85
+ require 'fog/compute/proxmox/models/container_config'
81
86
  require 'fog/compute/proxmox/models/disk'
82
87
  require 'fog/compute/proxmox/models/volume'
83
88
 
84
89
  Fog::Compute::Proxmox::Server.send :include, FogExtensions::Proxmox::Server
85
90
  Fog::Compute::Proxmox::ServerConfig.send :include, FogExtensions::Proxmox::ServerConfig
91
+ Fog::Compute::Proxmox::Container.send :include, FogExtensions::Proxmox::Container
92
+ Fog::Compute::Proxmox::ContainerConfig.send :include, FogExtensions::Proxmox::ContainerConfig
86
93
  Fog::Compute::Proxmox::Disk.send :include, FogExtensions::Proxmox::Disk
87
94
  Fog::Compute::Proxmox::Volume.send :include, FogExtensions::Proxmox::Volume
88
95
  ::ComputeResourcesController.send :include, ForemanFogProxmox::Controller::Parameters::ComputeResource
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2018 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::Value
21
+ def self.empty?(value)
22
+ value == nil || value == ""
23
+ end
24
+ end
@@ -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.4.0'.freeze
21
+ VERSION = '0.5.0'.freeze
22
22
  end
@@ -0,0 +1,456 @@
1
+ # English translations for foreman_fog_proxmox package.
2
+ # Copyright (C) 2018 THE PACKAGE'S COPYRIGHT HOLDER
3
+ # This file is distributed under the same license as the foreman_fog_proxmox package.
4
+ # Tristan Robert <tristan.robert.44@gmail.com>, 2018.
5
+ #
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: foreman_fog_proxmox 1.0.0\n"
9
+ "Report-Msgid-Bugs-To: \n"
10
+ "PO-Revision-Date: 2018-07-17 15:16+0200\n"
11
+ "Last-Translator: Tristan Robert <tristan.robert.44@gmail.com>\n"
12
+ "Language-Team: English\n"
13
+ "Language: en\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
18
+ "\n"
19
+
20
+ #: ../app/helpers/node_dashboard_helper.rb:34
21
+ msgid "Time"
22
+ msgstr ""
23
+
24
+ #: ../app/helpers/node_dashboard_helper.rb:34
25
+ msgid "Average load (x100)"
26
+ msgstr ""
27
+
28
+ #: ../app/helpers/proxmox_form_helper.rb:34
29
+ msgid "Caps lock ON"
30
+ msgstr ""
31
+
32
+ #: ../app/helpers/proxmox_form_helper.rb:37
33
+ msgid "Change the password"
34
+ msgstr ""
35
+
36
+ #: ../app/helpers/proxmox_vm_helper.rb:78
37
+ msgid "Invalid uuid=[%{uuid}]."
38
+ msgstr ""
39
+
40
+ #: ../app/models/foreman_fog_proxmox/proxmox.rb:114
41
+ msgid "Operating system family %{type} is not consistent with %{ostype}"
42
+ msgstr ""
43
+
44
+ #: ../app/models/foreman_fog_proxmox/proxmox.rb:121
45
+ msgid "Identifier interface[%{index}] required."
46
+ msgstr ""
47
+
48
+ #: ../app/models/foreman_fog_proxmox/proxmox.rb:122
49
+ msgid "Invalid identifier interface[%{index}]. Must be net[n] with n integer >= 0"
50
+ msgstr ""
51
+
52
+ #: ../app/models/foreman_fog_proxmox/proxmox.rb:198
53
+ msgid "new_vm() vm.config=%{config}"
54
+ msgstr ""
55
+
56
+ #: ../app/models/foreman_fog_proxmox/proxmox.rb:204
57
+ msgid "new_container_vm() vm.config=%{config}"
58
+ msgstr ""
59
+
60
+ #: ../app/models/foreman_fog_proxmox/proxmox.rb:210
61
+ msgid "new_server_vm() vm.config=%{config}"
62
+ msgstr ""
63
+
64
+ #: ../app/models/foreman_fog_proxmox/proxmox.rb:217
65
+ msgid "invalid vmid=%{vmid}"
66
+ msgstr ""
67
+
68
+ #: ../app/models/foreman_fog_proxmox/proxmox.rb:221
69
+ msgid "create_vm(): clone %{image_id} in %{vmid}"
70
+ msgstr ""
71
+
72
+ #: ../app/models/foreman_fog_proxmox/proxmox.rb:225
73
+ msgid "create_vm(): %{args}"
74
+ msgstr ""
75
+
76
+ #: ../app/models/foreman_fog_proxmox/proxmox.rb:239
77
+ msgid "failed to create vm: %{e}"
78
+ msgstr ""
79
+
80
+ #: ../app/models/foreman_fog_proxmox/proxmox.rb:253
81
+ msgid "Failed retrieving proxmox vm by vmid=%{vmid} and type=%{type}"
82
+ msgstr ""
83
+
84
+ #: ../app/models/foreman_fog_proxmox/proxmox.rb:291
85
+ msgid "save_vm(): %{attr}"
86
+ msgstr ""
87
+
88
+ #: ../app/models/foreman_fog_proxmox/proxmox.rb:329
89
+ msgid "Unable to store X509 certificates"
90
+ msgstr ""
91
+
92
+ #: ../app/models/foreman_fog_proxmox/proxmox.rb:353
93
+ msgid "%s console is not supported at this time"
94
+ msgstr ""
95
+
96
+ #: ../app/views/compute_resources/form/_proxmox.html.erb:6
97
+ msgid "e.g. https://127.0.0.1:8006/api2/json"
98
+ msgstr ""
99
+
100
+ #: ../app/views/compute_resources/form/_proxmox.html.erb:6
101
+ msgid "Test failed"
102
+ msgstr ""
103
+
104
+ #: ../app/views/compute_resources/form/_proxmox.html.erb:7
105
+ msgid "e.g. root@pam"
106
+ msgstr ""
107
+
108
+ #: ../app/views/compute_resources/form/_proxmox.html.erb:9
109
+ msgid "SSL verify peer"
110
+ msgstr ""
111
+
112
+ #: ../app/views/compute_resources/form/_proxmox.html.erb:10
113
+ msgid "X509 Certification Authorities"
114
+ msgstr ""
115
+
116
+ #: ../app/views/compute_resources/form/_proxmox.html.erb:11
117
+ msgid "Optionally provide a CA, or a correctly ordered CA chain. If left blank, disable ssl_verify_peer."
118
+ msgstr ""
119
+
120
+ #: ../app/views/compute_resources/show/_proxmox.html.erb:4
121
+ msgid "URL"
122
+ msgstr ""
123
+
124
+ #: ../app/views/compute_resources_vms/form/proxmox/_add_vm_type_to_networks_form.html.erb:6 ../app/views/compute_resources_vms/form/proxmox/_add_vm_type_to_networks_new_childs_form.html.erb:8
125
+ msgid "remove network interface"
126
+ msgstr ""
127
+
128
+ #: ../app/views/compute_resources_vms/form/proxmox/_add_vm_type_to_volumes_edit.html.erb:11 ../app/views/compute_resources_vms/form/proxmox/_add_vm_type_to_volumes_edit.html.erb:16 ../app/views/compute_resources_vms/form/proxmox/_add_vm_type_to_volumes_edit.html.erb:23 ../app/views/compute_resources_vms/form/proxmox/_add_vm_type_to_volumes_edit.html.erb:30 ../app/views/compute_resources_vms/form/proxmox/_add_vm_type_to_volumes_edit.html.erb:37 ../app/views/compute_resources_vms/form/proxmox/_add_vm_type_to_volumes_edit.html.erb:39 ../app/views/compute_resources_vms/form/proxmox/_add_vm_type_to_volumes_edit.html.erb:47
129
+ msgid "remove storage volume"
130
+ msgstr ""
131
+
132
+ #: ../app/views/compute_resources_vms/form/proxmox/_add_vm_type_to_volumes_edit.html.erb:51 ../app/views/compute_resources_vms/form/proxmox/_add_vm_type_to_volumes_edit.html.erb:54
133
+ msgid "Add Volume"
134
+ msgstr ""
135
+
136
+ #: ../app/views/compute_resources_vms/form/proxmox/_add_vm_type_to_volumes_edit.html.erb:51 ../app/views/compute_resources_vms/form/proxmox/_add_vm_type_to_volumes_edit.html.erb:54
137
+ msgid "add new storage volume"
138
+ msgstr ""
139
+
140
+ #: ../app/views/compute_resources_vms/form/proxmox/_base.html.erb:5 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:16 ../app/views/compute_resources_vms/index/_proxmox.html.erb:7
141
+ msgid "Type"
142
+ msgstr ""
143
+
144
+ #: ../app/views/compute_resources_vms/form/proxmox/_general.html.erb:5
145
+ msgid "General"
146
+ msgstr ""
147
+
148
+ #: ../app/views/compute_resources_vms/form/proxmox/_general.html.erb:6
149
+ msgid "Create image?"
150
+ msgstr ""
151
+
152
+ #: ../app/views/compute_resources_vms/form/proxmox/_general.html.erb:7
153
+ msgid "VM ID"
154
+ msgstr ""
155
+
156
+ #: ../app/views/compute_resources_vms/form/proxmox/_general.html.erb:8
157
+ msgid "Node"
158
+ msgstr ""
159
+
160
+ #: ../app/views/compute_resources_vms/form/proxmox/_general.html.erb:18 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:35
161
+ msgid "Image"
162
+ msgstr ""
163
+
164
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_advanced.html.erb:5 ../app/views/compute_resources_vms/form/proxmox/server/_advanced.html.erb:5
165
+ msgid "Advanced"
166
+ msgstr ""
167
+
168
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_advanced.html.erb:6 ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:5 ../app/views/compute_resources_vms/form/proxmox/server/_advanced.html.erb:6 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:6
169
+ msgid "Main option"
170
+ msgid_plural "Main options"
171
+ msgstr[0] ""
172
+ msgstr[1] ""
173
+
174
+ #: ../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:15
175
+ msgid "CPU"
176
+ msgstr ""
177
+
178
+ #: ../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:26 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:27 ../app/views/compute_resources_vms/index/_proxmox.html.erb:9
179
+ msgid "Memory"
180
+ msgstr ""
181
+
182
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_advanced.html.erb:12 ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:19
183
+ msgid "DNS"
184
+ msgstr ""
185
+
186
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_advanced.html.erb:14 ../app/views/compute_resources_vms/form/proxmox/server/_advanced.html.erb:14
187
+ msgid "OS"
188
+ msgstr ""
189
+
190
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:6 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:7
191
+ msgid "Description"
192
+ msgstr ""
193
+
194
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:7 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:9
195
+ msgid "Start at boot"
196
+ msgstr ""
197
+
198
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:10
199
+ msgid "Architecture"
200
+ msgstr ""
201
+
202
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:11 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:18
203
+ msgid "Cores"
204
+ msgstr ""
205
+
206
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:12 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:20
207
+ msgid "CPU limit"
208
+ msgstr ""
209
+
210
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:13 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:21
211
+ msgid "CPU units"
212
+ msgstr ""
213
+
214
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:17
215
+ msgid "Swap"
216
+ msgstr ""
217
+
218
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:20
219
+ msgid "Hostname"
220
+ msgstr ""
221
+
222
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:21
223
+ msgid "DNS server"
224
+ msgstr ""
225
+
226
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:22
227
+ msgid "Search domain"
228
+ msgstr ""
229
+
230
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:24 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:41
231
+ msgid "Operating System"
232
+ msgstr ""
233
+
234
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_config.html.erb:25 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:42
235
+ msgid "OS type"
236
+ msgstr ""
237
+
238
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_extended.html.erb:5
239
+ msgid "Extended"
240
+ msgstr ""
241
+
242
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_extended.html.erb:7
243
+ msgid "Template storage"
244
+ msgstr ""
245
+
246
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_extended.html.erb:8
247
+ msgid "OS Template"
248
+ msgstr ""
249
+
250
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_extended.html.erb:10
251
+ msgid "Root password"
252
+ msgstr ""
253
+
254
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_network.html.erb:5 ../app/views/compute_resources_vms/form/proxmox/server/_network.html.erb:6
255
+ msgid "Nic"
256
+ msgstr ""
257
+
258
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_network.html.erb:6 ../app/views/compute_resources_vms/index/_proxmox.html.erb:6
259
+ msgid "Name"
260
+ msgstr ""
261
+
262
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_network.html.erb:7
263
+ msgid "IPv4"
264
+ msgstr ""
265
+
266
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_network.html.erb:7
267
+ msgid "e.g. dhcp or IPv4/CIDR format or manual"
268
+ msgstr ""
269
+
270
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_network.html.erb:8
271
+ msgid "IPv6"
272
+ msgstr ""
273
+
274
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_network.html.erb:8
275
+ msgid "e.g. dhcp or IPv6/CIDR format or manual"
276
+ msgstr ""
277
+
278
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_network.html.erb:9 ../app/views/compute_resources_vms/form/proxmox/server/_network.html.erb:9
279
+ msgid "VLAN tag"
280
+ msgstr ""
281
+
282
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_network.html.erb:10 ../app/views/compute_resources_vms/form/proxmox/server/_network.html.erb:10
283
+ msgid "Rate limit"
284
+ msgstr ""
285
+
286
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_network.html.erb:11 ../app/views/compute_resources_vms/form/proxmox/server/_network.html.erb:8
287
+ msgid "Bridge"
288
+ msgstr ""
289
+
290
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_volume_mp.html.erb:5
291
+ msgid "Mount point"
292
+ msgstr ""
293
+
294
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_volume_mp.html.erb:7 ../app/views/compute_resources_vms/form/proxmox/container/_volume_rootfs.html.erb:7 ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:37 ../app/views/compute_resources_vms/form/proxmox/server/_volume.html.erb:7
295
+ msgid "Storage"
296
+ msgstr ""
297
+
298
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_volume_mp.html.erb:8 ../app/views/compute_resources_vms/form/proxmox/server/_volume.html.erb:9
299
+ msgid "Device"
300
+ msgstr ""
301
+
302
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_volume_mp.html.erb:9 ../app/views/compute_resources_vms/form/proxmox/container/_volume_rootfs.html.erb:8 ../app/views/compute_resources_vms/form/proxmox/server/_volume.html.erb:11
303
+ msgid "Size"
304
+ msgstr ""
305
+
306
+ #: ../app/views/compute_resources_vms/form/proxmox/container/_volume_rootfs.html.erb:5
307
+ msgid "Rootfs"
308
+ msgstr ""
309
+
310
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_advanced.html.erb:12
311
+ msgid "CDROM"
312
+ msgstr ""
313
+
314
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:8
315
+ msgid "Start/Shutdown order"
316
+ msgstr ""
317
+
318
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:10
319
+ msgid "Qemu Agent"
320
+ msgstr ""
321
+
322
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:11
323
+ msgid "KVM"
324
+ msgstr ""
325
+
326
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:11
327
+ msgid "Enable/disable KVM hardware virtualization"
328
+ msgstr ""
329
+
330
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:12
331
+ msgid "Keyboard"
332
+ msgstr ""
333
+
334
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:13
335
+ msgid "VGA"
336
+ msgstr ""
337
+
338
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:17
339
+ msgid "Sockets"
340
+ msgstr ""
341
+
342
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:19
343
+ msgid "VCPUs"
344
+ msgstr ""
345
+
346
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:22
347
+ msgid "Enable NUMA"
348
+ msgstr ""
349
+
350
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:23
351
+ msgid "PCID"
352
+ msgstr ""
353
+
354
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:24
355
+ msgid "Spectre-CTRL"
356
+ msgstr ""
357
+
358
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:28
359
+ msgid "Minimum memory"
360
+ msgstr ""
361
+
362
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:29
363
+ msgid "Shares"
364
+ msgstr ""
365
+
366
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:30
367
+ msgid "Ballooning Device"
368
+ msgstr ""
369
+
370
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:32
371
+ msgid "CD-ROM"
372
+ msgstr ""
373
+
374
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:33
375
+ msgid "None"
376
+ msgstr ""
377
+
378
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:34
379
+ msgid "Physical"
380
+ msgstr ""
381
+
382
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_config.html.erb:38
383
+ msgid "Image ISO"
384
+ msgstr ""
385
+
386
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_network.html.erb:7
387
+ msgid "Card"
388
+ msgstr ""
389
+
390
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_network.html.erb:11
391
+ msgid "Multiqueue"
392
+ msgstr ""
393
+
394
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_network.html.erb:12
395
+ msgid "Firewall"
396
+ msgstr ""
397
+
398
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_network.html.erb:13
399
+ msgid "Disconnect"
400
+ msgstr ""
401
+
402
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_volume.html.erb:5
403
+ msgid "Disk"
404
+ msgstr ""
405
+
406
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_volume.html.erb:8
407
+ msgid "Controller"
408
+ msgstr ""
409
+
410
+ #: ../app/views/compute_resources_vms/form/proxmox/server/_volume.html.erb:10
411
+ msgid "Cache"
412
+ msgstr ""
413
+
414
+ #: ../app/views/compute_resources_vms/index/_proxmox.html.erb:8
415
+ msgid "CPUs"
416
+ msgstr ""
417
+
418
+ #: ../app/views/compute_resources_vms/index/_proxmox.html.erb:10
419
+ msgid "Power"
420
+ msgstr ""
421
+
422
+ #: ../app/views/compute_resources_vms/index/_proxmox.html.erb:11
423
+ msgid "Uptime"
424
+ msgstr ""
425
+
426
+ #: ../app/views/dashboard/_foreman_fog_proxmox_widget.erb:5
427
+ msgid "Proxmox Node Statistics: %s"
428
+ msgstr ""
429
+
430
+ #: ../app/views/images/form/_proxmox.html.erb:3
431
+ msgid "The user that is used to ssh into the instance, normally cloud-user, ubuntu, root etc"
432
+ msgstr ""
433
+
434
+ #: ../app/views/images/form/_proxmox.html.erb:4
435
+ msgid "Password to authenticate with - used for SSH finish step."
436
+ msgstr ""
437
+
438
+ #: ../app/views/images/form/_proxmox.html.erb:5
439
+ msgid "Does this image support user data input (e.g. via cloud-init)?"
440
+ msgstr ""
441
+
442
+ #: ../app/views/images/form/_proxmox.html.erb:6
443
+ msgid "Image VMID"
444
+ msgstr ""
445
+
446
+ #: ../app/views/images/form/_proxmox.html.erb:6
447
+ msgid "vmid of template vm."
448
+ msgstr ""
449
+
450
+ #: ../lib/foreman_fog_proxmox/engine.rb:46
451
+ msgid "Foreman Fog Proxmox widget"
452
+ msgstr ""
453
+
454
+ #: gemspec.rb:2
455
+ msgid "ForemanFogProxmox plugin adds Proxmox VE compute resource to Foreman using fog-proxmox gem."
456
+ msgstr ""