foreman_discovery 20.0.0 → 21.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/models/host/discovered.rb +10 -1
- data/app/models/setting/discovered.rb +1 -43
- data/app/services/foreman_discovery/host_converter.rb +9 -2
- data/app/views/foreman_discovery/debian_kexec.erb +14 -13
- data/app/views/foreman_discovery/redhat_kexec.erb +16 -15
- data/lib/foreman_discovery/engine.rb +195 -32
- data/lib/foreman_discovery/version.rb +1 -1
- data/locale/ca/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/ca/foreman_discovery.po +17 -11
- data/locale/de/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/de/foreman_discovery.po +9 -3
- data/locale/en/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/en/foreman_discovery.po +7 -1
- data/locale/en_GB/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/en_GB/foreman_discovery.po +9 -3
- data/locale/es/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/es/foreman_discovery.po +9 -3
- data/locale/foreman_discovery.pot +23 -9
- data/locale/fr/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/fr/foreman_discovery.po +39 -33
- data/locale/gl/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/gl/foreman_discovery.po +19 -13
- data/locale/it/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/it/foreman_discovery.po +9 -3
- data/locale/ja/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/ja/foreman_discovery.po +11 -5
- data/locale/ko/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/ko/foreman_discovery.po +9 -3
- data/locale/pt_BR/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/pt_BR/foreman_discovery.po +9 -3
- data/locale/ru/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/ru/foreman_discovery.po +9 -3
- data/locale/sv_SE/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/sv_SE/foreman_discovery.po +19 -13
- data/locale/zh_CN/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/zh_CN/foreman_discovery.po +11 -5
- data/locale/zh_TW/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/zh_TW/foreman_discovery.po +9 -3
- data/package.json +5 -7
- data/test/unit/discovered_extensions_test.rb +14 -1
- data/test/unit/host_discovered_test.rb +7 -1
- data/test/unit/managed_extensions_test.rb +1 -1
- metadata +13 -27
- data/locale/ca/foreman_discovery.edit.po +0 -1099
- data/locale/de/foreman_discovery.edit.po +0 -1106
- data/locale/en/foreman_discovery.edit.po +0 -1091
- data/locale/en_GB/foreman_discovery.edit.po +0 -1102
- data/locale/es/foreman_discovery.edit.po +0 -1103
- data/locale/fr/foreman_discovery.edit.po +0 -1099
- data/locale/gl/foreman_discovery.edit.po +0 -1097
- data/locale/it/foreman_discovery.edit.po +0 -1099
- data/locale/ja/foreman_discovery.edit.po +0 -1096
- data/locale/ko/foreman_discovery.edit.po +0 -1096
- data/locale/messages.mo +0 -0
- data/locale/pt_BR/foreman_discovery.edit.po +0 -1105
- data/locale/ru/foreman_discovery.edit.po +0 -1108
- data/locale/sv_SE/foreman_discovery.edit.po +0 -1100
- data/locale/zh_CN/foreman_discovery.edit.po +0 -1094
- data/locale/zh_TW/foreman_discovery.edit.po +0 -1097
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dbc5abad67ec340bdfe3ed25013bd59afd164c5aa5b71197cf115fca531f07f8
|
4
|
+
data.tar.gz: ba6b00159de292b52754d70bab8a79bbd0b77e29f7cba34e2e6e16ab6a5f05a6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c812aab3400e97c3b25523cc6bb7bd118e86a0c6c71383275f442e3c49f71d6a87d6a3f413b9ac5e3b0278d8e8fd7c3cd535bf9dcfc6e2f033433d674f1dcb46
|
7
|
+
data.tar.gz: f8f22a7eecfa7cdb30f22e691b8433983719d8449b71d9330c6fbf8bfe4240359846b701b71456b46d3b5acca469c65062f4ca57d608913d4ca15fcb16b99352
|
@@ -63,7 +63,8 @@ class Host::Discovered < ::Host::Base
|
|
63
63
|
bootif_mac = FacterUtils::bootif_mac(facts).try(:downcase)
|
64
64
|
hostname = ''
|
65
65
|
if Setting[:discovery_naming] == 'MAC-name'
|
66
|
-
|
66
|
+
hostname_mac = return_first_valid_mac(Setting::Discovered.discovery_hostname_fact_array, facts) || bootif_mac
|
67
|
+
hostname = NameGenerator.new.generate_next_mac_name(hostname_mac)
|
67
68
|
elsif Setting[:discovery_naming] == 'Random-name'
|
68
69
|
hostname = NameGenerator.new.generate_next_random_name
|
69
70
|
else
|
@@ -226,6 +227,14 @@ class Host::Discovered < ::Host::Base
|
|
226
227
|
hostname
|
227
228
|
end
|
228
229
|
|
230
|
+
def self.return_first_valid_mac(facts_array, facts)
|
231
|
+
return facts[facts_array] if !facts_array.is_a?(Array)
|
232
|
+
facts_array.each do |value|
|
233
|
+
return facts[value] if !facts[value].nil? && facts[value].match(/([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})/)
|
234
|
+
end
|
235
|
+
return nil
|
236
|
+
end
|
237
|
+
|
229
238
|
def self.return_first_valid_fact(facts_array, facts)
|
230
239
|
return facts[facts_array] if !facts_array.is_a?(Array)
|
231
240
|
facts_array.each do |value|
|
@@ -1,46 +1,4 @@
|
|
1
|
-
class Setting::Discovered
|
2
|
-
BLANK_ATTRS << "discovery_location"
|
3
|
-
BLANK_ATTRS << "discovery_organization"
|
4
|
-
BLANK_ATTRS << "discovery_fact_column"
|
5
|
-
BLANK_ATTRS << 'discovery_facts_highlights'
|
6
|
-
BLANK_ATTRS << 'discovery_facts_storage'
|
7
|
-
BLANK_ATTRS << 'discovery_facts_software'
|
8
|
-
BLANK_ATTRS << 'discovery_facts_hardware'
|
9
|
-
BLANK_ATTRS << 'discovery_facts_network'
|
10
|
-
BLANK_ATTRS << 'discovery_facts_ipmi'
|
11
|
-
|
12
|
-
STRING_PRESENCE_ATTRS = ['discovery_hostname', 'discovery_prefix']
|
13
|
-
validates :value, :presence => true, :if => proc { |s| STRING_PRESENCE_ATTRS.include?(s.name) }
|
14
|
-
|
15
|
-
def self.default_settings
|
16
|
-
[
|
17
|
-
self.set('discovery_location', N_("The default location to place discovered hosts in"), "", N_("Discovery location"), nil, { :collection => Proc.new {Hash[Location.all.map{|loc| [loc[:title], loc[:title]]}]} }),
|
18
|
-
self.set('discovery_organization', N_("The default organization to place discovered hosts in"), "", N_("Discovery organization"), nil, { :collection => Proc.new {Hash[Organization.all.map{|org| [org[:title], org[:title]]}]} }),
|
19
|
-
self.set('discovery_fact', N_("Fact name to use for primary interface detection"), "discovery_bootif", N_("Interface fact")),
|
20
|
-
self.set('discovery_auto_bond', N_("Automatic bond interface (if another interface is detected on the same VLAN via LLDP)"), false, N_("Create bond interfaces")),
|
21
|
-
self.set('discovery_clean_facts', N_("Clean all reported facts during provisioning (except discovery facts)"), false, N_("Clean all facts")),
|
22
|
-
self.set('discovery_hostname', N_("List of facts to use for the hostname (separated by comma, first wins)"), "discovery_bootif", N_("Hostname facts")),
|
23
|
-
self.set('discovery_auto', N_("Automatically provision newly discovered hosts, according to the provisioning rules"), false, N_("Auto provisioning")),
|
24
|
-
self.set('discovery_reboot', N_("Automatically reboot or kexec discovered host during provisioning"), true, N_("Reboot")),
|
25
|
-
self.set('discovery_prefix', N_("The default prefix to use for the host name, must start with a letter"), "mac", N_("Hostname prefix")),
|
26
|
-
self.set('discovery_fact_column', N_("Extra facter columns to show in host lists (separate by comma)"), "", N_("Fact columns")),
|
27
|
-
self.set('discovery_facts_highlights', N_("Regex to organize facts for highlights section - e.g. ^(abc|cde)$"), "", N_("Highlighted facts")),
|
28
|
-
self.set('discovery_facts_storage', N_("Regex to organize facts for storage section"), "", N_("Storage facts")),
|
29
|
-
self.set('discovery_facts_software', N_("Regex to organize facts for software section"), "", N_("Software facts")),
|
30
|
-
self.set('discovery_facts_hardware', N_("Regex to organize facts for hardware section"), "", N_("Hardware facts")),
|
31
|
-
self.set('discovery_facts_network', N_("Regex to organize facts for network section"), "", N_("Network facts")),
|
32
|
-
self.set('discovery_facts_ipmi', N_("Regex to organize facts for ipmi section"), "", N_("IPMI facts")),
|
33
|
-
self.set('discovery_lock', N_("Automatically generate PXE configuration to pin a newly discovered host to discovery"), false, N_("Lock PXE")),
|
34
|
-
self.set('discovery_pxelinux_lock_template', N_("PXELinux template to be used when pinning a host to discovery"), 'pxelinux_discovery', N_("Locked PXELinux template name"), nil, { :collection => Proc.new {Hash[ProvisioningTemplate.where(:template_kind => TemplateKind.find_by_name(:snippet)).map{|template| [template[:name], template[:name]]}]} }),
|
35
|
-
self.set('discovery_pxegrub_lock_template', N_("PXEGrub template to be used when pinning a host to discovery"), 'pxegrub_discovery', N_("Locked PXEGrub template name"), nil, { :collection => Proc.new {Hash[ProvisioningTemplate.where(:template_kind => TemplateKind.find_by_name(:snippet)).map{|template| [template[:name], template[:name]]}]} }),
|
36
|
-
self.set('discovery_pxegrub2_lock_template', N_("PXEGrub2 template to be used when pinning a host to discovery"), 'pxegrub2_discovery', N_("Locked PXEGrub2 template name"), nil, { :collection => Proc.new {Hash[ProvisioningTemplate.where(:template_kind => TemplateKind.find_by_name(:snippet)).map{|template| [template[:name], template[:name]]}]} }),
|
37
|
-
self.set('discovery_always_rebuild_dns', N_("Force DNS entries creation when provisioning discovered host"), true, N_("Force DNS")),
|
38
|
-
self.set('discovery_error_on_existing', N_("Do not allow to discover existing managed host matching MAC of a provisioning NIC (errors out early)"), false, N_("Error on existing NIC")),
|
39
|
-
self.set('discovery_naming', N_("Discovery hostname naming pattern"), 'Fact', N_("Type of name generator"), nil, {:collection => Proc.new {::Host::Discovered::NAMING_PATTERNS} }),
|
40
|
-
self.set('discovery_prefer_ipv6', N_("Prefer IPv6 to IPv4 when calling discovered nodes"), false, N_("Prefer IPv6")),
|
41
|
-
]
|
42
|
-
end
|
43
|
-
|
1
|
+
class Setting::Discovered
|
44
2
|
def self.discovery_fact_column_array
|
45
3
|
from_array(Setting['discovery_fact_column'])
|
46
4
|
end
|
@@ -52,14 +52,21 @@ class ForemanDiscovery::HostConverter
|
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
55
|
+
def self.ip_for_subnet(subnet, mac, ip)
|
56
|
+
return ip if ip && subnet&.unused_ip(mac)&.ip_include?(ip)
|
57
|
+
|
58
|
+
unused_ip_for_subnet(subnet, mac, ip)
|
59
|
+
end
|
60
|
+
|
55
61
|
def self.unused_ip_for_host(host, new_subnet = nil, new_subnet6 = nil)
|
56
62
|
host.interfaces.each do |interface|
|
57
63
|
next unless interface.managed?
|
58
64
|
|
59
65
|
interface.subnet = new_subnet if new_subnet
|
60
66
|
interface.subnet6 = new_subnet6 if new_subnet6
|
61
|
-
|
62
|
-
interface.
|
67
|
+
|
68
|
+
interface.ip = ip_for_subnet(interface.subnet, interface.mac, interface.ip) if interface.subnet
|
69
|
+
interface.ip6 = ip_for_subnet(interface.subnet6, interface.mac, interface.ip6) if interface.subnet6
|
63
70
|
end
|
64
71
|
end
|
65
72
|
|
@@ -4,18 +4,17 @@ name: Discovery Debian kexec
|
|
4
4
|
oses:
|
5
5
|
- Debian
|
6
6
|
- Ubuntu
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
Extra options like --reset-vga can be set via "extra" array.
|
7
|
+
description: |
|
8
|
+
This template is used to pass command line options to kexec when reloading
|
9
|
+
kernel on a discovered host instead of rebooting. This is useful in PXE-less
|
10
|
+
environments. The template must generate JSON format with the following items
|
11
|
+
"kernel", "initram", "append" and "extra". The kexec command is composed in
|
12
|
+
the following way:
|
13
|
+
|
14
|
+
kexec --force --debug --append=$append --initrd=$initram $extra $kernel
|
15
|
+
|
16
|
+
Please read kexec(8) man page for more information about semantics.
|
17
|
+
Extra options like --reset-vga can be set via "extra" array.
|
19
18
|
-%>
|
20
19
|
<%
|
21
20
|
mac = @host.facts['discovery_bootif']
|
@@ -31,10 +30,12 @@ Extra options like --reset-vga can be set via "extra" array.
|
|
31
30
|
options << 'console-setup/ask_detect=false console-setup/layout=USA console-setup/variant=USA keyboard-configuration/layoutcode=us localechooser/translation/warn-light=true localechooser/translation/warn-severe=true'
|
32
31
|
options << "locale=#{host_param('lang') || 'en_US'}"
|
33
32
|
options << "inst.stage2=#{@host.operatingsystem.medium_uri(@host)}" if @host.operatingsystem.name.match(/Atomic/i)
|
33
|
+
extra = []
|
34
|
+
extra << "--kexec-file-syscall" if @host.pxe_loader.include?('SecureBoot')
|
34
35
|
-%>
|
35
36
|
{
|
36
37
|
"kernel": "<%= @kernel_uri %>",
|
37
38
|
"initram": "<%= @initrd_uri %>",
|
38
39
|
"append": "url=<%= foreman_url('provision') + "&static=yes" %> interface=<%= mac %> netcfg/get_ipaddress=<%= ip %> netcfg/get_netmask=<%= mask %> netcfg/get_gateway=<%= gw %> netcfg/get_nameservers=<%= dns %> netcfg/disable_dhcp=true netcfg/get_hostname=<%= @host.name %> BOOTIF=<%= bootif %> <%= options.compact.join(' ') %>",
|
39
|
-
"extra":
|
40
|
+
"extra": <%= extra %>
|
40
41
|
}
|
@@ -14,18 +14,17 @@ oses:
|
|
14
14
|
- RedHat 5
|
15
15
|
- RedHat 6
|
16
16
|
- RedHat 7
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
Extra options like --reset-vga can be set via "extra" array.
|
17
|
+
description: |
|
18
|
+
This template is used to pass command line options to kexec when reloading
|
19
|
+
kernel on a discovered host instead of rebooting. This is useful in PXE-less
|
20
|
+
environments. The template must generate JSON format with the following items
|
21
|
+
"kernel", "initram", "append" and "extra". The kexec command is composed in
|
22
|
+
the following way:
|
23
|
+
|
24
|
+
kexec --force --debug --append=$append --initrd=$initram $extra $kernel
|
25
|
+
|
26
|
+
Please read kexec(8) man page for more information about semantics.
|
27
|
+
Extra options like --reset-vga can be set via "extra" array.
|
29
28
|
-%>
|
30
29
|
<%
|
31
30
|
mac = @host.facts['discovery_bootif']
|
@@ -41,15 +40,17 @@ Extra options like --reset-vga can be set via "extra" array.
|
|
41
40
|
if @host.operatingsystem.name != 'Fedora' && @host.operatingsystem.major.to_i >= 7 && host_param_true?('fips_enabled')
|
42
41
|
options.push('fips=1')
|
43
42
|
end
|
43
|
+
extra = []
|
44
|
+
extra << "--kexec-file-syscall" if @host.pxe_loader.include?('SecureBoot')
|
44
45
|
-%>
|
45
46
|
{
|
46
47
|
"kernel": "<%= @kernel_uri %>",
|
47
48
|
"initram": "<%= @initrd_uri %>",
|
48
49
|
<% if (@host.operatingsystem.name == 'Fedora' and @host.operatingsystem.major.to_i > 16) or
|
49
50
|
(@host.operatingsystem.name != 'Fedora' and @host.operatingsystem.major.to_i >= 7) -%>
|
50
|
-
"append": "ks=<%= foreman_url('provision') + "&static=yes" %> inst.ks.sendmac <%= "ip=#{ip}::#{gw}:#{mask}:::none nameserver=#{dns} ksdevice=bootif BOOTIF=#{bootif} nomodeset nokaslr " + options.compact.join(' ') %>",
|
51
|
+
"append": "inst.ks=<%= foreman_url('provision') + "&static=yes" %> inst.ks.sendmac <%= "ip=#{ip}::#{gw}:#{mask}:::none nameserver=#{dns} ksdevice=bootif BOOTIF=#{bootif} nomodeset nokaslr " + options.compact.join(' ') %>",
|
51
52
|
<% else -%>
|
52
|
-
"append": "ks=<%= foreman_url('provision') + "&static=yes" %> kssendmac nicdelay=5 <%= "ip=#{ip} netmask=#{mask} gateway=#{gw} dns=#{dns} ksdevice=#{mac} BOOTIF=#{bootif} nomodeset nokaslr " + options.compact.join(' ') %>",
|
53
|
+
"append": "inst.ks=<%= foreman_url('provision') + "&static=yes" %> kssendmac nicdelay=5 <%= "ip=#{ip} netmask=#{mask} gateway=#{gw} dns=#{dns} ksdevice=#{mac} BOOTIF=#{bootif} nomodeset nokaslr " + options.compact.join(' ') %>",
|
53
54
|
<% end -%>
|
54
|
-
"extra":
|
55
|
+
"extra": <%= extra %>
|
55
56
|
}
|
@@ -45,38 +45,201 @@ module ForemanDiscovery
|
|
45
45
|
Foreman::Plugin.register :foreman_discovery do
|
46
46
|
requires_foreman '>= 3.2'
|
47
47
|
|
48
|
-
#
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
48
|
+
# settings
|
49
|
+
settings do
|
50
|
+
category :discovery, N_("Discovery") do
|
51
|
+
snippets = Proc.new {
|
52
|
+
Hash[ProvisioningTemplate.where(:template_kind => TemplateKind.find_by_name(:snippet)).map{|template| [template[:name], template[:name]]}]
|
53
|
+
}
|
54
|
+
|
55
|
+
setting "discovery_location",
|
56
|
+
type: :string,
|
57
|
+
collection: Proc.new { Hash[[['', '']].concat Location.all.map{|loc| [loc[:title], loc[:title]]}] },
|
58
|
+
default: "",
|
59
|
+
full_name: N_("Discovery location"),
|
60
|
+
description: N_("The default location to place discovered hosts in")
|
61
|
+
|
62
|
+
setting "discovery_organization",
|
63
|
+
type: :string,
|
64
|
+
collection: Proc.new { Hash[[['', '']].concat Organization.all.map{|org| [org[:title], org[:title]]}] },
|
65
|
+
default: "",
|
66
|
+
full_name: N_("Discovery location"),
|
67
|
+
description: N_("The default location to place discovered hosts in")
|
68
|
+
|
69
|
+
setting "discovery_fact",
|
70
|
+
type: :string,
|
71
|
+
default: "discovery_bootif",
|
72
|
+
full_name: N_("Interface fact"),
|
73
|
+
description: N_("Fact name to use for primary interface detection")
|
74
|
+
|
75
|
+
setting "discovery_auto_bond",
|
76
|
+
type: :boolean,
|
77
|
+
default: false,
|
78
|
+
full_name: N_("Create bond interfaces"),
|
79
|
+
description: N_("Automatic bond interface (if another interface is detected on the same VLAN via LLDP)")
|
80
|
+
|
81
|
+
setting "discovery_clean_facts",
|
82
|
+
type: :boolean,
|
83
|
+
default: false,
|
84
|
+
full_name: N_("Clean all facts"),
|
85
|
+
description: N_("Clean all reported facts during provisioning (except discovery facts)")
|
86
|
+
|
87
|
+
setting "discovery_hostname",
|
88
|
+
type: :string,
|
89
|
+
default: "discovery_bootif",
|
90
|
+
full_name: N_("Hostname facts"),
|
91
|
+
description: N_("List of facts to use for the hostname (separated by comma, first wins)")
|
92
|
+
|
93
|
+
validates "discovery_hostname", presence: true
|
94
|
+
|
95
|
+
setting "discovery_auto",
|
96
|
+
type: :boolean,
|
97
|
+
default: false,
|
98
|
+
full_name: N_("Auto provisioning"),
|
99
|
+
description: N_("Automatically provision newly discovered hosts, according to the provisioning rules")
|
100
|
+
|
101
|
+
setting "discovery_reboot",
|
102
|
+
type: :boolean,
|
103
|
+
default: true,
|
104
|
+
full_name: N_("Reboot"),
|
105
|
+
description: N_("Automatically reboot or kexec discovered host during provisioning")
|
106
|
+
|
107
|
+
setting "discovery_prefix",
|
108
|
+
type: :string,
|
109
|
+
default: "mac",
|
110
|
+
full_name: N_("Hostname prefix"),
|
111
|
+
description: N_("The default prefix to use for the host name, must start with a letter")
|
112
|
+
|
113
|
+
validates "discovery_prefix", presence: true
|
114
|
+
|
115
|
+
setting "discovery_fact_column",
|
116
|
+
type: :string,
|
117
|
+
default: "",
|
118
|
+
full_name: N_("Fact columns"),
|
119
|
+
description: N_("Extra facter columns to show in host lists (separate by comma)")
|
120
|
+
|
121
|
+
setting "discovery_facts_highlights",
|
122
|
+
type: :string,
|
123
|
+
default: "",
|
124
|
+
full_name: N_("Highlighted facts"),
|
125
|
+
description: N_("Regex to organize facts for highlights section - e.g. ^(abc|cde)$")
|
126
|
+
|
127
|
+
setting "discovery_facts_storage",
|
128
|
+
type: :string,
|
129
|
+
default: "",
|
130
|
+
full_name: N_("Storage facts"),
|
131
|
+
description: N_("Regex to organize facts for storage section")
|
132
|
+
|
133
|
+
setting "discovery_facts_software",
|
134
|
+
type: :string,
|
135
|
+
default: "",
|
136
|
+
full_name: N_("Software facts"),
|
137
|
+
description: N_("Regex to organize facts for software section")
|
138
|
+
|
139
|
+
setting "discovery_facts_hardware",
|
140
|
+
type: :string,
|
141
|
+
default: "",
|
142
|
+
full_name: N_("Hardware facts"),
|
143
|
+
description: N_("Regex to organize facts for hardware section")
|
144
|
+
|
145
|
+
setting "discovery_facts_network",
|
146
|
+
type: :string,
|
147
|
+
default: "",
|
148
|
+
full_name: N_("Network facts"),
|
149
|
+
description: N_("Regex to organize facts for network section")
|
150
|
+
|
151
|
+
setting "discovery_facts_ipmi",
|
152
|
+
type: :string,
|
153
|
+
default: "",
|
154
|
+
full_name: N_("IPMI facts"),
|
155
|
+
description: N_("Regex to organize facts for ipmi section")
|
156
|
+
|
157
|
+
setting "discovery_lock",
|
158
|
+
type: :boolean,
|
159
|
+
default: false,
|
160
|
+
full_name: N_("Lock PXE"),
|
161
|
+
description: N_("Automatically generate PXE configuration to pin a newly discovered host to discovery")
|
162
|
+
|
163
|
+
setting "discovery_pxelinux_lock_template",
|
164
|
+
type: :string,
|
165
|
+
collection: snippets,
|
166
|
+
default: "pxelinux_discovery",
|
167
|
+
full_name: N_("Locked PXELinux template name"),
|
168
|
+
description: N_("PXELinux template to be used when pinning a host to discovery")
|
169
|
+
|
170
|
+
setting "discovery_pxegrub_lock_template",
|
171
|
+
type: :string,
|
172
|
+
collection: snippets,
|
173
|
+
default: "pxegrub_discovery",
|
174
|
+
full_name: N_("Locked PXEGrub template name"),
|
175
|
+
description: N_("PXEGrub template to be used when pinning a host to discovery")
|
176
|
+
|
177
|
+
setting "discovery_pxegrub2_lock_template",
|
178
|
+
type: :string,
|
179
|
+
collection: snippets,
|
180
|
+
default: "pxegrub2_discovery",
|
181
|
+
full_name: N_("Locked PXEGrub2 template name"),
|
182
|
+
description: N_("PXEGrub2 template to be used when pinning a host to discovery")
|
183
|
+
|
184
|
+
setting "discovery_always_rebuild_dns",
|
185
|
+
type: :boolean,
|
186
|
+
default: true,
|
187
|
+
full_name: N_("Force DNS"),
|
188
|
+
description: N_("Force DNS entries creation when provisioning discovered host")
|
189
|
+
|
190
|
+
setting "discovery_error_on_existing",
|
191
|
+
type: :boolean,
|
192
|
+
default: false,
|
193
|
+
full_name: N_("Error on existing NIC"),
|
194
|
+
description: N_("Do not allow to discover existing managed host matching MAC of a provisioning NIC (errors out early)")
|
195
|
+
|
196
|
+
setting "discovery_naming",
|
197
|
+
type: :string,
|
198
|
+
collection: Proc.new { ::Host::Discovered::NAMING_PATTERNS },
|
199
|
+
default: "Fact",
|
200
|
+
full_name: N_("Type of name generator"),
|
201
|
+
description: N_("Discovery hostname naming pattern")
|
202
|
+
|
203
|
+
setting "discovery_prefer_ipv6",
|
204
|
+
type: :boolean,
|
205
|
+
default: false,
|
206
|
+
full_name: N_("Prefer IPv6"),
|
207
|
+
description: N_("Prefer IPv6 to IPv4 when calling discovered nodes")
|
208
|
+
end
|
209
|
+
end
|
210
|
+
|
211
|
+
# discovered hosts permissions
|
212
|
+
security_block :discovery do
|
213
|
+
permission :view_discovered_hosts, {
|
214
|
+
:discovered_hosts => [:index, :show, :auto_complete_search, :welcome],
|
215
|
+
:"api/v2/discovered_hosts" => [:index, :show],
|
216
|
+
:'discovered_hosts/react' => [:index]
|
217
|
+
}, :resource_type => 'Host'
|
218
|
+
permission :submit_discovered_hosts, {
|
219
|
+
:"api/v2/discovered_hosts" => [:facts, :create]
|
220
|
+
}, :resource_type => 'Host'
|
221
|
+
permission :auto_provision_discovered_hosts, {
|
222
|
+
:discovered_hosts => [:auto_provision,
|
223
|
+
:multiple_auto_provision,
|
224
|
+
:submit_multiple_auto_provision],
|
225
|
+
:"api/v2/discovered_hosts" => [:auto_provision, :auto_provision_all]
|
226
|
+
}, :resource_type => 'Host'
|
227
|
+
permission :provision_discovered_hosts, {
|
228
|
+
:discovered_hosts => [:edit, :update],
|
229
|
+
:"api/v2/discovered_hosts" => [:update]
|
230
|
+
}, :resource_type => 'Host'
|
231
|
+
permission :edit_discovered_hosts, {
|
232
|
+
:discovered_hosts => [:update_multiple_location,
|
233
|
+
:select_multiple_organization,
|
234
|
+
:update_multiple_organization,
|
235
|
+
:select_multiple_location,
|
236
|
+
:refresh_facts,
|
237
|
+
:reboot,
|
238
|
+
:multiple_reboot,
|
239
|
+
:submit_multiple_reboot],
|
240
|
+
:hosts => [:process_hostgroup],
|
241
|
+
:"api/v2/discovered_hosts" => [:refresh_facts, :reboot, :reboot_all]
|
242
|
+
}, :resource_type => 'Host'
|
80
243
|
permission :destroy_discovered_hosts, {
|
81
244
|
:discovered_hosts => [:destroy, :submit_multiple_destroy, :multiple_destroy],
|
82
245
|
:"api/v2/discovered_hosts" => [:destroy]
|
Binary file
|
@@ -7,10 +7,10 @@
|
|
7
7
|
# Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>, 2015-2016
|
8
8
|
msgid ""
|
9
9
|
msgstr ""
|
10
|
-
"Project-Id-Version: foreman_discovery
|
10
|
+
"Project-Id-Version: foreman_discovery 21.0.0\n"
|
11
11
|
"Report-Msgid-Bugs-To: \n"
|
12
|
-
"PO-Revision-Date:
|
13
|
-
"Last-Translator:
|
12
|
+
"PO-Revision-Date: 2013-11-15 17:25+0000\n"
|
13
|
+
"Last-Translator: Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>, 2017\n"
|
14
14
|
"Language-Team: Catalan (http://www.transifex.com/foreman/foreman/language/ca/)"
|
15
15
|
"\n"
|
16
16
|
"MIME-Version: 1.0\n"
|
@@ -134,7 +134,7 @@ msgid "Destroyed selected hosts"
|
|
134
134
|
msgstr "S'han destruït els amfitrions seleccionats"
|
135
135
|
|
136
136
|
msgid "Details"
|
137
|
-
msgstr ""
|
137
|
+
msgstr "Detalls"
|
138
138
|
|
139
139
|
msgid "Disable"
|
140
140
|
msgstr "Inhabilita"
|
@@ -310,7 +310,7 @@ msgid "Foreman discovered hosts summary"
|
|
310
310
|
msgstr ""
|
311
311
|
|
312
312
|
msgid "Hardware"
|
313
|
-
msgstr ""
|
313
|
+
msgstr "Maquinari"
|
314
314
|
|
315
315
|
msgid "Hardware facts"
|
316
316
|
msgstr ""
|
@@ -331,7 +331,7 @@ msgid "Host %{host} was provisioned with rule %{rule}"
|
|
331
331
|
msgstr "L'amfitrió %{host} va ser aprovisionat amb la regla %{rule}"
|
332
332
|
|
333
333
|
msgid "Host Group"
|
334
|
-
msgstr ""
|
334
|
+
msgstr "Grup dels amfitrions"
|
335
335
|
|
336
336
|
msgid "Host group location %s must also be associated to the discovery rule"
|
337
337
|
msgid_plural "Host group locations %s must also be associated to the discovery rule"
|
@@ -365,10 +365,10 @@ msgid "Hostnames must not start with numbers. A good approach is to use unique i
|
|
365
365
|
msgstr ""
|
366
366
|
|
367
367
|
msgid "Hosts"
|
368
|
-
msgstr ""
|
368
|
+
msgstr "Amfitrions"
|
369
369
|
|
370
370
|
msgid "Hosts Limit"
|
371
|
-
msgstr ""
|
371
|
+
msgstr "Límit d'amfitrions"
|
372
372
|
|
373
373
|
msgid "Hosts/Limit"
|
374
374
|
msgstr ""
|
@@ -497,7 +497,7 @@ msgid "Name of the parameter"
|
|
497
497
|
msgstr "Nom del paràmetre"
|
498
498
|
|
499
499
|
msgid "Network"
|
500
|
-
msgstr ""
|
500
|
+
msgstr "Xarxa"
|
501
501
|
|
502
502
|
msgid "Network facts"
|
503
503
|
msgstr ""
|
@@ -511,12 +511,18 @@ msgstr ""
|
|
511
511
|
msgid "New in the last 24 hours"
|
512
512
|
msgstr "Nou en les últimes 24 hores"
|
513
513
|
|
514
|
+
msgid "No Discovery Rules found in this context. Create Discovery Rules to perform automated provisioning on Discovered Hosts"
|
515
|
+
msgstr ""
|
516
|
+
|
514
517
|
msgid "No discovered hosts available"
|
515
518
|
msgstr ""
|
516
519
|
|
517
520
|
msgid "No discovered hosts for the selected period"
|
518
521
|
msgstr ""
|
519
522
|
|
523
|
+
msgid "No discovered hosts found in this context. This page shows discovered bare-metal or virtual nodes waiting to be provisioned."
|
524
|
+
msgstr ""
|
525
|
+
|
520
526
|
msgid "No discovered hosts to provision"
|
521
527
|
msgstr "Sense amfitrions descoberts per aprovisionar"
|
522
528
|
|
@@ -677,7 +683,7 @@ msgid "Specify target hostname template pattern in the same syntax as in Provisi
|
|
677
683
|
msgstr ""
|
678
684
|
|
679
685
|
msgid "Storage"
|
680
|
-
msgstr ""
|
686
|
+
msgstr "Emmagatzematge"
|
681
687
|
|
682
688
|
msgid "Storage facts"
|
683
689
|
msgstr ""
|
@@ -716,7 +722,7 @@ msgid "This might take a while, as all hosts, facts and reports will be destroye
|
|
716
722
|
msgstr ""
|
717
723
|
|
718
724
|
msgid "Type"
|
719
|
-
msgstr ""
|
725
|
+
msgstr "Tipus"
|
720
726
|
|
721
727
|
msgid "Type of name generator"
|
722
728
|
msgstr ""
|
Binary file
|
@@ -15,10 +15,10 @@
|
|
15
15
|
# stbenjam <stephen@redhat.com>, 2016
|
16
16
|
msgid ""
|
17
17
|
msgstr ""
|
18
|
-
"Project-Id-Version: foreman_discovery
|
18
|
+
"Project-Id-Version: foreman_discovery 21.0.0\n"
|
19
19
|
"Report-Msgid-Bugs-To: \n"
|
20
|
-
"PO-Revision-Date:
|
21
|
-
"Last-Translator: Patrick Dolinic\n"
|
20
|
+
"PO-Revision-Date: 2013-11-15 17:25+0000\n"
|
21
|
+
"Last-Translator: Patrick Dolinic, 2021\n"
|
22
22
|
"Language-Team: German (http://www.transifex.com/foreman/foreman/language/de/)\n"
|
23
23
|
"MIME-Version: 1.0\n"
|
24
24
|
"Content-Type: text/plain; charset=UTF-8\n"
|
@@ -518,12 +518,18 @@ msgstr "Neue Hosts"
|
|
518
518
|
msgid "New in the last 24 hours"
|
519
519
|
msgstr "Neu in den letzten 24 Stunden"
|
520
520
|
|
521
|
+
msgid "No Discovery Rules found in this context. Create Discovery Rules to perform automated provisioning on Discovered Hosts"
|
522
|
+
msgstr ""
|
523
|
+
|
521
524
|
msgid "No discovered hosts available"
|
522
525
|
msgstr "Keine entdeckten Hosts verfügbar"
|
523
526
|
|
524
527
|
msgid "No discovered hosts for the selected period"
|
525
528
|
msgstr "Keine entdeckten Hosts für den ausgewählten Zeitraum"
|
526
529
|
|
530
|
+
msgid "No discovered hosts found in this context. This page shows discovered bare-metal or virtual nodes waiting to be provisioned."
|
531
|
+
msgstr ""
|
532
|
+
|
527
533
|
msgid "No discovered hosts to provision"
|
528
534
|
msgstr "Keine entdeckten Hosts zur Bereitstellung"
|
529
535
|
|
Binary file
|
@@ -2,7 +2,7 @@
|
|
2
2
|
# This file is distributed under the same license as the foreman_discovery package.
|
3
3
|
msgid ""
|
4
4
|
msgstr ""
|
5
|
-
"Project-Id-Version: foreman_discovery
|
5
|
+
"Project-Id-Version: foreman_discovery 21.0.0\n"
|
6
6
|
"Report-Msgid-Bugs-To: foreman-dev@googlegroups.com\n"
|
7
7
|
"PO-Revision-Date: 2015-12-27 01:18+0000\n"
|
8
8
|
"Last-Translator: \n"
|
@@ -504,12 +504,18 @@ msgstr ""
|
|
504
504
|
msgid "New in the last 24 hours"
|
505
505
|
msgstr ""
|
506
506
|
|
507
|
+
msgid "No Discovery Rules found in this context. Create Discovery Rules to perform automated provisioning on Discovered Hosts"
|
508
|
+
msgstr ""
|
509
|
+
|
507
510
|
msgid "No discovered hosts available"
|
508
511
|
msgstr ""
|
509
512
|
|
510
513
|
msgid "No discovered hosts for the selected period"
|
511
514
|
msgstr ""
|
512
515
|
|
516
|
+
msgid "No discovered hosts found in this context. This page shows discovered bare-metal or virtual nodes waiting to be provisioned."
|
517
|
+
msgstr ""
|
518
|
+
|
513
519
|
msgid "No discovered hosts to provision"
|
514
520
|
msgstr ""
|
515
521
|
|
Binary file
|