foreman_kubevirt 0.4.0 → 0.4.2

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 (65) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/foreman_kubevirt/locale/ca/foreman_kubevirt.js +1 -1
  3. data/app/assets/javascripts/foreman_kubevirt/locale/cs_CZ/foreman_kubevirt.js +1 -1
  4. data/app/assets/javascripts/foreman_kubevirt/locale/de/foreman_kubevirt.js +1 -1
  5. data/app/assets/javascripts/foreman_kubevirt/locale/en/foreman_kubevirt.js +1 -1
  6. data/app/assets/javascripts/foreman_kubevirt/locale/en_GB/foreman_kubevirt.js +1 -1
  7. data/app/assets/javascripts/foreman_kubevirt/locale/es/foreman_kubevirt.js +1 -1
  8. data/app/assets/javascripts/foreman_kubevirt/locale/fr/foreman_kubevirt.js +1 -1
  9. data/app/assets/javascripts/foreman_kubevirt/locale/gl/foreman_kubevirt.js +1 -1
  10. data/app/assets/javascripts/foreman_kubevirt/locale/it/foreman_kubevirt.js +1 -1
  11. data/app/assets/javascripts/foreman_kubevirt/locale/ja/foreman_kubevirt.js +1 -1
  12. data/app/assets/javascripts/foreman_kubevirt/locale/ka/foreman_kubevirt.js +1 -1
  13. data/app/assets/javascripts/foreman_kubevirt/locale/ko/foreman_kubevirt.js +3 -3
  14. data/app/assets/javascripts/foreman_kubevirt/locale/nl_NL/foreman_kubevirt.js +1 -1
  15. data/app/assets/javascripts/foreman_kubevirt/locale/pl/foreman_kubevirt.js +1 -1
  16. data/app/assets/javascripts/foreman_kubevirt/locale/pt_BR/foreman_kubevirt.js +1 -1
  17. data/app/assets/javascripts/foreman_kubevirt/locale/ru/foreman_kubevirt.js +1 -1
  18. data/app/assets/javascripts/foreman_kubevirt/locale/sv_SE/foreman_kubevirt.js +1 -1
  19. data/app/assets/javascripts/foreman_kubevirt/locale/zh_CN/foreman_kubevirt.js +3 -3
  20. data/app/assets/javascripts/foreman_kubevirt/locale/zh_TW/foreman_kubevirt.js +1 -1
  21. data/app/models/foreman_kubevirt/kubevirt.rb +29 -6
  22. data/app/views/compute_resources/form/_kubevirt.html.erb +4 -5
  23. data/app/views/compute_resources_vms/form/kubevirt/_network.html.erb +2 -1
  24. data/lib/foreman_kubevirt/version.rb +1 -1
  25. data/locale/ca/LC_MESSAGES/foreman_kubevirt.mo +0 -0
  26. data/locale/ca/foreman_kubevirt.po +1 -1
  27. data/locale/cs_CZ/LC_MESSAGES/foreman_kubevirt.mo +0 -0
  28. data/locale/cs_CZ/foreman_kubevirt.po +1 -1
  29. data/locale/de/LC_MESSAGES/foreman_kubevirt.mo +0 -0
  30. data/locale/de/foreman_kubevirt.po +1 -1
  31. data/locale/en/LC_MESSAGES/foreman_kubevirt.mo +0 -0
  32. data/locale/en/foreman_kubevirt.po +1 -1
  33. data/locale/en_GB/LC_MESSAGES/foreman_kubevirt.mo +0 -0
  34. data/locale/en_GB/foreman_kubevirt.po +1 -1
  35. data/locale/es/LC_MESSAGES/foreman_kubevirt.mo +0 -0
  36. data/locale/es/foreman_kubevirt.po +1 -1
  37. data/locale/foreman_kubevirt.pot +2 -2
  38. data/locale/fr/LC_MESSAGES/foreman_kubevirt.mo +0 -0
  39. data/locale/fr/foreman_kubevirt.po +1 -1
  40. data/locale/gl/LC_MESSAGES/foreman_kubevirt.mo +0 -0
  41. data/locale/gl/foreman_kubevirt.po +1 -1
  42. data/locale/it/LC_MESSAGES/foreman_kubevirt.mo +0 -0
  43. data/locale/it/foreman_kubevirt.po +1 -1
  44. data/locale/ja/LC_MESSAGES/foreman_kubevirt.mo +0 -0
  45. data/locale/ja/foreman_kubevirt.po +1 -1
  46. data/locale/ka/LC_MESSAGES/foreman_kubevirt.mo +0 -0
  47. data/locale/ka/foreman_kubevirt.po +1 -1
  48. data/locale/ko/LC_MESSAGES/foreman_kubevirt.mo +0 -0
  49. data/locale/ko/foreman_kubevirt.po +4 -4
  50. data/locale/nl_NL/LC_MESSAGES/foreman_kubevirt.mo +0 -0
  51. data/locale/nl_NL/foreman_kubevirt.po +1 -1
  52. data/locale/pl/LC_MESSAGES/foreman_kubevirt.mo +0 -0
  53. data/locale/pl/foreman_kubevirt.po +1 -1
  54. data/locale/pt_BR/LC_MESSAGES/foreman_kubevirt.mo +0 -0
  55. data/locale/pt_BR/foreman_kubevirt.po +1 -1
  56. data/locale/ru/LC_MESSAGES/foreman_kubevirt.mo +0 -0
  57. data/locale/ru/foreman_kubevirt.po +1 -1
  58. data/locale/sv_SE/LC_MESSAGES/foreman_kubevirt.mo +0 -0
  59. data/locale/sv_SE/foreman_kubevirt.po +1 -1
  60. data/locale/zh_CN/LC_MESSAGES/foreman_kubevirt.mo +0 -0
  61. data/locale/zh_CN/foreman_kubevirt.po +4 -4
  62. data/locale/zh_TW/LC_MESSAGES/foreman_kubevirt.mo +0 -0
  63. data/locale/zh_TW/foreman_kubevirt.po +1 -1
  64. data/test/models/compute_resources/kubevirt_test.rb +59 -2
  65. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dcdce0e160ee8cbe528af3cd3206f1674c0852a136b9f92c37c6d08a15484085
