foreman_ovirt 0.2.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +619 -0
  3. data/README.md +140 -0
  4. data/Rakefile +37 -43
  5. data/app/assets/javascripts/foreman_ovirt/display.js +10 -0
  6. data/app/assets/javascripts/foreman_ovirt/host_edit.js +61 -0
  7. data/app/assets/javascripts/foreman_ovirt/nic_info.js +3 -0
  8. data/app/assets/javascripts/foreman_ovirt/ovirt.js +261 -0
  9. data/app/controllers/concerns/foreman_ovirt/compute_resources_vms_controller.rb +29 -0
  10. data/app/controllers/concerns/foreman_ovirt/parameters_extension.rb +35 -0
  11. data/app/controllers/foreman_ovirt/concerns/compute_resources_controller_extensions.rb +60 -0
  12. data/app/helpers/ovirt_compute_resource_helper.rb +26 -0
  13. data/app/models/concerns/fog_extensions/ovirt/server.rb +42 -0
  14. data/app/models/concerns/fog_extensions/ovirt/template.rb +14 -0
  15. data/app/models/concerns/fog_extensions/ovirt/volume.rb +11 -0
  16. data/app/models/foreman_ovirt/ovirt.rb +752 -0
  17. data/app/views/api/v2/compute_resources/ovirt.json.rabl +1 -0
  18. data/app/views/compute_resources/form/_ovirt.html.erb +14 -0
  19. data/app/views/compute_resources/show/_ovirt.html.erb +16 -0
  20. data/app/views/compute_resources_vms/form/ovirt/_base.html.erb +83 -0
  21. data/app/views/compute_resources_vms/form/ovirt/_network.html.erb +32 -0
  22. data/app/views/compute_resources_vms/form/ovirt/_volume.html.erb +16 -0
  23. data/app/views/compute_resources_vms/index/_ovirt.html.erb +12 -0
  24. data/app/views/compute_resources_vms/index/_ovirt_json.erb +6 -0
  25. data/app/views/compute_resources_vms/show/_ovirt.html.erb +55 -0
  26. data/app/views/images/form/_ovirt.html.erb +4 -0
  27. data/config/routes.rb +8 -13
  28. data/db/migrate/20250810212811_update_legacy_ovirt_compute_resource_type.rb +21 -0
  29. data/lib/foreman_ovirt/engine.rb +70 -0
  30. data/lib/foreman_ovirt/version.rb +3 -0
  31. data/lib/foreman_ovirt.rb +2 -1
  32. data/lib/tasks/foreman_ovirt_tasks.rake +30 -0
  33. data/locale/Makefile +73 -0
  34. data/locale/en/foreman_ovirt.po +19 -0
  35. data/locale/foreman_ovirt.pot +19 -0
  36. data/locale/gemspec.rb +2 -0
  37. data/package.json +39 -0
  38. data/test/factories/foreman_ovirt_factories.rb +5 -0
  39. data/test/test_plugin_helper.rb +6 -0
  40. data/test/unit/foreman_ovirt_test.rb +11 -0
  41. data/webpack/components/extensions/HostDetails/DetailsTabCards/OvirtCard.js +132 -0
  42. data/webpack/components/ovirt.js +20 -0
  43. data/webpack/global_index.js +14 -0
  44. data/webpack/global_test_setup.js +11 -0
  45. data/webpack/index.js +1 -0
  46. data/webpack/test_setup.js +17 -0
  47. metadata +157 -128
  48. data/.document +0 -5
  49. data/Gemfile +0 -14
  50. data/Gemfile.lock +0 -33
  51. data/LICENSE.txt +0 -20
  52. data/README.rdoc +0 -20
  53. data/VERSION +0 -1
  54. data/app/controllers/foreman_ovirt/auth_source_ovirts_controller.rb +0 -57
  55. data/app/controllers/foreman_ovirt/dashboard_controller.rb +0 -10
  56. data/app/controllers/foreman_ovirt/hosts_controller.rb +0 -17
  57. data/app/models/foreman_ovirt/auth_source_ovirt.rb +0 -78
  58. data/app/models/foreman_ovirt/user_extensions.rb +0 -26
  59. data/app/views/foreman_ovirt/auth_source_ovirts/_form.html.erb +0 -17
  60. data/app/views/foreman_ovirt/auth_source_ovirts/edit.html.erb +0 -3
  61. data/app/views/foreman_ovirt/auth_source_ovirts/index.html.erb +0 -22
  62. data/app/views/foreman_ovirt/auth_source_ovirts/new.html.erb +0 -3
  63. data/app/views/foreman_ovirt/auth_source_ovirts/welcome.html.erb +0 -8
  64. data/app/views/foreman_ovirt/hosts/_overview.html.erb +0 -27
  65. data/app/views/foreman_ovirt/hosts/show.html.erb +0 -48
  66. data/app/views/foreman_ovirt/hosts/show_graphs.html.erb +0 -13
  67. data/app/views/layouts/application_ovirt.html.erb +0 -36
  68. data/config/initializers/ovirt_setup.rb +0 -30
  69. data/foreman_ovirt.gemspec +0 -74
  70. data/lib/engine.rb +0 -9
@@ -0,0 +1,26 @@
1
+ module OvirtComputeResourceHelper
2
+ # Really counting vms is as expensive as loading them all, especially when
3
+ # a filter is in place. So we create a fake count to get table pagination to work.
4
+ def ovirt_fake_vms_count
5
+ params['start'].to_i + 1 + [@vms.length, params['length'].to_i].min
6
+ end
7
+
8
+ def ovirt_storage_domains_for_select(compute_resource)
9
+ compute_resource.storage_domains.map { |sd| OpenStruct.new({ id: sd.id, label: "#{sd.name} (" + _("Available") + ": #{sd.available.to_i / 1.gigabyte} GiB, " + _("Used") + ": #{sd.used.to_i / 1.gigabyte} GiB)" }) }
10
+ end
11
+
12
+ def ovirt_vms_data
13
+ data = @vms.map do |vm|
14
+ [
15
+ link_to_if_authorized(html_escape(vm.name), hash_for_compute_resource_vm_path(:compute_resource_id => @compute_resource, :id => vm.id).merge(:auth_object => @compute_resource, :auth_action => 'view', :authorizer => authorizer)),
16
+ vm.cores,
17
+ number_to_human_size(vm.memory),
18
+ "<span #{vm_power_class(vm.ready?)}>#{vm_state(vm)}</span>",
19
+ action_buttons(vm_power_action(vm, authorizer),
20
+ vm_import_action(vm), vm_associate_link(vm),
21
+ display_delete_if_authorized(hash_for_compute_resource_vm_path(:compute_resource_id => @compute_resource, :id => vm.id).merge(:auth_object => @compute_resource, :authorizer => authorizer))),
22
+ ]
23
+ end
24
+ JSON.fast_generate(data).html_safe
25
+ end
26
+ end
@@ -0,0 +1,42 @@
1
+ module FogExtensions
2
+ module Ovirt
3
+ module Server
4
+ extend ActiveSupport::Concern
5
+
6
+ include ActionView::Helpers::NumberHelper
7
+
8
+ attr_accessor :image_id
9
+
10
+ def to_s
11
+ name
12
+ end
13
+
14
+ def state
15
+ status
16
+ end
17
+
18
+ def interfaces_attributes=(attrs)
19
+ end
20
+
21
+ def volumes_attributes=(attrs)
22
+ end
23
+
24
+ def poweroff
25
+ service.vm_action(:id => id, :action => :shutdown)
26
+ end
27
+
28
+ def reset
29
+ reboot
30
+ end
31
+
32
+ def vm_description
33
+ _("%{cores} Cores and %{memory} memory") % {:cores => cores, :memory => number_to_human_size(memory.to_i)}
34
+ end
35
+
36
+ def select_nic(fog_nics, nic)
37
+ nic_network = @service.list_networks(@attributes[:cluster]).detect { |n| n.name == nic.compute_attributes['network'] }.try(:id) || nic.compute_attributes['network']
38
+ fog_nics.detect { |fn| fn.network == nic_network } # grab any nic on the same network
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,14 @@
1
+ module FogExtensions
2
+ module Ovirt
3
+ module Template
4
+ def full_name
5
+ version = full_version.present? ? " (#{full_version})" : ""
6
+ "#{name}#{version}"
7
+ end
8
+
9
+ def full_version
10
+ version.version_name.presence || version.version_number
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,11 @@
1
+ module FogExtensions
2
+ module Ovirt
3
+ module Volume
4
+ extend ActiveSupport::Concern
5
+ def as_json(options = { })
6
+ size_gb
7
+ super options
8
+ end
9
+ end
10
+ end
11
+ end