foreman_discovery 15.1.0 → 16.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/concerns/foreman/controller/discovered_extensions.rb +4 -0
- data/app/controllers/discovered_hosts_controller.rb +1 -0
- data/app/models/setting/discovered.rb +26 -33
- data/app/services/foreman_discovery/fact_parser.rb +1 -1
- data/app/services/foreman_discovery/host_converter.rb +29 -1
- data/app/services/foreman_discovery/import_hooks/subnet_and_taxonomy.rb +6 -14
- data/app/services/foreman_discovery/subnet_suggestion.rb +26 -0
- data/app/views/discovered_hosts/_discovered_host_modal.html.erb +2 -0
- data/config/routes.rb +2 -0
- data/extra/discover-host +21 -7
- data/lib/foreman_discovery/engine.rb +2 -2
- data/lib/foreman_discovery/version.rb +1 -1
- data/locale/ca/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/ca/foreman_discovery.edit.po +111 -91
- data/locale/ca/foreman_discovery.po +17 -2
- data/locale/de/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/de/foreman_discovery.edit.po +113 -93
- data/locale/de/foreman_discovery.po +19 -4
- data/locale/en/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/en/foreman_discovery.edit.po +98 -78
- data/locale/en/foreman_discovery.po +16 -1
- data/locale/en_GB/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/en_GB/foreman_discovery.edit.po +113 -93
- data/locale/en_GB/foreman_discovery.po +19 -4
- data/locale/es/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/es/foreman_discovery.edit.po +112 -92
- data/locale/es/foreman_discovery.po +18 -3
- data/locale/foreman_discovery.pot +99 -79
- data/locale/fr/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/fr/foreman_discovery.edit.po +112 -92
- data/locale/fr/foreman_discovery.po +18 -3
- data/locale/gl/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/gl/foreman_discovery.edit.po +111 -91
- data/locale/gl/foreman_discovery.po +17 -2
- data/locale/it/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/it/foreman_discovery.edit.po +112 -92
- data/locale/it/foreman_discovery.po +18 -3
- data/locale/ja/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/ja/foreman_discovery.edit.po +113 -93
- data/locale/ja/foreman_discovery.po +19 -4
- data/locale/ko/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/ko/foreman_discovery.edit.po +112 -92
- data/locale/ko/foreman_discovery.po +18 -3
- data/locale/pt_BR/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/pt_BR/foreman_discovery.edit.po +113 -93
- data/locale/pt_BR/foreman_discovery.po +19 -4
- data/locale/ru/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/ru/foreman_discovery.edit.po +113 -93
- data/locale/ru/foreman_discovery.po +19 -4
- data/locale/sv_SE/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/sv_SE/foreman_discovery.edit.po +112 -92
- data/locale/sv_SE/foreman_discovery.po +18 -3
- data/locale/zh_CN/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/zh_CN/foreman_discovery.edit.po +112 -92
- data/locale/zh_CN/foreman_discovery.po +18 -3
- data/locale/zh_TW/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/zh_TW/foreman_discovery.edit.po +112 -92
- data/locale/zh_TW/foreman_discovery.po +18 -3
- data/test/facts/bond0-eth0-eth1-active-passive.json +128 -0
- data/test/facts/facts_with_lldp_bond_candidate.json +2 -9
- data/test/functional/api/v2/discovered_hosts_controller_test.rb +1 -0
- data/test/integration/discovered_hosts_test.rb +1 -0
- data/test/test_helper_discovery.rb +12 -0
- data/test/unit/discovered_extensions_test.rb +49 -0
- data/test/unit/discovery_attribute_set_test.rb +1 -0
- data/test/unit/discovery_rule_test.rb +1 -0
- data/test/unit/host_discovered_test.rb +32 -13
- data/test/unit/managed_extensions_test.rb +1 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 40c64a4f3c756e207293b6e5be67190294b9c4f2ab5054e08edd8d085718556f
|
4
|
+
data.tar.gz: b22ef9bf418ac18e94170429e7368cb1c6f94b9b0d2290b60341a9415e908b01
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d9f9013fa2d04e883da3c0c8c42b5a6e3552093323698359b8e9b70179f0284ccf35d633eac5720cc03fa79678af915b5eda3c7508be775b0836128ef6d738d8
|
7
|
+
data.tar.gz: 688c8d68c1a87aff1fda0a00eef057daf0c35a06ce007746e568763e868c82ee718d15a51d1124cb9dc1a47498ec94bc7f33e62d986ba7ed23e3eb6babfd140f
|
@@ -41,6 +41,8 @@ module Foreman::Controller::DiscoveredExtensions
|
|
41
41
|
# trigger the provisioning
|
42
42
|
def perform_auto_provision original_host, rule
|
43
43
|
raise(::Foreman::Exception.new(N_("No hostgroup associated with rule '%s'"), rule)) if rule.hostgroup.nil?
|
44
|
+
|
45
|
+
logger.debug "Auto-provisioning via rule #{rule} hostgroup #{rule.hostgroup} subnet #{rule.hostgroup.subnet}"
|
44
46
|
host = ::ForemanDiscovery::HostConverter.to_managed(original_host)
|
45
47
|
host.hostgroup_id = rule.hostgroup_id
|
46
48
|
host.comment = "Auto-discovered and provisioned via rule '#{rule.name}'"
|
@@ -55,6 +57,8 @@ module Foreman::Controller::DiscoveredExtensions
|
|
55
57
|
# explicitly set all inheritable attributes from hostgroup
|
56
58
|
host.attributes = host.apply_inherited_attributes(hostgroup_id: rule.hostgroup_id)
|
57
59
|
host.set_hostgroup_defaults
|
60
|
+
# change subnet and fetch unused IPs
|
61
|
+
::ForemanDiscovery::HostConverter.unused_ip_for_host(host, rule.hostgroup.subnet, rule.hostgroup.subnet6)
|
58
62
|
# save! does not work here
|
59
63
|
if host.save
|
60
64
|
host
|
@@ -78,6 +78,7 @@ class DiscoveredHostsController < ::ApplicationController
|
|
78
78
|
def perform_update(host, success_message = nil)
|
79
79
|
Taxonomy.no_taxonomy_scope do
|
80
80
|
::ForemanDiscovery::HostConverter.set_build_clean_facts(host)
|
81
|
+
::ForemanDiscovery::HostConverter.unused_ip_for_host(host)
|
81
82
|
if host.save
|
82
83
|
success_options = { :success_redirect => host_path(host), :redirect_xhr => request.xhr? }
|
83
84
|
success_options[:success_msg] = success_message if success_message
|
@@ -10,39 +10,32 @@ class Setting::Discovered < ::Setting
|
|
10
10
|
BLANK_ATTRS << 'discovery_facts_ipmi'
|
11
11
|
BLANK_ATTRS << 'discovery_prefix'
|
12
12
|
|
13
|
-
def self.
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
self.set('discovery_always_rebuild_dns', N_("Force DNS entries creation when provisioning discovered host"), true, N_("Force DNS")),
|
40
|
-
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")),
|
41
|
-
self.set('discovery_naming', N_("Discovery hostname naming pattern"), 'Fact', N_("Type of name generator"), nil, {:collection => Proc.new {::Host::Discovered::NAMING_PATTERNS} }),
|
42
|
-
].compact.each { |s| self.create s.update(:category => "Setting::Discovered")}
|
43
|
-
end
|
44
|
-
|
45
|
-
true
|
13
|
+
def self.default_settings
|
14
|
+
[
|
15
|
+
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]]}]} }),
|
16
|
+
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]]}]} }),
|
17
|
+
self.set('discovery_fact', N_("Fact name to use for primary interface detection"), "discovery_bootif", N_("Interface fact")),
|
18
|
+
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")),
|
19
|
+
self.set('discovery_clean_facts', N_("Clean all reported facts during provisioning (except discovery facts)"), false, N_("Clean all facts")),
|
20
|
+
self.set('discovery_hostname', N_("List of facts to use for the hostname (separated by comma, first wins)"), "discovery_bootif", N_("Hostname facts")),
|
21
|
+
self.set('discovery_auto', N_("Automatically provision newly discovered hosts, according to the provisioning rules"), false, N_("Auto provisioning")),
|
22
|
+
self.set('discovery_reboot', N_("Automatically reboot or kexec discovered host during provisioning"), true, N_("Reboot")),
|
23
|
+
self.set('discovery_prefix', N_("The default prefix to use for the host name, must start with a letter"), "mac", N_("Hostname prefix")),
|
24
|
+
self.set('discovery_fact_column', N_("Extra facter columns to show in host lists (separate by comma)"), "", N_("Fact columns")),
|
25
|
+
self.set('discovery_facts_highlights', N_("Regex to organize facts for highlights section - e.g. ^(abc|cde)$"), "", N_("Highlighted facts")),
|
26
|
+
self.set('discovery_facts_storage', N_("Regex to organize facts for storage section"), "", N_("Storage facts")),
|
27
|
+
self.set('discovery_facts_software', N_("Regex to organize facts for software section"), "", N_("Software facts")),
|
28
|
+
self.set('discovery_facts_hardware', N_("Regex to organize facts for hardware section"), "", N_("Hardware facts")),
|
29
|
+
self.set('discovery_facts_network', N_("Regex to organize facts for network section"), "", N_("Network facts")),
|
30
|
+
self.set('discovery_facts_ipmi', N_("Regex to organize facts for ipmi section"), "", N_("IPMI facts")),
|
31
|
+
self.set('discovery_lock', N_("Automatically generate PXE configuration to pin a newly discovered host to discovery"), false, N_("Lock PXE")),
|
32
|
+
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]]}]} }),
|
33
|
+
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]]}]} }),
|
34
|
+
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]]}]} }),
|
35
|
+
self.set('discovery_always_rebuild_dns', N_("Force DNS entries creation when provisioning discovered host"), true, N_("Force DNS")),
|
36
|
+
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")),
|
37
|
+
self.set('discovery_naming', N_("Discovery hostname naming pattern"), 'Fact', N_("Type of name generator"), nil, {:collection => Proc.new {::Host::Discovered::NAMING_PATTERNS} }),
|
38
|
+
]
|
46
39
|
end
|
47
40
|
|
48
41
|
def self.discovery_fact_column_array
|
@@ -6,7 +6,7 @@ module ForemanDiscovery
|
|
6
6
|
raise(::Foreman::Exception.new(N_("Discovered host '%{host}' has all NICs filtered out, filter: %{filter}") %
|
7
7
|
{:host => host, :filter => Setting[:ignored_interface_identifiers]})) if interfaces.size == 0
|
8
8
|
bootif_mac = FacterUtils::bootif_mac(facts).try(:downcase)
|
9
|
-
detected = interfaces.detect { |_, values| values[:macaddress].try(:downcase) == bootif_mac && values[:ipaddress].present? }
|
9
|
+
detected = interfaces.detect { |_, values| values[:macaddress].try(:downcase) == bootif_mac && (values[:ipaddress].present? || values[:ipaddress6].present?) }
|
10
10
|
Rails.logger.debug "Discovery fact parser detected primary interface: #{detected}"
|
11
11
|
# return the detected interface as array [name, facts]
|
12
12
|
detected || raise(::Foreman::Exception.new(N_("Unable to find primary NIC with %{mac} specified via '%{fact}', NIC filter: %{filter}") %
|
@@ -1,5 +1,4 @@
|
|
1
1
|
class ForemanDiscovery::HostConverter
|
2
|
-
|
3
2
|
# Converts discovered host to managed host without uptading the database.
|
4
3
|
# Record must be saved explicitly (using save! or update_attributes! or similar).
|
5
4
|
# Creates shallow copy.
|
@@ -35,4 +34,33 @@ class ForemanDiscovery::HostConverter
|
|
35
34
|
host.build = true
|
36
35
|
end
|
37
36
|
|
37
|
+
def self.unused_ip_for_subnet(subnet, mac, existing_ip)
|
38
|
+
ipam = subnet.unused_ip(mac)
|
39
|
+
raise(::Foreman::Exception.new(N_("IPAM must be configured for subnet '%s'"), subnet)) unless ipam.present?
|
40
|
+
|
41
|
+
# None IPAM returns nil - in that case keep the current address
|
42
|
+
suggested_ip = ipam.suggest_ip
|
43
|
+
suggested_ip.nil? ? existing_ip : suggested_ip
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.unused_ip_for_host(host, new_subnet = nil, new_subnet6 = nil)
|
47
|
+
host.interfaces.each do |interface|
|
48
|
+
next unless interface.managed?
|
49
|
+
|
50
|
+
interface.subnet = new_subnet if new_subnet
|
51
|
+
interface.subnet6 = new_subnet6 if new_subnet6
|
52
|
+
interface.ip = unused_ip_for_subnet(interface.subnet, interface.mac, interface.ip) if interface.subnet
|
53
|
+
interface.ip6 = unused_ip_for_subnet(interface.subnet6, interface.mac, interface.ip6) if interface.subnet6
|
54
|
+
interface.save!
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def self.change_subnet_and_unused_ip(host, hostgroup)
|
59
|
+
if host.subnet != hostgroup.subnet || host.subnet6 != hostgroup.subnet6
|
60
|
+
Rails.logger.debug "Discovered host subnets #{[host.subnet, host.subnet6]} do not match hostgroup subnets #{[hostgroup.subnet, hostgroup.subnet6]}"
|
61
|
+
unused_ip_for_host(host, host.hostgroup.subnet, host.hostgroup.subnet6)
|
62
|
+
else
|
63
|
+
Rails.logger.debug "Discovered host subnets #{[host.subnet, host.subnet6]} match hostgroup subnets"
|
64
|
+
end
|
65
|
+
end
|
38
66
|
end
|
@@ -4,14 +4,15 @@ module ForemanDiscovery
|
|
4
4
|
class SubnetAndTaxonomy < ImportHook
|
5
5
|
def after_populate
|
6
6
|
primary_ip = host.primary_interface.ip
|
7
|
+
primary_ip6 = host.primary_interface.ip6
|
7
8
|
|
8
|
-
unless primary_ip
|
9
|
+
unless primary_ip || primary_ip6
|
9
10
|
logger.warn "Unable to assign subnet - reboot trigger may not be possible, primary interface is missing IP address"
|
10
11
|
return
|
11
12
|
end
|
12
13
|
|
13
14
|
# set subnet
|
14
|
-
|
15
|
+
set_subnets(primary_ip, primary_ip6)
|
15
16
|
# set location and organization
|
16
17
|
set_location
|
17
18
|
set_organization
|
@@ -19,18 +20,9 @@ module ForemanDiscovery
|
|
19
20
|
|
20
21
|
private
|
21
22
|
|
22
|
-
def
|
23
|
-
host.primary_interface.subnet =
|
24
|
-
|
25
|
-
|
26
|
-
def suggested_subnet(ip)
|
27
|
-
subnet = Subnet.subnet_for(ip)
|
28
|
-
if subnet
|
29
|
-
logger.info "Detected subnet: #{subnet} with taxonomy #{subnet.organizations.collect(&:name)}/#{subnet.locations.collect(&:name)}"
|
30
|
-
else
|
31
|
-
logger.warn "Subnet could not be detected for #{ip}"
|
32
|
-
end
|
33
|
-
subnet
|
23
|
+
def set_subnets(ip, ip6)
|
24
|
+
host.primary_interface.subnet = ForemanDiscovery::SubnetSuggestion.for(ip: ip, kind: 'IPv4') if ip
|
25
|
+
host.primary_interface.subnet6 = ForemanDiscovery::SubnetSuggestion.for(ip: ip6, kind: 'IPv6') if ip6
|
34
26
|
end
|
35
27
|
|
36
28
|
def set_location
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module ForemanDiscovery
|
2
|
+
class SubnetSuggestion
|
3
|
+
attr_accessor :ip, :kind
|
4
|
+
|
5
|
+
def self.for(ip:, kind:)
|
6
|
+
new(ip: ip, kind: kind).()
|
7
|
+
end
|
8
|
+
|
9
|
+
def initialize(ip:, kind:)
|
10
|
+
self.ip = ip
|
11
|
+
self.kind = kind
|
12
|
+
end
|
13
|
+
|
14
|
+
def call
|
15
|
+
return unless ip
|
16
|
+
|
17
|
+
subnet = Subnet.unscoped.subnet_for(ip)
|
18
|
+
if subnet
|
19
|
+
Rails.logger.info "Detected #{kind} subnet: #{subnet} with taxonomy #{subnet.organizations.collect(&:name)}/#{subnet.locations.collect(&:name)}"
|
20
|
+
else
|
21
|
+
Rails.logger.info "#{kind} subnet could not be detected for #{ip}"
|
22
|
+
end
|
23
|
+
subnet
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -17,6 +17,8 @@
|
|
17
17
|
<% if show_location_tab? %>
|
18
18
|
<%= select_f f, :location_id, Location.my_locations, :id, :to_label, {}, {:size => 'col-md-10'} %>
|
19
19
|
<% end %>
|
20
|
+
|
21
|
+
<div>Changing the Host's Subnet is not possible via Customize Host form, use Create Host or Auto provisioning and set the desired Subnet in the Hostgroup.</div>
|
20
22
|
</div>
|
21
23
|
<div class="modal-footer">
|
22
24
|
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
|
data/config/routes.rb
CHANGED
@@ -6,6 +6,8 @@ Rails.application.routes.draw do
|
|
6
6
|
post 'os_selected_discovered_hosts' => 'hosts#os_selected'
|
7
7
|
post 'medium_selected_discovered_hosts' => 'hosts#medium_selected'
|
8
8
|
|
9
|
+
get 'discovered_hosts/help', :action => :welcome, :controller => 'discovered_hosts'
|
10
|
+
|
9
11
|
constraints(:id => /[^\/]+/) do
|
10
12
|
resources :discovered_hosts, :except => [:new, :create] do
|
11
13
|
member do
|
data/extra/discover-host
CHANGED
@@ -3,10 +3,12 @@ require 'optparse'
|
|
3
3
|
require 'json'
|
4
4
|
require 'rest-client'
|
5
5
|
|
6
|
-
def find_base name="default"
|
7
|
-
return name if File.
|
6
|
+
def find_base name = "default"
|
7
|
+
return name if File.exist?(name)
|
8
|
+
|
8
9
|
file = File.absolute_path(File.dirname(__FILE__) + "../../test/facts/#{name}.json")
|
9
|
-
raise "Unable to find file #{file}" unless File.
|
10
|
+
raise "Unable to find file #{file}" unless File.exist?(file)
|
11
|
+
|
10
12
|
file
|
11
13
|
end
|
12
14
|
|
@@ -14,6 +16,7 @@ base = find_base
|
|
14
16
|
version = "3.4.0"
|
15
17
|
interfaces = []
|
16
18
|
preserve_interfaces = false
|
19
|
+
use_facts_endpoint = false
|
17
20
|
primary = nil
|
18
21
|
bootif = nil
|
19
22
|
url = "http://admin:changeme@localhost:3000"
|
@@ -38,6 +41,10 @@ OptionParser.new do |opts|
|
|
38
41
|
preserve_interfaces = true
|
39
42
|
end
|
40
43
|
|
44
|
+
opts.on("-a", "--facts", "Use host facts endpoint") do |v|
|
45
|
+
use_facts_endpoint = true
|
46
|
+
end
|
47
|
+
|
41
48
|
opts.on("-pNAME", "--primary=NAME", "Interface to use as primary (defaults to the first one)") do |v|
|
42
49
|
primary = v
|
43
50
|
end
|
@@ -70,8 +77,8 @@ unless preserve_interfaces
|
|
70
77
|
json["interfaces"] = interfaces.map{|i| i.first}.join(',')
|
71
78
|
interfaces.each do |iface|
|
72
79
|
name, subnet, ipo, mac = iface
|
73
|
-
mac
|
74
|
-
ipo
|
80
|
+
mac ||= (["52"] + 5.times.map { '%02x' % rand(0..255) }).join(':')
|
81
|
+
ipo ||= rand(1..253)
|
75
82
|
ip = "192.168.#{subnet}.#{ipo}"
|
76
83
|
json["macaddress_#{name}"] = mac
|
77
84
|
json["ipaddress_#{name}"] = ip
|
@@ -83,7 +90,14 @@ unless preserve_interfaces
|
|
83
90
|
end
|
84
91
|
end
|
85
92
|
puts JSON.pretty_generate(json)
|
86
|
-
|
87
|
-
|
93
|
+
if use_facts_endpoint
|
94
|
+
endpoint = url + "/api/v2/hosts/facts"
|
95
|
+
payload = {"facts" => json, "name" => json["hostname"] || json["networking"]["fqdn"]}
|
96
|
+
else
|
97
|
+
endpoint = url + "/api/v2/discovered_hosts/facts"
|
98
|
+
payload = {"facts" => json}
|
99
|
+
end
|
100
|
+
resource = RestClient::Resource.new(endpoint, verify_ssl: OpenSSL::SSL::VERIFY_NONE)
|
101
|
+
response = resource.post(payload.to_json, {content_type: :json, accept: :json})
|
88
102
|
puts response.code
|
89
103
|
puts response.body
|
@@ -43,12 +43,12 @@ module ForemanDiscovery
|
|
43
43
|
|
44
44
|
initializer 'foreman_discovery.register_plugin', :before => :finisher_hook do |app|
|
45
45
|
Foreman::Plugin.register :foreman_discovery do
|
46
|
-
requires_foreman '>= 1.
|
46
|
+
requires_foreman '>= 1.24.0'
|
47
47
|
|
48
48
|
# discovered hosts permissions
|
49
49
|
security_block :discovery do
|
50
50
|
permission :view_discovered_hosts, {
|
51
|
-
:discovered_hosts => [:index, :show, :auto_complete_search],
|
51
|
+
:discovered_hosts => [:index, :show, :auto_complete_search, :welcome],
|
52
52
|
:"api/v2/discovered_hosts" => [:index, :show]
|
53
53
|
}, :resource_type => 'Host'
|
54
54
|
permission :submit_discovered_hosts, {
|
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 15.
|
10
|
+
"Project-Id-Version: foreman_discovery 15.1.0\n"
|
11
11
|
"Report-Msgid-Bugs-To: \n"
|
12
|
-
"POT-Creation-Date: 2019-
|
13
|
-
"PO-Revision-Date: 2019-
|
12
|
+
"POT-Creation-Date: 2019-10-22 11:55+0200\n"
|
13
|
+
"PO-Revision-Date: 2019-10-22 20:43+0000\n"
|
14
14
|
"Last-Translator: Lukáš Zapletal\n"
|
15
15
|
"Language-Team: Catalan (http://www.transifex.com/foreman/foreman/language/ca/)\n"
|
16
16
|
"MIME-Version: 1.0\n"
|
@@ -99,7 +99,7 @@ msgid "Execute rules against a discovered host"
|
|
99
99
|
msgstr ""
|
100
100
|
|
101
101
|
#: ../app/controllers/api/v2/discovered_hosts_controller.rb:122
|
102
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
102
|
+
#: ../app/controllers/discovered_hosts_controller.rb:160
|
103
103
|
msgid "Host %{host} was provisioned with rule %{rule}"
|
104
104
|
msgstr "L'amfitrió %{host} va ser aprovisionat amb la regla %{rule}"
|
105
105
|
|
@@ -108,7 +108,7 @@ msgid "Unable to provision %{host}: %{errors}"
|
|
108
108
|
msgstr "No es pot aprovisionar a %{host}: %{errors}"
|
109
109
|
|
110
110
|
#: ../app/controllers/api/v2/discovered_hosts_controller.rb:131
|
111
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
111
|
+
#: ../app/controllers/discovered_hosts_controller.rb:167
|
112
112
|
msgid "No rule found for host %s"
|
113
113
|
msgstr "No s'ha trobat cap regla per a l'amfitrió %s"
|
114
114
|
|
@@ -117,12 +117,12 @@ msgid "Execute rules against all currently discovered hosts"
|
|
117
117
|
msgstr "Executa les regles contra tots els amfitrions detectats actualment"
|
118
118
|
|
119
119
|
#: ../app/controllers/api/v2/discovered_hosts_controller.rb:142
|
120
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
120
|
+
#: ../app/controllers/discovered_hosts_controller.rb:173
|
121
121
|
msgid "Errors during auto provisioning: %s"
|
122
122
|
msgstr "Erros durant l'auto aprovisionament: %s"
|
123
123
|
|
124
124
|
#: ../app/controllers/api/v2/discovered_hosts_controller.rb:145
|
125
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
125
|
+
#: ../app/controllers/discovered_hosts_controller.rb:176
|
126
126
|
msgid "No discovered hosts to provision"
|
127
127
|
msgstr "Sense amfitrions descoberts per aprovisionar"
|
128
128
|
|
@@ -143,7 +143,7 @@ msgid "Rebooting all discovered hosts"
|
|
143
143
|
msgstr "S'estan reiniciant tots els amfitrions descoberts"
|
144
144
|
|
145
145
|
#: ../app/controllers/api/v2/discovered_hosts_controller.rb:207
|
146
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
146
|
+
#: ../app/controllers/discovered_hosts_controller.rb:129
|
147
147
|
msgid "Discovered hosts are rebooting now"
|
148
148
|
msgstr "Ara s'estan reiniciant els amfitrions descoberts"
|
149
149
|
|
@@ -217,11 +217,11 @@ msgstr ""
|
|
217
217
|
msgid "No hostgroup associated with rule '%s'"
|
218
218
|
msgstr ""
|
219
219
|
|
220
|
-
#: ../app/controllers/concerns/foreman/controller/discovered_extensions.rb:
|
220
|
+
#: ../app/controllers/concerns/foreman/controller/discovered_extensions.rb:73
|
221
221
|
msgid "Errors during reboot: %s"
|
222
222
|
msgstr "Errors durant el reinici: %s"
|
223
223
|
|
224
|
-
#: ../app/controllers/concerns/foreman/controller/discovered_extensions.rb:
|
224
|
+
#: ../app/controllers/concerns/foreman/controller/discovered_extensions.rb:91
|
225
225
|
msgid "No discovered hosts to reboot"
|
226
226
|
msgstr ""
|
227
227
|
|
@@ -229,91 +229,91 @@ msgstr ""
|
|
229
229
|
msgid "Successfully provisioned %s"
|
230
230
|
msgstr ""
|
231
231
|
|
232
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
232
|
+
#: ../app/controllers/discovered_hosts_controller.rb:97
|
233
233
|
msgid "Facts refreshed for %s"
|
234
234
|
msgstr "Els objectes d'interès que s'han refrescat per a %s"
|
235
235
|
|
236
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
236
|
+
#: ../app/controllers/discovered_hosts_controller.rb:99
|
237
237
|
msgid "Failed to refresh facts for %s"
|
238
238
|
msgstr "No s'ha pogut refrescar els objectes d'interès per a %s"
|
239
239
|
|
240
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
240
|
+
#: ../app/controllers/discovered_hosts_controller.rb:102
|
241
241
|
msgid "Failed to refresh facts for %{hostname} with error %{error_message}"
|
242
242
|
msgstr ""
|
243
243
|
|
244
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
244
|
+
#: ../app/controllers/discovered_hosts_controller.rb:109
|
245
245
|
msgid "Host of type %s can not be rebooted"
|
246
246
|
msgstr ""
|
247
247
|
|
248
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
248
|
+
#: ../app/controllers/discovered_hosts_controller.rb:113
|
249
249
|
msgid "Rebooting host %s"
|
250
250
|
msgstr "S'està reiniciant l'amfitrió %s"
|
251
251
|
|
252
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
252
|
+
#: ../app/controllers/discovered_hosts_controller.rb:115
|
253
253
|
msgid "Failed to reboot host %s"
|
254
254
|
msgstr "No s'ha pogut reiniciar l'amfitrió %s."
|
255
255
|
|
256
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
256
|
+
#: ../app/controllers/discovered_hosts_controller.rb:118
|
257
257
|
msgid "Failed to reboot host %{hostname} with error %{error_message}"
|
258
258
|
msgstr ""
|
259
259
|
|
260
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
260
|
+
#: ../app/controllers/discovered_hosts_controller.rb:132
|
261
261
|
msgid "Failed to reboot hosts with error %s"
|
262
262
|
msgstr ""
|
263
263
|
|
264
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
264
|
+
#: ../app/controllers/discovered_hosts_controller.rb:150
|
265
265
|
msgid "Destroyed selected hosts"
|
266
266
|
msgstr "S'han destruït els amfitrions seleccionats"
|
267
267
|
|
268
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
268
|
+
#: ../app/controllers/discovered_hosts_controller.rb:152
|
269
269
|
msgid "The following hosts were not deleted: %s"
|
270
270
|
msgstr ""
|
271
271
|
|
272
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
272
|
+
#: ../app/controllers/discovered_hosts_controller.rb:164
|
273
273
|
msgid "Failed to auto provision host %s: %s"
|
274
274
|
msgstr "No s'ha pogut auto aprovisionar l'amfitrió %s: %s"
|
275
275
|
|
276
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
276
|
+
#: ../app/controllers/discovered_hosts_controller.rb:192
|
277
277
|
msgid "Discovered hosts are provisioning now"
|
278
278
|
msgstr "Els amfitrions descoberts ara tenen aprovisionament"
|
279
279
|
|
280
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
280
|
+
#: ../app/controllers/discovered_hosts_controller.rb:224
|
281
281
|
msgid "Highlights"
|
282
282
|
msgstr ""
|
283
283
|
|
284
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
284
|
+
#: ../app/controllers/discovered_hosts_controller.rb:224
|
285
285
|
msgid "Storage"
|
286
286
|
msgstr ""
|
287
287
|
|
288
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
288
|
+
#: ../app/controllers/discovered_hosts_controller.rb:224
|
289
289
|
msgid "Hardware"
|
290
290
|
msgstr ""
|
291
291
|
|
292
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
292
|
+
#: ../app/controllers/discovered_hosts_controller.rb:224
|
293
293
|
msgid "Network"
|
294
294
|
msgstr ""
|
295
295
|
|
296
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
296
|
+
#: ../app/controllers/discovered_hosts_controller.rb:224
|
297
297
|
msgid "Software"
|
298
298
|
msgstr ""
|
299
299
|
|
300
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
300
|
+
#: ../app/controllers/discovered_hosts_controller.rb:224
|
301
301
|
msgid "IPMI"
|
302
302
|
msgstr ""
|
303
303
|
|
304
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
304
|
+
#: ../app/controllers/discovered_hosts_controller.rb:224
|
305
305
|
msgid "Miscellaneous"
|
306
306
|
msgstr ""
|
307
307
|
|
308
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
308
|
+
#: ../app/controllers/discovered_hosts_controller.rb:302
|
309
309
|
msgid "No hosts were found with that id or name"
|
310
310
|
msgstr "No s'ha trobat cap amfitrió amb aquest ID o nom"
|
311
311
|
|
312
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
312
|
+
#: ../app/controllers/discovered_hosts_controller.rb:306
|
313
313
|
msgid "No hosts selected"
|
314
314
|
msgstr "Cap amfitrió seleccionat"
|
315
315
|
|
316
|
-
#: ../app/controllers/discovered_hosts_controller.rb:
|
316
|
+
#: ../app/controllers/discovered_hosts_controller.rb:312
|
317
317
|
msgid "Something went wrong while selecting hosts - %s"
|
318
318
|
msgstr "Alguna cosa va anar malament mentre se seleccionaven els amfitrions - %s"
|
319
319
|
|
@@ -342,7 +342,7 @@ msgstr "Refresca els objectes d'interès"
|
|
342
342
|
|
343
343
|
#: ../app/helpers/discovered_hosts_helper.rb:16
|
344
344
|
#: ../app/helpers/discovered_hosts_helper.rb:30
|
345
|
-
#: ../app/models/setting/discovered.rb:
|
345
|
+
#: ../app/models/setting/discovered.rb:22
|
346
346
|
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:39
|
347
347
|
msgid "Reboot"
|
348
348
|
msgstr "Reinicia"
|
@@ -466,51 +466,51 @@ msgid_plural ""
|
|
466
466
|
msgstr[0] ""
|
467
467
|
msgstr[1] ""
|
468
468
|
|
469
|
-
#: ../app/models/host/discovered.rb:
|
469
|
+
#: ../app/models/host/discovered.rb:40
|
470
470
|
msgid "Fact + prefix"
|
471
471
|
msgstr ""
|
472
472
|
|
473
|
-
#: ../app/models/host/discovered.rb:
|
473
|
+
#: ../app/models/host/discovered.rb:41
|
474
474
|
msgid "Random name"
|
475
475
|
msgstr ""
|
476
476
|
|
477
|
-
#: ../app/models/host/discovered.rb:
|
477
|
+
#: ../app/models/host/discovered.rb:42
|
478
478
|
msgid "MAC-based name"
|
479
479
|
msgstr ""
|
480
480
|
|
481
|
-
#: ../app/models/host/discovered.rb:
|
481
|
+
#: ../app/models/host/discovered.rb:51
|
482
482
|
msgid "Invalid facts, must be a Hash"
|
483
483
|
msgstr "Objectes d'interès no vàlids, han de tenir un Hash"
|
484
484
|
|
485
|
-
#: ../app/models/host/discovered.rb:
|
485
|
+
#: ../app/models/host/discovered.rb:56
|
486
486
|
msgid ""
|
487
487
|
"Expected discovery_fact '%s' is missing, unable to detect primary interface "
|
488
488
|
"and set hostname"
|
489
489
|
msgstr ""
|
490
490
|
|
491
|
-
#: ../app/models/host/discovered.rb:
|
491
|
+
#: ../app/models/host/discovered.rb:69
|
492
492
|
msgid ""
|
493
493
|
"Invalid facts: hash does not contain a valid value for any of the facts in "
|
494
494
|
"the discovery_hostname setting: %s"
|
495
495
|
msgstr ""
|
496
496
|
|
497
|
-
#: ../app/models/host/discovered.rb:
|
497
|
+
#: ../app/models/host/discovered.rb:95
|
498
498
|
msgid "Facts could not be imported"
|
499
499
|
msgstr ""
|
500
500
|
|
501
|
-
#: ../app/models/host/discovered.rb:
|
501
|
+
#: ../app/models/host/discovered.rb:150
|
502
502
|
msgid "Could not get facts from proxy %{url}: %{error}"
|
503
503
|
msgstr "No s'han pogut obtenir els objectes d'interès del servidor intermediari %{url}: %{error}"
|
504
504
|
|
505
|
-
#: ../app/models/host/discovered.rb:
|
505
|
+
#: ../app/models/host/discovered.rb:158
|
506
506
|
msgid "Unable to reboot %{name} via %{url}: %{msg}"
|
507
507
|
msgstr "No es pot reiniciar %{name} a través de %{url}: %{msg}"
|
508
508
|
|
509
|
-
#: ../app/models/host/discovered.rb:
|
509
|
+
#: ../app/models/host/discovered.rb:166
|
510
510
|
msgid "Unable to perform kexec on %{name} via %{url}: %{msg}"
|
511
511
|
msgstr "No es pot realitzar kexec a %{name} a través de %{url}: %{msg}"
|
512
512
|
|
513
|
-
#: ../app/models/host/discovered.rb:
|
513
|
+
#: ../app/models/host/discovered.rb:185
|
514
514
|
msgid "Invalid hostname: Could not normalize the hostname"
|
515
515
|
msgstr ""
|
516
516
|
|
@@ -538,191 +538,191 @@ msgstr ""
|
|
538
538
|
msgid "Rebuild DNS for %s"
|
539
539
|
msgstr ""
|
540
540
|
|
541
|
-
#: ../app/models/setting/discovered.rb:
|
541
|
+
#: ../app/models/setting/discovered.rb:15
|
542
542
|
msgid "The default location to place discovered hosts in"
|
543
543
|
msgstr ""
|
544
544
|
|
545
|
-
#: ../app/models/setting/discovered.rb:
|
545
|
+
#: ../app/models/setting/discovered.rb:15
|
546
546
|
msgid "Discovery location"
|
547
547
|
msgstr ""
|
548
548
|
|
549
|
-
#: ../app/models/setting/discovered.rb:
|
549
|
+
#: ../app/models/setting/discovered.rb:16
|
550
550
|
msgid "The default organization to place discovered hosts in"
|
551
551
|
msgstr ""
|
552
552
|
|
553
|
-
#: ../app/models/setting/discovered.rb:
|
553
|
+
#: ../app/models/setting/discovered.rb:16
|
554
554
|
msgid "Discovery organization"
|
555
555
|
msgstr ""
|
556
556
|
|
557
|
-
#: ../app/models/setting/discovered.rb:
|
557
|
+
#: ../app/models/setting/discovered.rb:17
|
558
558
|
msgid "Fact name to use for primary interface detection"
|
559
559
|
msgstr ""
|
560
560
|
|
561
|
-
#: ../app/models/setting/discovered.rb:
|
561
|
+
#: ../app/models/setting/discovered.rb:17
|
562
562
|
msgid "Interface fact"
|
563
563
|
msgstr ""
|
564
564
|
|
565
|
-
#: ../app/models/setting/discovered.rb:
|
565
|
+
#: ../app/models/setting/discovered.rb:18
|
566
566
|
msgid ""
|
567
567
|
"Automatic bond interface (if another interface is detected on the same VLAN "
|
568
568
|
"via LLDP)"
|
569
569
|
msgstr ""
|
570
570
|
|
571
|
-
#: ../app/models/setting/discovered.rb:
|
571
|
+
#: ../app/models/setting/discovered.rb:18
|
572
572
|
msgid "Create bond interfaces"
|
573
573
|
msgstr ""
|
574
574
|
|
575
|
-
#: ../app/models/setting/discovered.rb:
|
575
|
+
#: ../app/models/setting/discovered.rb:19
|
576
576
|
msgid "Clean all reported facts during provisioning (except discovery facts)"
|
577
577
|
msgstr ""
|
578
578
|
|
579
|
-
#: ../app/models/setting/discovered.rb:
|
579
|
+
#: ../app/models/setting/discovered.rb:19
|
580
580
|
msgid "Clean all facts"
|
581
581
|
msgstr ""
|
582
582
|
|
583
|
-
#: ../app/models/setting/discovered.rb:
|
583
|
+
#: ../app/models/setting/discovered.rb:20
|
584
584
|
msgid "List of facts to use for the hostname (separated by comma, first wins)"
|
585
585
|
msgstr ""
|
586
586
|
|
587
|
-
#: ../app/models/setting/discovered.rb:
|
587
|
+
#: ../app/models/setting/discovered.rb:20
|
588
588
|
msgid "Hostname facts"
|
589
589
|
msgstr ""
|
590
590
|
|
591
|
-
#: ../app/models/setting/discovered.rb:
|
591
|
+
#: ../app/models/setting/discovered.rb:21
|
592
592
|
msgid ""
|
593
593
|
"Automatically provision newly discovered hosts, according to the "
|
594
594
|
"provisioning rules"
|
595
595
|
msgstr ""
|
596
596
|
|
597
|
-
#: ../app/models/setting/discovered.rb:
|
597
|
+
#: ../app/models/setting/discovered.rb:21
|
598
598
|
msgid "Auto provisioning"
|
599
599
|
msgstr ""
|
600
600
|
|
601
|
-
#: ../app/models/setting/discovered.rb:
|
601
|
+
#: ../app/models/setting/discovered.rb:22
|
602
602
|
msgid "Automatically reboot or kexec discovered host during provisioning"
|
603
603
|
msgstr ""
|
604
604
|
|
605
|
-
#: ../app/models/setting/discovered.rb:
|
605
|
+
#: ../app/models/setting/discovered.rb:23
|
606
606
|
msgid "The default prefix to use for the host name, must start with a letter"
|
607
607
|
msgstr ""
|
608
608
|
|
609
|
-
#: ../app/models/setting/discovered.rb:
|
609
|
+
#: ../app/models/setting/discovered.rb:23
|
610
610
|
msgid "Hostname prefix"
|
611
611
|
msgstr ""
|
612
612
|
|
613
|
-
#: ../app/models/setting/discovered.rb:
|
613
|
+
#: ../app/models/setting/discovered.rb:24
|
614
614
|
msgid "Extra facter columns to show in host lists (separate by comma)"
|
615
615
|
msgstr ""
|
616
616
|
|
617
|
-
#: ../app/models/setting/discovered.rb:
|
617
|
+
#: ../app/models/setting/discovered.rb:24
|
618
618
|
msgid "Fact columns"
|
619
619
|
msgstr ""
|
620
620
|
|
621
|
-
#: ../app/models/setting/discovered.rb:
|
621
|
+
#: ../app/models/setting/discovered.rb:25
|
622
622
|
msgid "Regex to organize facts for highlights section - e.g. ^(abc|cde)$"
|
623
623
|
msgstr ""
|
624
624
|
|
625
|
-
#: ../app/models/setting/discovered.rb:
|
625
|
+
#: ../app/models/setting/discovered.rb:25
|
626
626
|
msgid "Highlighted facts"
|
627
627
|
msgstr ""
|
628
628
|
|
629
|
-
#: ../app/models/setting/discovered.rb:
|
629
|
+
#: ../app/models/setting/discovered.rb:26
|
630
630
|
msgid "Regex to organize facts for storage section"
|
631
631
|
msgstr "Expressió regular per a organitzar els objectes d'interès per a la secció d'emmagatzematge"
|
632
632
|
|
633
|
-
#: ../app/models/setting/discovered.rb:
|
633
|
+
#: ../app/models/setting/discovered.rb:26
|
634
634
|
msgid "Storage facts"
|
635
635
|
msgstr ""
|
636
636
|
|
637
|
-
#: ../app/models/setting/discovered.rb:
|
637
|
+
#: ../app/models/setting/discovered.rb:27
|
638
638
|
msgid "Regex to organize facts for software section"
|
639
639
|
msgstr "Expressió regular per a organitzar els objectes d'interès per a la secció de programari"
|
640
640
|
|
641
|
-
#: ../app/models/setting/discovered.rb:
|
641
|
+
#: ../app/models/setting/discovered.rb:27
|
642
642
|
msgid "Software facts"
|
643
643
|
msgstr ""
|
644
644
|
|
645
|
-
#: ../app/models/setting/discovered.rb:
|
645
|
+
#: ../app/models/setting/discovered.rb:28
|
646
646
|
msgid "Regex to organize facts for hardware section"
|
647
647
|
msgstr "Expressió regular per a organitzar els objectes d'interès per a la secció de programari"
|
648
648
|
|
649
|
-
#: ../app/models/setting/discovered.rb:
|
649
|
+
#: ../app/models/setting/discovered.rb:28
|
650
650
|
msgid "Hardware facts"
|
651
651
|
msgstr ""
|
652
652
|
|
653
|
-
#: ../app/models/setting/discovered.rb:
|
653
|
+
#: ../app/models/setting/discovered.rb:29
|
654
654
|
msgid "Regex to organize facts for network section"
|
655
655
|
msgstr "Expressió regular per a organitzar els objectes d'interès per a la secció de xarxa"
|
656
656
|
|
657
|
-
#: ../app/models/setting/discovered.rb:
|
657
|
+
#: ../app/models/setting/discovered.rb:29
|
658
658
|
msgid "Network facts"
|
659
659
|
msgstr ""
|
660
660
|
|
661
|
-
#: ../app/models/setting/discovered.rb:
|
661
|
+
#: ../app/models/setting/discovered.rb:30
|
662
662
|
msgid "Regex to organize facts for ipmi section"
|
663
663
|
msgstr "Expressió regular per a organitzar els objectes d'interès per a la secció ipmi"
|
664
664
|
|
665
|
-
#: ../app/models/setting/discovered.rb:
|
665
|
+
#: ../app/models/setting/discovered.rb:30
|
666
666
|
msgid "IPMI facts"
|
667
667
|
msgstr ""
|
668
668
|
|
669
|
-
#: ../app/models/setting/discovered.rb:
|
669
|
+
#: ../app/models/setting/discovered.rb:31
|
670
670
|
msgid ""
|
671
671
|
"Automatically generate PXE configuration to pin a newly discovered host to "
|
672
672
|
"discovery"
|
673
673
|
msgstr ""
|
674
674
|
|
675
|
-
#: ../app/models/setting/discovered.rb:
|
675
|
+
#: ../app/models/setting/discovered.rb:31
|
676
676
|
msgid "Lock PXE"
|
677
677
|
msgstr ""
|
678
678
|
|
679
|
-
#: ../app/models/setting/discovered.rb:
|
679
|
+
#: ../app/models/setting/discovered.rb:32
|
680
680
|
msgid "PXELinux template to be used when pinning a host to discovery"
|
681
681
|
msgstr ""
|
682
682
|
|
683
|
-
#: ../app/models/setting/discovered.rb:
|
683
|
+
#: ../app/models/setting/discovered.rb:32
|
684
684
|
msgid "Locked PXELinux template name"
|
685
685
|
msgstr ""
|
686
686
|
|
687
|
-
#: ../app/models/setting/discovered.rb:
|
687
|
+
#: ../app/models/setting/discovered.rb:33
|
688
688
|
msgid "PXEGrub template to be used when pinning a host to discovery"
|
689
689
|
msgstr ""
|
690
690
|
|
691
|
-
#: ../app/models/setting/discovered.rb:
|
691
|
+
#: ../app/models/setting/discovered.rb:33
|
692
692
|
msgid "Locked PXEGrub template name"
|
693
693
|
msgstr ""
|
694
694
|
|
695
|
-
#: ../app/models/setting/discovered.rb:
|
695
|
+
#: ../app/models/setting/discovered.rb:34
|
696
696
|
msgid "PXEGrub2 template to be used when pinning a host to discovery"
|
697
697
|
msgstr ""
|
698
698
|
|
699
|
-
#: ../app/models/setting/discovered.rb:
|
699
|
+
#: ../app/models/setting/discovered.rb:34
|
700
700
|
msgid "Locked PXEGrub2 template name"
|
701
701
|
msgstr ""
|
702
702
|
|
703
|
-
#: ../app/models/setting/discovered.rb:
|
703
|
+
#: ../app/models/setting/discovered.rb:35
|
704
704
|
msgid "Force DNS entries creation when provisioning discovered host"
|
705
705
|
msgstr ""
|
706
706
|
|
707
|
-
#: ../app/models/setting/discovered.rb:
|
707
|
+
#: ../app/models/setting/discovered.rb:35
|
708
708
|
msgid "Force DNS"
|
709
709
|
msgstr ""
|
710
710
|
|
711
|
-
#: ../app/models/setting/discovered.rb:
|
711
|
+
#: ../app/models/setting/discovered.rb:36
|
712
712
|
msgid ""
|
713
713
|
"Do not allow to discover existing managed host matching MAC of a "
|
714
714
|
"provisioning NIC (errors out early)"
|
715
715
|
msgstr ""
|
716
716
|
|
717
|
-
#: ../app/models/setting/discovered.rb:
|
717
|
+
#: ../app/models/setting/discovered.rb:36
|
718
718
|
msgid "Error on existing NIC"
|
719
719
|
msgstr ""
|
720
720
|
|
721
|
-
#: ../app/models/setting/discovered.rb:
|
721
|
+
#: ../app/models/setting/discovered.rb:37
|
722
722
|
msgid "Discovery hostname naming pattern"
|
723
723
|
msgstr ""
|
724
724
|
|
725
|
-
#: ../app/models/setting/discovered.rb:
|
725
|
+
#: ../app/models/setting/discovered.rb:37
|
726
726
|
msgid "Type of name generator"
|
727
727
|
msgstr ""
|
728
728
|
|
@@ -740,6 +740,10 @@ msgid ""
|
|
740
740
|
"%{filter}"
|
741
741
|
msgstr ""
|
742
742
|
|
743
|
+
#: ../app/services/foreman_discovery/host_converter.rb:39
|
744
|
+
msgid "IPAM must be configured for subnet '%s'"
|
745
|
+
msgstr ""
|
746
|
+
|
743
747
|
#: ../app/services/foreman_discovery/node_api/node_resource.rb:75
|
744
748
|
msgid "Image API returned HTTP/%{code} with '%{body}"
|
745
749
|
msgstr ""
|
@@ -778,11 +782,11 @@ msgstr "Les CPU"
|
|
778
782
|
msgid "Memory"
|
779
783
|
msgstr "Memòria"
|
780
784
|
|
781
|
-
#: ../app/views/discovered_hosts/_discovered_host_modal.html.erb:
|
785
|
+
#: ../app/views/discovered_hosts/_discovered_host_modal.html.erb:25
|
782
786
|
msgid "Customize Host"
|
783
787
|
msgstr ""
|
784
788
|
|
785
|
-
#: ../app/views/discovered_hosts/_discovered_host_modal.html.erb:
|
789
|
+
#: ../app/views/discovered_hosts/_discovered_host_modal.html.erb:26
|
786
790
|
msgid "Create Host"
|
787
791
|
msgstr "Crea un amfitrió"
|
788
792
|
|
@@ -1092,3 +1096,19 @@ msgid ""
|
|
1092
1096
|
"ID of Discovery Proxy to use within this subnet for managing connection to "
|
1093
1097
|
"discovered hosts"
|
1094
1098
|
msgstr ""
|
1099
|
+
|
1100
|
+
#: action_names.rb:2
|
1101
|
+
msgid "Import Puppet classes"
|
1102
|
+
msgstr ""
|
1103
|
+
|
1104
|
+
#: action_names.rb:3
|
1105
|
+
msgid "Import facts"
|
1106
|
+
msgstr ""
|
1107
|
+
|
1108
|
+
#: action_names.rb:4
|
1109
|
+
msgid "Action with sub plans"
|
1110
|
+
msgstr ""
|
1111
|
+
|
1112
|
+
#: action_names.rb:5
|
1113
|
+
msgid "Remote action:"
|
1114
|
+
msgstr ""
|