4
- data.tar.gz: 72195120514dac9bc18a56f605fce51b182a997937852dd9a5a9287e783baa9e
3
+ metadata.gz: 39fc9c907b2357c24a43be724a2e00b2105452abd42911c836b1cd5dc0f6b085
4
+ data.tar.gz: 00b5f9b3bcf1c36c540e6a1261c1c68fb2f9f337fc0ef6b669ef5da182f22d7d
5
5
  SHA512:
6
- metadata.gz: 9235eb8d62cf2c6a48fcc577697750239ceabf5a69c9d5653ab6cb10fa896c6e5e42e483d901007107896cd8b4586e6241854c693bc7e7677dabdd053489e6fd
7
- data.tar.gz: 922a37a5fa0bc31b4e6b88ac896f4f12ca4b5adceefed54edd83a63af5e777610abfc4509d6457acb32ce24dae282a66a9d6c6394af70bc3b857d9869f1a4f9a
6
+ metadata.gz: aedfe24b1155d7140ca79bb056292fa28abfdc33c64bb401fa76c482ba61950b81461832d21a0fda69b94e805d508079b1959661c01e5fc96770a503db67d62a
7
+ data.tar.gz: f3879d38d591219040d0bf4bd4f1b645548ef0b7c471ae3da62705a1a5a5d4b44619f5e2d7b6c3c24f5d9e9c0fb6c1f20b77a0e65b8649205cf95b8469c96126
@@ -3,7 +3,7 @@
3
3
  "locale_data": {
4
4
  "foreman_kubevirt": {
5
5
  "": {
6
- "Project-Id-Version": "foreman_kubevirt 0.3.0",
6
+ "Project-Id-Version": "foreman_kubevirt 0.4.1",
7
7
  "Report-Msgid-Bugs-To": "",
8
8
  "PO-Revision-Date": "2020-05-26 07:39+0000",
9
9
  "Last-Translator": "Robert Antoni Buj i Gelonch <rbuj@fedoraproject.org>, 2020",
@@ -3,7 +3,7 @@
3
3
  "locale_data": {
4
4
  "foreman_kubevirt": {
5
5
  "": {
6
- "Project-Id-Version": "foreman_kubevirt 0.3.0",
6
+ "Project-Id-Version": "foreman_kubevirt 0.4.1",
7
7
  "Report-Msgid-Bugs-To": "",
8
8
  "PO-Revision-Date": "2020-05-26 07:39+0000",
9
9
  "Last-Translator": "mhulan <mhulan@redhat.com>, 2020",
@@ -3,7 +3,7 @@
3
3
  "locale_data": {
4
4
  "foreman_kubevirt": {
5
5
  "": {
6
- "Project-Id-Version": "foreman_kubevirt 0.3.0",
6
+ "Project-Id-Version": "foreman_kubevirt 0.4.1",
7
7
  "Report-Msgid-Bugs-To": "",
8
8
  "PO-Revision-Date": "2020-05-26 07:39+0000",
9
9
  "Last-Translator": "pdolinic, 2021",
@@ -5,7 +5,7 @@
5
5
  "": {
6
6
  "Project-Id-Version": "foreman_kubevirt 1.0.0",
7
7
  "Report-Msgid-Bugs-To": "",
8
- "PO-Revision-Date": "2025-02-10 20:07+0100",
8
+ "PO-Revision-Date": "2025-10-07 14:20+0200",
9
9
  "Last-Translator": "FULL NAME <EMAIL@ADDRESS>",
10
10
  "Language-Team": "LANGUAGE <LL@li.org>",
11
11
  "Language": "",
@@ -3,7 +3,7 @@
3
3
  "locale_data": {
4
4
  "foreman_kubevirt": {
5
5
  "": {
6
- "Project-Id-Version": "foreman_kubevirt 0.3.0",
6
+ "Project-Id-Version": "foreman_kubevirt 0.4.1",
7
7
  "Report-Msgid-Bugs-To": "",
8
8
  "PO-Revision-Date": "2020-05-26 07:39+0000",
9
9
  "Last-Translator": "Andi Chandler <andi@gowling.com>, 2023",
@@ -3,7 +3,7 @@
3
3
  "locale_data": {
4
4
  "foreman_kubevirt": {
5
5
  "": {
6
- "Project-Id-Version": "foreman_kubevirt 0.3.0",
6
+ "Project-Id-Version": "foreman_kubevirt 0.4.1",
7
7
  "Report-Msgid-Bugs-To": "",
8
8
  "PO-Revision-Date": "2020-05-26 07:39+0000",
9
9
  "Last-Translator": "Amit Upadhye <aupadhye@redhat.com>, 2022",
@@ -3,7 +3,7 @@
3
3
  "locale_data": {
4
4
  "foreman_kubevirt": {
5
5
  "": {
6
- "Project-Id-Version": "foreman_kubevirt 0.3.0",
6
+ "Project-Id-Version": "foreman_kubevirt 0.4.1",
7
7
  "Report-Msgid-Bugs-To": "",
8
8
  "PO-Revision-Date": "2020-05-26 07:39+0000",
9
9
  "Last-Translator": "Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2024",
@@ -3,7 +3,7 @@
3
3
  "locale_data": {
4
4
  "foreman_kubevirt": {
5
5
  "": {
6
- "Project-Id-Version": "foreman_kubevirt 0.3.0",
6
+ "Project-Id-Version": "foreman_kubevirt 0.4.1",
7
7
  "Report-Msgid-Bugs-To": "",
8
8
  "PO-Revision-Date": "2020-05-26 07:39+0000",
9
9
  "Last-Translator": "Carmela Rubiños <carmela.rubinos@gmail.com>, 2020",
@@ -3,7 +3,7 @@
3
3
  "locale_data": {
4
4
  "foreman_kubevirt": {
5
5
  "": {
6
- "Project-Id-Version": "foreman_kubevirt 0.3.0",
6
+ "Project-Id-Version": "foreman_kubevirt 0.4.1",
7
7
  "Report-Msgid-Bugs-To": "",
8
8
  "PO-Revision-Date": "2020-05-26 07:39+0000",
9
9
  "Last-Translator": "Giuseppe Pignataro (Fastbyte01) <rogepix@gmail.com>, 2020",
@@ -3,7 +3,7 @@
3
3
  "locale_data": {
4
4
  "foreman_kubevirt": {
5
5
  "": {
6
- "Project-Id-Version": "foreman_kubevirt 0.3.0",
6
+ "Project-Id-Version": "foreman_kubevirt 0.4.1",
7
7
  "Report-Msgid-Bugs-To": "",
8
8
  "PO-Revision-Date": "2020-05-26 07:39+0000",
9
9
  "Last-Translator": "Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2023",
@@ -3,7 +3,7 @@
3
3
  "locale_data": {
4
4
  "foreman_kubevirt": {
5
5
  "": {
6
- "Project-Id-Version": "foreman_kubevirt 0.3.0",
6
+ "Project-Id-Version": "foreman_kubevirt 0.4.1",
7
7
  "Report-Msgid-Bugs-To": "",
8
8
  "PO-Revision-Date": "2020-05-26 07:39+0000",
9
9
  "Last-Translator": "Temuri Doghonadze <temuri.doghonadze@gmail.com>, 2023",
@@ -3,10 +3,10 @@
3
3
  "locale_data": {
4
4
  "foreman_kubevirt": {
5
5
  "": {
6
- "Project-Id-Version": "foreman_kubevirt 0.3.0",
6
+ "Project-Id-Version": "foreman_kubevirt 0.4.1",
7
7
  "Report-Msgid-Bugs-To": "",
8
8
  "PO-Revision-Date": "2020-05-26 07:39+0000",
9
- "Last-Translator": "Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2024",
9
+ "Last-Translator": "Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2025",
10
10
  "Language-Team": "Korean (https://app.transifex.com/foreman/teams/114/ko/)",
11
11
  "MIME-Version": "1.0",
12
12
  "Content-Type": "text/plain; charset=UTF-8",
@@ -150,7 +150,7 @@
150
150
  "볼륨 크기%s이/가 잘못되었습니다"
151
151
  ],
152
152
  "X509 Certification Authorities": [
153
- "X509 인증 기관 "
153
+ "X509 인증 기관"
154
154
  ],
155
155
  "cni_provider or network are missing": [
156
156
  "cni_provider 또는 네트워크가 없습니다"
@@ -3,7 +3,7 @@
3
3
  "locale_data": {
4
4
  "foreman_kubevirt": {
5
5
  "": {
6
- "Project-Id-Version": "foreman_kubevirt 0.3.0",
6
+ "Project-Id-Version": "foreman_kubevirt 0.4.1",
7
7
  "Report-Msgid-Bugs-To": "",
8
8
  "PO-Revision-Date": "2020-05-26 07:39+0000",
9
9
  "Last-Translator": "Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2023",
@@ -3,7 +3,7 @@
3
3
  "locale_data": {
4
4
  "foreman_kubevirt": {
5
5
  "": {
6
- "Project-Id-Version": "foreman_kubevirt 0.3.0",
6
+ "Project-Id-Version": "foreman_kubevirt 0.4.1",
7
7
  "Report-Msgid-Bugs-To": "",
8
8
  "PO-Revision-Date": "2020-05-26 07:39+0000",
9
9
  "Last-Translator": "Michał Foryt <michal.foryt@gmail.com>, 2020",
@@ -3,7 +3,7 @@
3
3
  "locale_data": {
4
4
  "foreman_kubevirt": {
5
5
  "": {
6
- "Project-Id-Version": "foreman_kubevirt 0.3.0",
6
+ "Project-Id-Version": "foreman_kubevirt 0.4.1",
7
7
  "Report-Msgid-Bugs-To": "",
8
8
  "PO-Revision-Date": "2020-05-26 07:39+0000",
9
9
  "Last-Translator": "Amit Upadhye <aupadhye@redhat.com>, 2022",
@@ -3,7 +3,7 @@
3
3
  "locale_data": {
4
4
  "foreman_kubevirt": {
5
5
  "": {
6
- "Project-Id-Version": "foreman_kubevirt 0.3.0",
6
+ "Project-Id-Version": "foreman_kubevirt 0.4.1",
7
7
  "Report-Msgid-Bugs-To": "",
8
8
  "PO-Revision-Date": "2020-05-26 07:39+0000",
9
9
  "Last-Translator": "Vladimir Pavlov <v.pavlov@i-teco.ru>, 2020",
@@ -3,7 +3,7 @@
3
3
  "locale_data": {
4
4
  "foreman_kubevirt": {
5
5
  "": {
6
- "Project-Id-Version": "foreman_kubevirt 0.3.0",
6
+ "Project-Id-Version": "foreman_kubevirt 0.4.1",
7
7
  "Report-Msgid-Bugs-To": "",
8
8
  "PO-Revision-Date": "2020-05-26 07:39+0000",
9
9
  "Last-Translator": "johnny.westerlund <johnny.westerlund@gmail.com>, 2020",
@@ -3,10 +3,10 @@
3
3
  "locale_data": {
4
4
  "foreman_kubevirt": {
5
5
  "": {
6
- "Project-Id-Version": "foreman_kubevirt 0.3.0",
6
+ "Project-Id-Version": "foreman_kubevirt 0.4.1",
7
7
  "Report-Msgid-Bugs-To": "",
8
8
  "PO-Revision-Date": "2020-05-26 07:39+0000",
9
- "Last-Translator": "Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2023",
9
+ "Last-Translator": "Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2025",
10
10
  "Language-Team": "Chinese (China) (https://app.transifex.com/foreman/teams/114/zh_CN/)",
11
11
  "MIME-Version": "1.0",
12
12
  "Content-Type": "text/plain; charset=UTF-8",
@@ -150,7 +150,7 @@
150
150
  "卷大小 %s 无效"
151
151
  ],
152
152
  "X509 Certification Authorities": [
153
- "X509 证书授权"
153
+ "X509 认证颁发机构"
154
154
  ],
155
155
  "cni_provider or network are missing": [
156
156
  "cni_provider 或网络丢失"
@@ -3,7 +3,7 @@
3
3
  "locale_data": {
4
4
  "foreman_kubevirt": {
5
5
  "": {
6
- "Project-Id-Version": "foreman_kubevirt 0.3.0",
6
+ "Project-Id-Version": "foreman_kubevirt 0.4.1",
7
7
  "Report-Msgid-Bugs-To": "",
8
8
  "PO-Revision-Date": "2020-05-26 07:39+0000",
9
9
  "Last-Translator": "Bryan Kearney <bryan.kearney@gmail.com>, 2020",
@@ -73,18 +73,32 @@ module ForemanKubevirt
73
73
  end
74
74
  end
75
75
 
76
+ def connection_valid?
77
+ return false if hostname.blank? || token.blank? || namespace.blank? || api_port.blank?
78
+ client&.valid? && client&.virt_supported?
79
+ rescue StandardError
80
+ false
81
+ end
82
+
76
83
  def connection_properties_valid?
77
84
  errors[:hostname].empty? && errors[:token].empty? && errors[:namespace].empty? && errors[:api_port].empty?
78
85
  end
79
86
 
80
87
  def networks
81
- client.networkattachmentdefs.all
82
- rescue StandardError => e
83
- logger.warn("Failed to retrieve network attachments definition from KubeVirt,
84
- make sure KubeVirt has CNI provider and NetworkAttachmentDefinition CRD deployed: #{e.message}")
88
+ client.networkattachmentdefs.all.map do |network|
89
+ namespaced_name = "#{network.namespace}/#{network.name}"
90
+ OpenStruct.new(id: namespaced_name, name: namespaced_name)
91
+ end
92
+ rescue Fog::Kubevirt::Errors::ClientError => e
93
+ Foreman::Logging.exception("Failed to retrieve network attachments definition from KubeVirt,
94
+ make sure KubeVirt has CNI provider and NetworkAttachmentDefinition CRD deployed", e)
85
95
  []
86
96
  end
87
97
 
98
+ def editable_network_interfaces?
99
+ true
100
+ end
101
+
88
102
  def find_vm_by_uuid(uuid)
89
103
  super
90
104
  rescue Fog::Kubevirt::Errors::ClientError => e
@@ -94,10 +108,16 @@ module ForemanKubevirt
94
108
 
95
109
  def volumes
96
110
  client.volumes.all
111
+ rescue Fog::Kubevirt::Errors::ClientError => e
112
+ Foreman::Logging.exception("Failed retrieving KubeVirt volumes", e)
113
+ []
97
114
  end
98
115
 
99
116
  def storage_classes
100
117
  client.storageclasses.all
118
+ rescue Fog::Kubevirt::Errors::ClientError => e
119
+ Foreman::Logging.exception("Failed retrieving KubeVirt storage classes", e)
120
+ []
101
121
  end
102
122
 
103
123
  def storage_classes_for_select
@@ -458,9 +478,12 @@ module ForemanKubevirt
458
478
  end
459
479
 
460
480
  def create_network_element(iface)
461
- nic = { bridge: {}, name: iface[:network] }
481
+ # K8s objects have string naming.
482
+ # Use ActiveSupport::Inflector#parameterize to create a sanitized NIC name
483
+ nic_name = iface[:network].parameterize
484
+ nic = { bridge: {}, name: nic_name }
462
485
  cni = iface[:cni_provider].to_sym
463
- net = { :name => iface[:network], cni => { :networkName => iface[:network] } }
486
+ net = { :name => nic_name, cni => { :networkName => iface[:network] } }
464
487
  [nic, net]
465
488
  end
466
489
 
@@ -4,14 +4,13 @@
4
4
  <%= password_f f, :token, :label => _("Token"), :required => true,
5
5
  :keep_value => true, :unset => unset_password?,
6
6
  :help_block => _("e.g. eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9..."),
7
- :help_inline => documentation_button('/foreman_kubevirt/0.x/index.html#4.1SettingComputeResourceTokenandX509CAvalues',
8
- :root_url => 'https://theforeman.org/plugins'),
7
+ :help_inline => documentation_button('#4.1SettingComputeResourceTokenandX509CAvalues', type: 'plugin_manual', name: 'foreman_kubevirt', version: '0.x'),
9
8
  :id => "compute_resource_password"
10
9
  %>
11
10
 
12
11
  <%= textarea_f f, :ca_cert, :label => _("X509 Certification Authorities"),
13
12
  :placeholder => _("Optionally provide a CA, or a correctly ordered CA chain or a path to a file. If left blank - insecure.") %>
14
13
 
15
- <div class="col-md-offset-2">
16
- <%= test_connection_button_f(f, true) %>
17
- </div>
14
+ <div class="col-md-offset-2">
15
+ <%= test_connection_button_f(f, f.object.connection_valid?) %>
16
+ </div>
@@ -9,10 +9,11 @@
9
9
 
10
10
  <div id='networks' class='<%= 'hide' if pod %>'>
11
11
  <%= select_f f, :network,
12
- compute_resource.networks,
12
+ (compute_resource.networks + [OpenStruct.new(name: f.object.network, id: f.object.network)]).compact.uniq,
13
13
  :id,
14
14
  :name,
15
15
  {},
16
+ :data => { tags: true },
16
17
  :disabled => !new_vm || pod,
17
18
  :class => "col-md-3 kubevirt-network",
18
19
  :label => _('Network'),
@@ -1,3 +1,3 @@
1
1
  module ForemanKubevirt
2
- VERSION = '0.4.0'.freeze
2
+ VERSION = '0.4.2'.freeze
3
3
  end
@@ -8,7 +8,7 @@
8
8
  #
9
9
  msgid ""
10
10
  msgstr ""
11
- "Project-Id-Version: foreman_kubevirt 0.3.0\n"
11
+ "Project-Id-Version: foreman_kubevirt 0.4.1\n"
12
12
  "Report-Msgid-Bugs-To: \n"
13
13
  "PO-Revision-Date: 2020-05-26 07:39+0000\n"
14
14
  "Last-Translator: Robert Antoni Buj i Gelonch <rbuj@fedoraproject.org>, 2020\n"
@@ -10,7 +10,7 @@
10
10
  #
11
11
  msgid ""
12
12
  msgstr ""
13
- "Project-Id-Version: foreman_kubevirt 0.3.0\n"
13
+ "Project-Id-Version: foreman_kubevirt 0.4.1\n"
14
14
  "Report-Msgid-Bugs-To: \n"
15
15
  "PO-Revision-Date: 2020-05-26 07:39+0000\n"
16
16
  "Last-Translator: mhulan <mhulan@redhat.com>, 2020\n"
@@ -18,7 +18,7 @@
18
18
  #
19
19
  msgid ""
20
20
  msgstr ""
21
- "Project-Id-Version: foreman_kubevirt 0.3.0\n"
21
+ "Project-Id-Version: foreman_kubevirt 0.4.1\n"
22
22
  "Report-Msgid-Bugs-To: \n"
23
23
  "PO-Revision-Date: 2020-05-26 07:39+0000\n"
24
24
  "Last-Translator: pdolinic, 2021\n"
@@ -8,7 +8,7 @@ msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: foreman_kubevirt 1.0.0\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "PO-Revision-Date: 2025-02-10 20:07+0100\n"
11
+ "PO-Revision-Date: 2025-10-07 14:20+0200\n"
12
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
14
  "Language: \n"
@@ -9,7 +9,7 @@
9
9
  #
10
10
  msgid ""
11
11
  msgstr ""
12
- "Project-Id-Version: foreman_kubevirt 0.3.0\n"
12
+ "Project-Id-Version: foreman_kubevirt 0.4.1\n"
13
13
  "Report-Msgid-Bugs-To: \n"
14
14
  "PO-Revision-Date: 2020-05-26 07:39+0000\n"
15
15
  "Last-Translator: Andi Chandler <andi@gowling.com>, 2023\n"
@@ -15,7 +15,7 @@
15
15
  #
16
16
  msgid ""
17
17
  msgstr ""
18
- "Project-Id-Version: foreman_kubevirt 0.3.0\n"
18
+ "Project-Id-Version: foreman_kubevirt 0.4.1\n"
19
19
  "Report-Msgid-Bugs-To: \n"
20
20
  "PO-Revision-Date: 2020-05-26 07:39+0000\n"
21
21
  "Last-Translator: Amit Upadhye <aupadhye@redhat.com>, 2022\n"
@@ -8,8 +8,8 @@ msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: foreman_kubevirt 1.0.0\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2025-02-10 20:07+0100\n"
12
- "PO-Revision-Date: 2025-02-10 20:07+0100\n"
11
+ "POT-Creation-Date: 2025-10-07 14:20+0200\n"
12
+ "PO-Revision-Date: 2025-10-07 14:20+0200\n"
13
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
15
15
  "Language: \n"
@@ -13,7 +13,7 @@
13
13
  #
14
14
  msgid ""
15
15
  msgstr ""
16
- "Project-Id-Version: foreman_kubevirt 0.3.0\n"
16
+ "Project-Id-Version: foreman_kubevirt 0.4.1\n"
17
17
  "Report-Msgid-Bugs-To: \n"
18
18
  "PO-Revision-Date: 2020-05-26 07:39+0000\n"
19
19
  "Last-Translator: Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarde"
@@ -8,7 +8,7 @@
8
8
  #
9
9
  msgid ""
10
10
  msgstr ""
11
- "Project-Id-Version: foreman_kubevirt 0.3.0\n"
11
+ "Project-Id-Version: foreman_kubevirt 0.4.1\n"
12
12
  "Report-Msgid-Bugs-To: \n"
13
13
  "PO-Revision-Date: 2020-05-26 07:39+0000\n"
14
14
  "Last-Translator: Carmela Rubiños <carmela.rubinos@gmail.com>, 2020\n"
@@ -10,7 +10,7 @@
10
10
  #
11
11
  msgid ""
12
12
  msgstr ""
13
- "Project-Id-Version: foreman_kubevirt 0.3.0\n"
13
+ "Project-Id-Version: foreman_kubevirt 0.4.1\n"
14
14
  "Report-Msgid-Bugs-To: \n"
15
15
  "PO-Revision-Date: 2020-05-26 07:39+0000\n"
16
16
  "Last-Translator: Giuseppe Pignataro (Fastbyte01) <rogepix@gmail.com>, 2020\n"
@@ -12,7 +12,7 @@
12
12
  #
13
13
  msgid ""
14
14
  msgstr ""
15
- "Project-Id-Version: foreman_kubevirt 0.3.0\n"
15
+ "Project-Id-Version: foreman_kubevirt 0.4.1\n"
16
16
  "Report-Msgid-Bugs-To: \n"
17
17
  "PO-Revision-Date: 2020-05-26 07:39+0000\n"
18
18
  "Last-Translator: Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarde"
@@ -8,7 +8,7 @@
8
8
  #
9
9
  msgid ""
10
10
  msgstr ""
11
- "Project-Id-Version: foreman_kubevirt 0.3.0\n"
11
+ "Project-Id-Version: foreman_kubevirt 0.4.1\n"
12
12
  "Report-Msgid-Bugs-To: \n"
13
13
  "PO-Revision-Date: 2020-05-26 07:39+0000\n"
14
14
  "Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>, 2023\n"
@@ -6,15 +6,15 @@
6
6
  # Translators:
7
7
  # 0868a4d1af5275b3f70b0a6dac4c99a4, 2020
8
8
  # Bryan Kearney <bryan.kearney@gmail.com>, 2020
9
- # Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2024
9
+ # Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2025
10
10
  #
11
11
  msgid ""
12
12
  msgstr ""
13
- "Project-Id-Version: foreman_kubevirt 0.3.0\n"
13
+ "Project-Id-Version: foreman_kubevirt 0.4.1\n"
14
14
  "Report-Msgid-Bugs-To: \n"
15
15
  "PO-Revision-Date: 2020-05-26 07:39+0000\n"
16
16
  "Last-Translator: Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarde"
17
- "n.nl>, 2024\n"
17
+ "n.nl>, 2025\n"
18
18
  "Language-Team: Korean (https://app.transifex.com/foreman/teams/114/ko/)\n"
19
19
  "MIME-Version: 1.0\n"
20
20
  "Content-Type: text/plain; charset=UTF-8\n"
@@ -157,7 +157,7 @@ msgid "Volume size %s is not valid"
157
157
  msgstr "볼륨 크기%s이/가 잘못되었습니다"
158
158
 
159
159
  msgid "X509 Certification Authorities"
160
- msgstr "X509 인증 기관 "
160
+ msgstr "X509 인증 기관"
161
161
 
162
162
  msgid "cni_provider or network are missing"
163
163
  msgstr "cni_provider 또는 네트워크가 없습니다"
@@ -12,7 +12,7 @@
12
12
  #
13
13
  msgid ""
14
14
  msgstr ""
15
- "Project-Id-Version: foreman_kubevirt 0.3.0\n"
15
+ "Project-Id-Version: foreman_kubevirt 0.4.1\n"
16
16
  "Report-Msgid-Bugs-To: \n"
17
17
  "PO-Revision-Date: 2020-05-26 07:39+0000\n"
18
18
  "Last-Translator: Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarde"
@@ -9,7 +9,7 @@
9
9
  #
10
10
  msgid ""
11
11
  msgstr ""
12
- "Project-Id-Version: foreman_kubevirt 0.3.0\n"
12
+ "Project-Id-Version: foreman_kubevirt 0.4.1\n"
13
13
  "Report-Msgid-Bugs-To: \n"
14
14
  "PO-Revision-Date: 2020-05-26 07:39+0000\n"
15
15
  "Last-Translator: Michał Foryt <michal.foryt@gmail.com>, 2020\n"
@@ -12,7 +12,7 @@
12
12
  #
13
13
  msgid ""
14
14
  msgstr ""
15
- "Project-Id-Version: foreman_kubevirt 0.3.0\n"
15
+ "Project-Id-Version: foreman_kubevirt 0.4.1\n"
16
16
  "Report-Msgid-Bugs-To: \n"
17
17
  "PO-Revision-Date: 2020-05-26 07:39+0000\n"
18
18
  "Last-Translator: Amit Upadhye <aupadhye@redhat.com>, 2022\n"
@@ -13,7 +13,7 @@
13
13
  #
14
14
  msgid ""
15
15
  msgstr ""
16
- "Project-Id-Version: foreman_kubevirt 0.3.0\n"
16
+ "Project-Id-Version: foreman_kubevirt 0.4.1\n"
17
17
  "Report-Msgid-Bugs-To: \n"
18
18
  "PO-Revision-Date: 2020-05-26 07:39+0000\n"
19
19
  "Last-Translator: Vladimir Pavlov <v.pavlov@i-teco.ru>, 2020\n"
@@ -10,7 +10,7 @@
10
10
  #
11
11
  msgid ""
12
12
  msgstr ""
13
- "Project-Id-Version: foreman_kubevirt 0.3.0\n"
13
+ "Project-Id-Version: foreman_kubevirt 0.4.1\n"
14
14
  "Report-Msgid-Bugs-To: \n"
15
15
  "PO-Revision-Date: 2020-05-26 07:39+0000\n"
16
16
  "Last-Translator: johnny.westerlund <johnny.westerlund@gmail.com>, 2020\n"
@@ -8,15 +8,15 @@
8
8
  # Bryan Kearney <bryan.kearney@gmail.com>, 2020
9
9
  # tim123, 2020
10
10
  # Amit Upadhye <aupadhye@redhat.com>, 2022
11
- # Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2023
11
+ # Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarden.nl>, 2025
12
12
  #
13
13
  msgid ""
14
14
  msgstr ""
15
- "Project-Id-Version: foreman_kubevirt 0.3.0\n"
15
+ "Project-Id-Version: foreman_kubevirt 0.4.1\n"
16
16
  "Report-Msgid-Bugs-To: \n"
17
17
  "PO-Revision-Date: 2020-05-26 07:39+0000\n"
18
18
  "Last-Translator: Ewoud Kohl van Wijngaarden <ewoud+transifex@kohlvanwijngaarde"
19
- "n.nl>, 2023\n"
19
+ "n.nl>, 2025\n"
20
20
  "Language-Team: Chinese (China) (https://app.transifex.com/foreman/teams/114/zh"
21
21
  "_CN/)\n"
22
22
  "MIME-Version: 1.0\n"
@@ -162,7 +162,7 @@ msgid "Volume size %s is not valid"
162
162
  msgstr "卷大小 %s 无效"
163
163
 
164
164
  msgid "X509 Certification Authorities"
165
- msgstr "X509 证书授权"
165
+ msgstr "X509 认证颁发机构"
166
166
 
167
167
  msgid "cni_provider or network are missing"
168
168
  msgstr "cni_provider 或网络丢失"
@@ -9,7 +9,7 @@
9
9
  #
10
10
  msgid ""
11
11
  msgstr ""
12
- "Project-Id-Version: foreman_kubevirt 0.3.0\n"
12
+ "Project-Id-Version: foreman_kubevirt 0.4.1\n"
13
13
  "Report-Msgid-Bugs-To: \n"
14
14
  "PO-Revision-Date: 2020-05-26 07:39+0000\n"
15
15
  "Last-Translator: Bryan Kearney <bryan.kearney@gmail.com>, 2020\n"
@@ -21,25 +21,82 @@ class ForemanKubevirtTest < ActiveSupport::TestCase
21
21
  assert_equal expected_res, result
22
22
  end
23
23
 
24
+ describe "create_vm" do
25
+ test "uses sanitized NIC names" do
26
+ vms = stub
27
+ pvcs = stub
28
+ pvcs.stubs(:create)
29
+ pvcs.stubs(:delete)
30
+ servers = stub
31
+ servers.stubs(:get)
32
+ client = stub
33
+ client.stubs(:vms).returns(vms)
34
+ client.stubs(:pvcs).returns(pvcs)
35
+ client.stubs(:servers).returns(servers)
36
+ record = new_kubevirt_vcr
37
+ record.stubs(:client).returns(client)
38
+
39
+ expected_networks = [{ :name => "default-network", :multus => { :networkName => "default/network" } }]
40
+ expected_interfaces = [{ :bridge => {}, :name => "default-network" }]
41
+
42
+ vms.expects(:create).with(vm_name: anything, cpus: anything, memory_size: anything, memory_unit: anything, volumes: anything, cloudinit: anything, networks: expected_networks, interfaces: expected_interfaces)
43
+
44
+ record.create_vm({ :name => "test", :volumes_attributes => { 0 => { :capacity => "5" } }, :interfaces_attributes => { "0" => { "cni_provider" => "multus", "network" => "default/network" } } })
45
+ end
46
+ end
47
+
48
+ describe "create_network_element" do
49
+ test "sanitizes NIC names" do
50
+ record = new_kubevirt_vcr
51
+ iface = { network: "default/network", cni_provider: "multus" }
52
+ nic, net = record.send(:create_network_element, iface)
53
+ assert_equal "default-network", nic[:name]
54
+ assert_equal "default-network", net[:name]
55
+ end
56
+ end
57
+
24
58
  describe "networks" do
25
59
  test "returns list of networksattachmentdefs" do
26
60
  Fog.mock!
27
61
  compute_resource = FactoryBot.build(:compute_resource_kubevirt)
28
62
  res = compute_resource.networks
29
63
  assert_equal 1, res.count
30
- assert_equal '0e35b868-2464-11e9-93b4-525400c5a686', res.first.uid
64
+ assert_equal 'default/ovs-foreman', res.first.id
65
+ assert_equal 'default/ovs-foreman', res.first.name
31
66
  end
32
67
 
33
68
  test "in case of exception, returns an empty array" do
34
69
  compute_resource = FactoryBot.build(:compute_resource_kubevirt)
35
70
  client = stub
36
71
  compute_resource.stubs(:client).returns(client)
37
- client.stubs(:networkattachmentdefs).raises("exception")
72
+ client.stubs(:networkattachmentdefs).raises(Fog::Kubevirt::Errors::ClientError.new)
38
73
  res = compute_resource.networks
39
74
  assert_equal 0, res.count
40
75
  end
41
76
  end
42
77
 
78
+ describe "volumes" do
79
+ test "returns empty array when error is raised" do
80
+ Fog.mock!
81
+ compute_resource = new_kubevirt_vcr
82
+ client = stub
83
+ compute_resource.stubs(:client).returns(client)
84
+ client.stubs(:volumes).raises(Fog::Kubevirt::Errors::ClientError.new)
85
+ assert_empty compute_resource.volumes
86
+ end
87
+ end
88
+
89
+ describe "storage_classes" do
90
+ test "returns empty array when error is raised" do
91
+ Fog.mock!
92
+ compute_resource = new_kubevirt_vcr
93
+ client = stub
94
+ compute_resource.stubs(:client).returns(client)
95
+ client.stubs(:storageclasses).raises(Fog::Kubevirt::Errors::ClientError.new)
96
+ assert_empty compute_resource.storage_classes
97
+ end
98
+ end
99
+
43
100
  describe "find_vm_by_uuid" do
44
101
  test "it finds the vm" do
45
102
  Fog.mock!
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_kubevirt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Moti Asayag
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-02-11 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: fog-kubevirt
@@ -150,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
150
150
  - !ruby/object:Gem::Version
151
151
  version: '0'
152
152
  requirements: []
153
- rubygems_version: 3.6.2
153
+ rubygems_version: 4.0.3
154
154
  specification_version: 4
155
155
  summary: Provision and manage Kubevirt Virtual Machines from Foreman
156
156
  test_files: