foreman_bootdisk 19.0.2 → 19.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/app/lib/foreman_bootdisk/scope/bootdisk.rb +2 -2
  3. data/app/models/concerns/foreman_bootdisk/host_ext.rb +2 -2
  4. data/app/models/setting/bootdisk.rb +1 -25
  5. data/app/services/foreman_bootdisk/iso_generator.rb +1 -2
  6. data/app/views/foreman_bootdisk/generic_efi_host.erb +8 -0
  7. data/app/views/foreman_bootdisk/generic_host.erb +14 -9
  8. data/app/views/foreman_bootdisk/generic_static_host.erb +9 -4
  9. data/app/views/foreman_bootdisk/host.erb +9 -4
  10. data/db/migrate/20140522185700_change_templatekind_to_bootdisk.rb +3 -4
  11. data/lib/foreman_bootdisk/engine.rb +77 -12
  12. data/lib/foreman_bootdisk/version.rb +1 -1
  13. metadata +2 -30
  14. data/locale/ca/foreman_bootdisk.edit.po +0 -393
  15. data/locale/ca/foreman_bootdisk.po.time_stamp +0 -0
  16. data/locale/de/foreman_bootdisk.edit.po +0 -398
  17. data/locale/de/foreman_bootdisk.po.time_stamp +0 -0
  18. data/locale/en/foreman_bootdisk.edit.po +0 -388
  19. data/locale/en/foreman_bootdisk.po.time_stamp +0 -0
  20. data/locale/en_GB/foreman_bootdisk.edit.po +0 -394
  21. data/locale/en_GB/foreman_bootdisk.po.time_stamp +0 -0
  22. data/locale/es/foreman_bootdisk.edit.po +0 -394
  23. data/locale/es/foreman_bootdisk.po.time_stamp +0 -0
  24. data/locale/fr/foreman_bootdisk.edit.po +0 -394
  25. data/locale/fr/foreman_bootdisk.po.time_stamp +0 -0
  26. data/locale/it/foreman_bootdisk.edit.po +0 -391
  27. data/locale/it/foreman_bootdisk.po.time_stamp +0 -0
  28. data/locale/ja/foreman_bootdisk.edit.po +0 -393
  29. data/locale/ja/foreman_bootdisk.po.time_stamp +0 -0
  30. data/locale/ko/foreman_bootdisk.edit.po +0 -390
  31. data/locale/ko/foreman_bootdisk.po.time_stamp +0 -0
  32. data/locale/pt_BR/foreman_bootdisk.edit.po +0 -394
  33. data/locale/pt_BR/foreman_bootdisk.po.time_stamp +0 -0
  34. data/locale/ru/foreman_bootdisk.edit.po +0 -395
  35. data/locale/ru/foreman_bootdisk.po.time_stamp +0 -0
  36. data/locale/sv_SE/foreman_bootdisk.edit.po +0 -392
  37. data/locale/sv_SE/foreman_bootdisk.po.time_stamp +0 -0
  38. data/locale/zh_CN/foreman_bootdisk.edit.po +0 -391
  39. data/locale/zh_CN/foreman_bootdisk.po.time_stamp +0 -0
  40. data/locale/zh_TW/foreman_bootdisk.edit.po +0 -391
  41. data/locale/zh_TW/foreman_bootdisk.po.time_stamp +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 288a501e1dc3e32cc0d29175e498c1f6f3c04869e51ab755b8d4c69c1aa68ef2
4
- data.tar.gz: 9180766afc55ffa712ac164688c02fe6edcf322f23c6b3f1e8dafae1e7295c4c
3
+ metadata.gz: c50d87e902b43ec4b94df5845e8f5f660663e9d9220285401e223e2e2cdf3624
4
+ data.tar.gz: 3b1092081bda0337d725ecb66ce3e2acd2ffbf2e32fd179e34f11ee3bc137b28
5
5
  SHA512:
6
- metadata.gz: 73ab12281dc578414885ab788023b80f499cb075d53c365597561d1f7c02b32cbd31234ed4cd4e73ae81a23309e2c723f603b5a7d139fed5a8dd53aca52aee0b
7
- data.tar.gz: 7e2eae93d56bc434ca4a7a845a05ff909f6b116e137b6525463acace00a9671fa4600043cbae86f92a10441031e975525dac3381cadbfb536539ce4898839a9a
6
+ metadata.gz: eaa41fe654e374bc71a02a8fd30b5b74cb50e15cded72af4375e4df943dd890f086abe973a376dc84bb5f307bd8e1c62bb5f27505176ff5299229110434b1760
7
+ data.tar.gz: 978d4631aa89857baf2a8b1e26fd19917e5118fb482f03ddfe7a3ac5b52ed78f71f85142a2d3a8a0b17eb4aebbda2e6f9b081e6fe8075c6490c32f85a4d3cd68
@@ -14,8 +14,8 @@ module ForemanBootdisk
14
14
  optional :mac, String, 'MAC address of the host', default: 'MAC address of the current host'
15
15
  optional :action, String, 'Bootloader to use', default: 'iPXE'
16
16
  returns String, desc: 'URL for boot chain'
17
- example 'bootdisk_chain_url #=> "http://foreman.some.host.fqdn/unattended/iPXE?mac=00%3A11%3A22%3A33%3A44%3A55"'
18
- example 'bootdisk_chain_url("00:11:22:33:44:55") #=> "http://foreman.some.host.fqdn/unattended/iPXE?mac=00%3A11%3A22%3A33%3A44%3A55"'
17
+ example 'bootdisk_chain_url #=> "http://foreman.example.com/unattended/iPXE?mac=00%3A11%3A22%3A33%3A44%3A55"'
18
+ example 'bootdisk_chain_url("00:11:22:33:44:55") #=> "http://foreman.example.com/unattended/iPXE?mac=00%3A11%3A22%3A33%3A44%3A55"'
19
19
  end
20
20
  def bootdisk_chain_url(mac = host.try(:mac), action = 'iPXE')
21
21
  url = foreman_url(action)
@@ -24,7 +24,7 @@ module ForemanBootdisk
24
24
  end
25
25
 
26
26
  def bootdisk?
27
- managed? && bootdisk_build? && SETTINGS[:unattended]
27
+ managed? && bootdisk_build?
28
28
  end
29
29
 
30
30
  def bootdisk_downloadable?
@@ -36,7 +36,7 @@ module ForemanBootdisk
36
36
  end
37
37
 
38
38
  def can_be_built?
39
- super || (managed? && SETTINGS[:unattended] && bootdisk_build? && !build?)
39
+ super || (managed? && bootdisk_build? && !build?)
40
40
  end
41
41
 
42
42
  apipie_update :class do
@@ -1,31 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Setting
4
- class Bootdisk < ::Setting
5
- def self.default_settings
6
- ipxe = ['/usr/lib/ipxe'].find { |p| File.exist?(p) } || '/usr/share/ipxe'
7
- isolinux = ['/usr/lib/ISOLINUX'].find { |p| File.exist?(p) } || '/usr/share/syslinux'
8
- syslinux = ['/usr/lib/syslinux/modules/bios', '/usr/lib/syslinux'].find { |p| File.exist?(p) } || '/usr/share/syslinux'
9
- grub2 = ['/var/lib/tftpboot/grub2'].find { |p| File.exist?(p) } || '/var/lib/foreman/bootdisk'
10
- templates = -> { Hash[ProvisioningTemplate.where(template_kind: TemplateKind.where(name: 'Bootdisk')).map { |temp| [temp[:name], temp[:name]] }] }
11
-
12
- [
13
- set('bootdisk_ipxe_dir', N_('Path to directory containing iPXE images'), ipxe, N_('iPXE directory')),
14
- set('bootdisk_isolinux_dir', N_('Path to directory containing isolinux images'), isolinux, N_('ISOLINUX directory')),
15
- set('bootdisk_syslinux_dir', N_('Path to directory containing syslinux images'), syslinux, N_('SYSLINUX directory')),
16
- set('bootdisk_grub2_dir', N_('Path to directory containing grubx64.efi and shimx64.efi'), grub2, N_('Grub2 directory')),
17
- set('bootdisk_host_template', N_('iPXE template to use for host-specific boot disks'),
18
- 'Boot disk iPXE - host', N_('Host image template'), nil, collection: templates),
19
- set('bootdisk_generic_host_template', N_('iPXE template to use for generic host boot disks'),
20
- 'Boot disk iPXE - generic host', N_('Generic image template'), nil, collection: templates),
21
- set('bootdisk_generic_efi_host_template', N_('Grub2 template to use for generic EFI host boot disks'),
22
- 'Boot disk Grub2 EFI - generic host', N_('Generic Grub2 EFI image template'), nil, collection: templates),
23
- set('bootdisk_mkiso_command', N_('Command to generate ISO image, use genisoimage or mkisofs'), 'genisoimage', N_('ISO generation command')),
24
- set('bootdisk_cache_media', N_('Installation media files will be cached for full host images'), true, N_('Installation media caching')),
25
- set('bootdisk_allowed_types', N_('List of allowed bootdisk types, remove type to disable it'), Setting::Bootdisk.bootdisk_types, N_('Allowed bootdisk types'))
26
- ]
27
- end
28
-
4
+ class Bootdisk
29
5
  def self.humanized_category
30
6
  N_('Boot disk')
31
7
  end
@@ -170,8 +170,7 @@ module ForemanBootdisk
170
170
  # Also we cannot rely on systemd-tmpfiles-clean as private temporary files are not subject
171
171
  # of scheduled cleanups. Let's clean bootdisks from prevous requests manually by finding
172
172
  # and deleting all directories created 30 minutes ago.
173
- delete_older_than = Time.now.to_i - (60 * 30)
174
- Rails.root.glob('tmp/bootdisk-iso-*').select { |f| File.ctime(f) < delete_older_than }.each { |f| FileUtils.rm_f(f) }
173
+ Rails.root.glob('tmp/bootdisk-iso-*').select { |f| File.ctime(f) < (Time.now.getlocal - 30.minutes) }.each { |f| FileUtils.rm_rf(f) }
175
174
  end
176
175
 
177
176
  def self.build_mkiso_command(output_file:, source_directory:, extra_commands:)
@@ -1,3 +1,11 @@
1
+ <%#
2
+ name: Boot disk Grub2 EFI - generic host
3
+ snippet: false
4
+ model: ProvisioningTemplate
5
+ kind: Bootdisk
6
+ description: |
7
+ Boot disk Grub2 EFI - generic host
8
+ -%>
1
9
  #
2
10
  # Boot disk Grub2 EFI - generic host
3
11
  #
@@ -1,13 +1,18 @@
1
+ <%#
2
+ name: Boot disk iPXE - generic host
3
+ snippet: false
4
+ model: ProvisioningTemplate
5
+ kind: Bootdisk
6
+ description: |
7
+ Example foreman_bootdisk generic host template
8
+
9
+ This template is generic, but it will chainload to Foreman so expects the
10
+ host to be registered already.
11
+
12
+ It loops through all interfaces using DHCP, requesting a template from
13
+ Foreman in the hope that one of the MACs or IPs matches.
14
+ -%>
1
15
  #!ipxe
2
- # Example foreman_bootdisk generic host template
3
- #
4
- # This template is generic, but it will chainload to Foreman so expects the
5
- # host to be registered already.
6
- #
7
- # It loops through all interfaces using DHCP, requesting a template from
8
- # Foreman in the hope that one of the MACs or IPs matches.
9
- #
10
- # Copy this template to customize it, the original is read-only.
11
16
 
12
17
  echo Foreman Bootdisk: Generic image
13
18
 
@@ -1,8 +1,13 @@
1
+ <%#
2
+ name: Boot disk iPXE - generic static host
3
+ snippet: false
4
+ model: ProvisioningTemplate
5
+ kind: Bootdisk
6
+ description: |
7
+ Generic host template with interactive static IP configuration. Tokens
8
+ must be disabled in order to access templates via MAC addresses.
9
+ -%>
1
10
  #!ipxe
2
- #
3
- # Generic host template with interactive static IP configuration. Tokens
4
- # must be disabled in order to access templates via MAC addresses.
5
- #
6
11
 
7
12
  <% (0..32).each do |i| -%>
8
13
  :net<%= i %>
@@ -1,8 +1,13 @@
1
+ <%#
2
+ name: Boot disk iPXE - host
3
+ snippet: false
4
+ model: ProvisioningTemplate
5
+ kind: Bootdisk
6
+ description: |
7
+ Example foreman_bootdisk host template
8
+ This template is rendered for use inside a host-specific boot disk.
9
+ -%>
1
10
  #!ipxe
2
- # Example foreman_bootdisk host template
3
- # This template is rendered for use inside a host-specific boot disk.
4
- #
5
- # Copy this template to customize it, the original is read-only.
6
11
 
7
12
  <%
8
13
  interface = @host.provision_interface
@@ -7,6 +7,7 @@ class ChangeTemplatekindToBootdisk < ActiveRecord::Migration[4.2]
7
7
  else
8
8
  'templates'
9
9
  end
10
+ self.inheritance_column = :_type_disabled
10
11
  end
11
12
 
12
13
  def self.up
@@ -15,10 +16,8 @@ class ChangeTemplatekindToBootdisk < ActiveRecord::Migration[4.2]
15
16
  tmpl_h = Setting.find_by(name: 'bootdisk_host_template').try(:value)
16
17
  tmpl_g = Setting.find_by(name: 'bootdisk_generic_host_template').try(:value)
17
18
 
18
- (FakeConfigTemplate.unscoped.where('name LIKE ?', '%Boot disk%') |
19
- FakeConfigTemplate.unscoped.where(name: [tmpl_h, tmpl_g].compact)).each do |tmpl|
20
- tmpl.update_attribute(:template_kind_id, kind.id)
21
- end
19
+ FakeConfigTemplate.unscoped.where('name LIKE ?', '%Boot disk%').update_all(template_kind_id: kind.id)
20
+ FakeConfigTemplate.unscoped.where(name: [tmpl_h, tmpl_g].compact).update_all(template_kind_id: kind.id)
22
21
  end
23
22
 
24
23
  def self.down
@@ -17,15 +17,6 @@ module ForemanBootdisk
17
17
  app.routes_reloader.paths << "#{ForemanBootdisk::Engine.root}/config/routes/mount_engine.rb"
18
18
  end
19
19
 
20
- initializer 'foreman_bootdisk.load_default_settings', before: :load_config_initializers do |_app|
21
- table_exists = begin
22
- Setting.table_exists?
23
- rescue StandardError
24
- false
25
- end
26
- require_dependency File.expand_path('../../app/models/setting/bootdisk.rb', __dir__) if table_exists
27
- end
28
-
29
20
  initializer 'foreman_bootdisk.load_app_instance_data' do |app|
30
21
  ForemanBootdisk::Engine.paths['db/migrate'].existent.each do |path|
31
22
  app.config.paths['db/migrate'] << path
@@ -38,7 +29,7 @@ module ForemanBootdisk
38
29
 
39
30
  initializer 'foreman_bootdisk.register_plugin', before: :finisher_hook do |_app|
40
31
  Foreman::Plugin.register :foreman_bootdisk do
41
- requires_foreman '>= 3.1'
32
+ requires_foreman '>= 3.3'
42
33
  # Add Global files for extending foreman-core components and routes
43
34
  register_global_js_file 'global'
44
35
 
@@ -50,7 +41,6 @@ module ForemanBootdisk
50
41
  end
51
42
 
52
43
  role 'Boot disk access', [:download_bootdisk], 'Role granting permissions to download bootdisks'
53
-
54
44
  add_all_permissions_to_default_roles
55
45
 
56
46
  apipie_documented_controllers ["#{ForemanBootdisk::Engine.root}/app/controllers/foreman_bootdisk/api/v2/*.rb"]
@@ -65,6 +55,81 @@ module ForemanBootdisk
65
55
  cx.add_pagelet :subnet_index_action_buttons, name: 'Bootdisk', partial: 'subnets/bootdisk_action_buttons'
66
56
  cx.add_pagelet :subnet_index_title_buttons, name: 'Bootdisk', partial: 'subnets/bootdisk_title_buttons'
67
57
  end
58
+
59
+ settings do
60
+ category :bootdisk, N_("Boot disk") do
61
+ ipxe = ['/usr/lib/ipxe'].find { |p| File.exist?(p) } || '/usr/share/ipxe'
62
+ isolinux = ['/usr/lib/ISOLINUX'].find { |p| File.exist?(p) } || '/usr/share/syslinux'
63
+ syslinux = ['/usr/lib/syslinux/modules/bios', '/usr/lib/syslinux'].find { |p| File.exist?(p) } || '/usr/share/syslinux'
64
+ grub2 = ['/var/lib/tftpboot/grub2'].find { |p| File.exist?(p) } || '/var/lib/foreman/bootdisk'
65
+ templates = -> {
66
+ Hash[ProvisioningTemplate.where(template_kind: TemplateKind.where(name: 'Bootdisk')).map { |temp| [temp[:name], temp[:name]] }]
67
+ }
68
+
69
+ setting "bootdisk_ipxe_dir",
70
+ type: :string,
71
+ default: ipxe,
72
+ full_name: N_("iPXE directory"),
73
+ description: N_("Path to directory containing iPXE images")
74
+
75
+ setting "bootdisk_isolinux_dir",
76
+ type: :string,
77
+ default: isolinux,
78
+ full_name: N_("ISOLINUX directory"),
79
+ description: N_("Path to directory containing isolinux images")
80
+
81
+ setting "bootdisk_syslinux_dir",
82
+ type: :string,
83
+ default: syslinux,
84
+ full_name: N_("SYSLINUX directory"),
85
+ description: N_("Path to directory containing syslinux images")
86
+
87
+ setting "bootdisk_grub2_dir",
88
+ type: :string,
89
+ default: grub2,
90
+ full_name: N_("Grub2 directory"),
91
+ description: N_("Path to directory containing grubx64.efi and shimx64.efi")
92
+
93
+ setting "bootdisk_host_template",
94
+ type: :string,
95
+ collection: templates,
96
+ default: "Boot disk iPXE - host",
97
+ full_name: N_("Host image template"),
98
+ description: N_("iPXE template to use for host-specific boot disks")
99
+
100
+ setting "bootdisk_generic_host_template",
101
+ type: :string,
102
+ collection: templates,
103
+ default: "Boot disk iPXE - generic host",
104
+ full_name: N_("Generic image template"),
105
+ description: N_("iPXE template to use for generic host boot disks")
106
+
107
+ setting "bootdisk_generic_efi_host_template",
108
+ type: :string,
109
+ collection: templates,
110
+ default: "Boot disk Grub2 EFI - generic host",
111
+ full_name: N_("Generic Grub2 EFI image template"),
112
+ description: N_("iPXE template to use for generic EFI host boot disks")
113
+
114
+ setting "bootdisk_mkiso_command",
115
+ type: :string,
116
+ default: "genisoimage",
117
+ full_name: N_("ISO generation command"),
118
+ description: N_("Command to generate ISO image, use genisoimage or mkisofs")
119
+
120
+ setting "bootdisk_cache_media",
121
+ type: :boolean,
122
+ default: true,
123
+ full_name: N_("Installation media caching"),
124
+ description: N_("Installation media files will be cached for full host images")
125
+
126
+ setting "bootdisk_allowed_types",
127
+ type: :string,
128
+ default: Setting::Bootdisk.bootdisk_types,
129
+ full_name: N_("Allowed bootdisk types"),
130
+ description: N_("List of allowed bootdisk types, remove type to disable it")
131
+ end
132
+ end
68
133
  end
69
134
  end
70
135
 
@@ -77,7 +142,7 @@ module ForemanBootdisk
77
142
  config.to_prepare do
78
143
  begin
79
144
  Host::Managed.prepend ForemanBootdisk::HostExt
80
- Host::Managed.include ForemanBootdisk::Orchestration::Compute if SETTINGS[:unattended]
145
+ Host::Managed.include ForemanBootdisk::Orchestration::Compute
81
146
  HostsHelper.prepend ForemanBootdisk::HostsHelperExt
82
147
  SubnetsHelper.prepend ForemanBootdisk::SubnetsHelperExt
83
148
  Foreman::Model::Vmware.prepend ForemanBootdisk::ComputeResources::Vmware if Foreman::Model::Vmware.available?
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ForemanBootdisk
4
- VERSION = '19.0.2'
4
+ VERSION = '19.0.5'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_bootdisk
3
3
  version: !ruby/object:Gem::Version
4
- version: 19.0.2
4
+ version: 19.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dominic Cleal
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-14 00:00:00.000000000 Z
11
+ date: 2022-04-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: theforeman-rubocop
@@ -96,64 +96,36 @@ files:
96
96
  - locale/Makefile
97
97
  - locale/action_names.rb
98
98
  - locale/ca/LC_MESSAGES/foreman_bootdisk.mo
99
- - locale/ca/foreman_bootdisk.edit.po
100
99
  - locale/ca/foreman_bootdisk.po
101
- - locale/ca/foreman_bootdisk.po.time_stamp
102
100
  - locale/de/LC_MESSAGES/foreman_bootdisk.mo
103
- - locale/de/foreman_bootdisk.edit.po
104
101
  - locale/de/foreman_bootdisk.po
105
- - locale/de/foreman_bootdisk.po.time_stamp
106
102
  - locale/en/LC_MESSAGES/foreman_bootdisk.mo
107
- - locale/en/foreman_bootdisk.edit.po
108
103
  - locale/en/foreman_bootdisk.po
109
- - locale/en/foreman_bootdisk.po.time_stamp
110
104
  - locale/en_GB/LC_MESSAGES/foreman_bootdisk.mo
111
- - locale/en_GB/foreman_bootdisk.edit.po
112
105
  - locale/en_GB/foreman_bootdisk.po
113
- - locale/en_GB/foreman_bootdisk.po.time_stamp
114
106
  - locale/es/LC_MESSAGES/foreman_bootdisk.mo
115
- - locale/es/foreman_bootdisk.edit.po
116
107
  - locale/es/foreman_bootdisk.po
117
- - locale/es/foreman_bootdisk.po.time_stamp
118
108
  - locale/foreman_bootdisk.pot
119
109
  - locale/fr/LC_MESSAGES/foreman_bootdisk.mo
120
- - locale/fr/foreman_bootdisk.edit.po
121
110
  - locale/fr/foreman_bootdisk.po
122
- - locale/fr/foreman_bootdisk.po.time_stamp
123
111
  - locale/gemspec.rb
124
112
  - locale/it/LC_MESSAGES/foreman_bootdisk.mo
125
- - locale/it/foreman_bootdisk.edit.po
126
113
  - locale/it/foreman_bootdisk.po
127
- - locale/it/foreman_bootdisk.po.time_stamp
128
114
  - locale/ja/LC_MESSAGES/foreman_bootdisk.mo
129
- - locale/ja/foreman_bootdisk.edit.po
130
115
  - locale/ja/foreman_bootdisk.po
131
- - locale/ja/foreman_bootdisk.po.time_stamp
132
116
  - locale/ko/LC_MESSAGES/foreman_bootdisk.mo
133
- - locale/ko/foreman_bootdisk.edit.po
134
117
  - locale/ko/foreman_bootdisk.po
135
- - locale/ko/foreman_bootdisk.po.time_stamp
136
118
  - locale/pt_BR/LC_MESSAGES/foreman_bootdisk.mo
137
- - locale/pt_BR/foreman_bootdisk.edit.po
138
119
  - locale/pt_BR/foreman_bootdisk.po
139
- - locale/pt_BR/foreman_bootdisk.po.time_stamp
140
120
  - locale/ru/LC_MESSAGES/foreman_bootdisk.mo
141
- - locale/ru/foreman_bootdisk.edit.po
142
121
  - locale/ru/foreman_bootdisk.po
143
- - locale/ru/foreman_bootdisk.po.time_stamp
144
122
  - locale/sv_SE/LC_MESSAGES/foreman_bootdisk.mo
145
- - locale/sv_SE/foreman_bootdisk.edit.po
146
123
  - locale/sv_SE/foreman_bootdisk.po
147
- - locale/sv_SE/foreman_bootdisk.po.time_stamp
148
124
  - locale/zanata.xml
149
125
  - locale/zh_CN/LC_MESSAGES/foreman_bootdisk.mo
150
- - locale/zh_CN/foreman_bootdisk.edit.po
151
126
  - locale/zh_CN/foreman_bootdisk.po
152
- - locale/zh_CN/foreman_bootdisk.po.time_stamp
153
127
  - locale/zh_TW/LC_MESSAGES/foreman_bootdisk.mo
154
- - locale/zh_TW/foreman_bootdisk.edit.po
155
128
  - locale/zh_TW/foreman_bootdisk.po
156
- - locale/zh_TW/foreman_bootdisk.po.time_stamp
157
129
  - package.json
158
130
  - webpack/__mocks__/foremanReact/common/HOC.js
159
131
  - webpack/__mocks__/foremanReact/common/I18n.js