foreman_discovery 16.1.3 → 16.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/controllers/api/v2/discovered_hosts_controller.rb +14 -8
- data/app/controllers/discovered_hosts_controller.rb +5 -3
- data/app/helpers/discovered_hosts_helper.rb +5 -0
- data/app/models/host/discovered.rb +11 -15
- data/app/models/setting/discovered.rb +3 -1
- data/app/services/foreman_discovery/host_fact_importer.rb +10 -0
- data/app/services/foreman_discovery/import_hooks/subnet_and_taxonomy.rb +2 -0
- data/app/views/api/v2/discovery_rules/create.json.rabl +3 -0
- data/app/views/discovered_hosts/_discovered_host_modal.html.erb +0 -2
- data/app/views/discovered_hosts/welcome.html.erb +14 -9
- data/app/views/discovery_rules/index.html.erb +1 -1
- data/app/views/foreman_discovery/debian_kexec.erb +3 -2
- data/app/views/foreman_discovery/redhat_kexec.erb +3 -2
- data/extra/discover-host +14 -8
- data/lib/foreman_discovery/engine.rb +3 -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 +46 -37
- data/locale/ca/foreman_discovery.po +28 -10
- data/locale/de/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/de/foreman_discovery.edit.po +54 -47
- data/locale/de/foreman_discovery.po +28 -10
- data/locale/en/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/en/foreman_discovery.edit.po +40 -28
- data/locale/en/foreman_discovery.po +28 -10
- data/locale/en_GB/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/en_GB/foreman_discovery.edit.po +45 -44
- data/locale/en_GB/foreman_discovery.po +28 -10
- data/locale/es/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/es/foreman_discovery.edit.po +79 -76
- data/locale/es/foreman_discovery.po +28 -10
- data/locale/foreman_discovery.pot +142 -115
- data/locale/fr/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/fr/foreman_discovery.edit.po +85 -82
- data/locale/fr/foreman_discovery.po +28 -10
- data/locale/gl/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/gl/foreman_discovery.edit.po +41 -29
- data/locale/gl/foreman_discovery.po +28 -10
- data/locale/it/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/it/foreman_discovery.edit.po +54 -42
- data/locale/it/foreman_discovery.po +28 -10
- data/locale/ja/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/ja/foreman_discovery.edit.po +88 -87
- data/locale/ja/foreman_discovery.po +28 -10
- data/locale/ko/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/ko/foreman_discovery.edit.po +53 -41
- data/locale/ko/foreman_discovery.po +28 -10
- data/locale/pt_BR/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/pt_BR/foreman_discovery.edit.po +78 -72
- data/locale/pt_BR/foreman_discovery.po +28 -10
- data/locale/ru/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/ru/foreman_discovery.edit.po +53 -41
- data/locale/ru/foreman_discovery.po +28 -10
- data/locale/sv_SE/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/sv_SE/foreman_discovery.edit.po +44 -32
- data/locale/sv_SE/foreman_discovery.po +28 -10
- data/locale/zh_CN/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/zh_CN/foreman_discovery.edit.po +123 -123
- data/locale/zh_CN/foreman_discovery.po +28 -10
- data/locale/zh_TW/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/zh_TW/foreman_discovery.edit.po +53 -41
- data/locale/zh_TW/foreman_discovery.po +28 -10
- data/package.json +39 -0
- data/test/facts/only-ipv6.json +205 -0
- data/test/facts/skylake-ipv6.json +223 -0
- data/test/functional/api/v2/settings_controller_test.rb +2 -2
- data/test/functional/discovered_hosts_controller_test.rb +1 -1
- data/test/functional/discovery_rules_controller_test.rb +1 -1
- data/test/unit/host_discovered_test.rb +0 -16
- data/webpack/index.js +18 -0
- data/webpack/src/ForemanDiscovery/DiscoveredHosts/Components/EmptyState/EmptyState.js +28 -0
- data/webpack/src/ForemanDiscovery/DiscoveredHosts/Components/EmptyState/index.js +1 -0
- data/webpack/src/ForemanDiscovery/DiscoveredHosts/index.js +6 -0
- data/webpack/src/reducers.js +7 -0
- metadata +24 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3069a28357316df978cd2a85a1ed6e919b0208d5051a1064222ccc52efde30dd
|
4
|
+
data.tar.gz: 8709517978ccc3a1b9d37913145d519a579315004c7ea6d3cd8ac7fd612a7bea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1f325332129ba0a4c79cff63f4e1b8f1adc1741c8a11fe0c689992896d8fe8fe08b98e60081bd17d575edcb88e6707be12ae635cc38ed1d5085d5b865ba2e097
|
7
|
+
data.tar.gz: 49e1f0a7becea2ffbe9fcdb7b120988e8dc3d20c4ad4a195de4dea8ca878c5261860951d3d9a7875a0b81933649f3730791d186e577c16aeeabf8235c8a711cc
|
@@ -51,24 +51,30 @@ module Api
|
|
51
51
|
param :id, :identifier, :required => true
|
52
52
|
param :discovered_host, Hash, :action_aware => true do
|
53
53
|
param :name, String
|
54
|
-
param :environment_id, String
|
54
|
+
param :environment_id, String, :desc => N_("required if host is managed and value is not inherited from host group")
|
55
55
|
param :ip, String, :desc => N_("not required if using a subnet with DHCP proxy")
|
56
56
|
param :mac, String, :desc => N_("not required if it's a virtual machine")
|
57
|
-
param :architecture_id, :number
|
58
|
-
param :domain_id, :number
|
57
|
+
param :architecture_id, :number, :desc => N_("required if host is managed and value is not inherited from host group")
|
58
|
+
param :domain_id, :number, :desc => N_("required if host is managed and value is not inherited from host group")
|
59
59
|
param :puppet_proxy_id, :number
|
60
60
|
param :puppet_class_ids, Array
|
61
|
-
param :operatingsystem_id,
|
62
|
-
param :medium_id, :
|
63
|
-
param :ptable_id, :number
|
64
|
-
param :subnet_id, :number
|
61
|
+
param :operatingsystem_id, :number, :desc => N_("required if host is managed and value is not inherited from host group")
|
62
|
+
param :medium_id, String, :desc => N_("required if not imaged based provisioning and host is managed and value is not inherited from host group")
|
63
|
+
param :ptable_id, :number, :desc => N_("required if host is managed and custom partition has not been defined")
|
64
|
+
param :subnet_id, :number, :desc => N_("required if host is managed and value is not inherited from host group")
|
65
65
|
param :sp_subnet_id, :number
|
66
66
|
param :model_id, :number
|
67
67
|
param :hostgroup_id, :number
|
68
68
|
param :owner_id, :number
|
69
|
+
param :owner_type, Host::Base::OWNER_TYPES, :desc => N_("Host's owner type")
|
69
70
|
param :puppet_ca_proxy_id, :number
|
70
71
|
param :image_id, :number
|
71
|
-
param :host_parameters_attributes, Array
|
72
|
+
param :host_parameters_attributes, Array, :desc => N_("Host's parameters (array or indexed hash)") do
|
73
|
+
param :name, String, :desc => N_("Name of the parameter"), :required => true
|
74
|
+
param :value, String, :desc => N_("Parameter value"), :required => true
|
75
|
+
param :parameter_type, Parameter::KEY_TYPES, :desc => N_("Type of value")
|
76
|
+
param :hidden_value, :bool
|
77
|
+
end
|
72
78
|
param :build, :bool
|
73
79
|
param :enabled, :bool
|
74
80
|
param :provision_method, String
|
@@ -199,15 +199,17 @@ class DiscoveredHostsController < ::ApplicationController
|
|
199
199
|
|
200
200
|
def setup_host_class_variables
|
201
201
|
if @host.hostgroup
|
202
|
+
subnet = @host.hostgroup.subnet || @host.subnet
|
203
|
+
subnet6 = @host.hostgroup.subnet6 || @host.subnet6
|
202
204
|
@architecture = @host.hostgroup.architecture
|
203
205
|
@operatingsystem = @host.hostgroup.operatingsystem
|
204
206
|
@environment = @host.hostgroup.environment
|
205
207
|
@domain = @host.hostgroup.domain
|
206
|
-
@subnet =
|
208
|
+
@subnet = subnet
|
209
|
+
@subnet6 = subnet6
|
207
210
|
@compute_profile = @host.hostgroup.compute_profile
|
208
211
|
@realm = @host.hostgroup.realm
|
209
|
-
@host.interfaces.first.assign_attributes(subnet:
|
210
|
-
domain: @domain)
|
212
|
+
@host.interfaces.first.assign_attributes(subnet: subnet, subnet6: subnet6, domain: @domain)
|
211
213
|
@host.environment = @environment
|
212
214
|
end
|
213
215
|
end
|
@@ -97,4 +97,9 @@ module DiscoveredHostsHelper
|
|
97
97
|
return super unless controller_name == 'discovered_hosts'
|
98
98
|
discovered_host_path(host)
|
99
99
|
end
|
100
|
+
|
101
|
+
def discovery_doc_url
|
102
|
+
doc_version = Foreman::Plugin.find(:foreman_discovery).version.scan(/\d+\.\d+/).first
|
103
|
+
"https://theforeman.org/plugins/foreman_discovery/#{doc_version}"
|
104
|
+
end
|
100
105
|
end
|
@@ -44,9 +44,13 @@ class Host::Discovered < ::Host::Base
|
|
44
44
|
|
45
45
|
# Discovery import workflow:
|
46
46
|
# discovered#import_host ->
|
47
|
-
#
|
48
|
-
#
|
49
|
-
#
|
47
|
+
# ForemanDiscovery::HostFactImporter#import_facts ->
|
48
|
+
# ::HostFactImporter#import_facts ->
|
49
|
+
# ::HostFactImporter#parse_facts ->
|
50
|
+
# discovered#populate_fields_from_facts ->
|
51
|
+
# base#populate_fields_from_facts ->
|
52
|
+
# base#set_interfaces ->
|
53
|
+
# discovered#populate_discovery_fields_from_facts
|
50
54
|
def self.import_host facts
|
51
55
|
raise(::Foreman::Exception.new(N_("Invalid facts, must be a Hash"))) unless facts.is_a?(Hash) || facts.is_a?(ActionController::Parameters)
|
52
56
|
|
@@ -92,19 +96,11 @@ class Host::Discovered < ::Host::Base
|
|
92
96
|
|
93
97
|
# and save (interfaces are created via puppet parser extension)
|
94
98
|
host.save(:validate => false) if host.new_record?
|
95
|
-
|
99
|
+
importer = ForemanDiscovery::HostFactImporter.new(host)
|
100
|
+
raise ::Foreman::Exception.new(N_("Facts could not be imported")) unless importer.import_facts(facts)
|
96
101
|
host
|
97
102
|
end
|
98
103
|
|
99
|
-
def import_facts(facts)
|
100
|
-
# Discovered Hosts won't report in via puppet, so we can use that field to
|
101
|
-
# record the last time it sent facts...
|
102
|
-
self.last_report = Time.now
|
103
|
-
# Set the correct facts type for new foreman facts importing code.
|
104
|
-
facts[:_type] = :foreman_discovery
|
105
|
-
super(facts)
|
106
|
-
end
|
107
|
-
|
108
104
|
def setup_clone
|
109
105
|
# Nic::Managed needs this method but Discovered hosts shouldn't
|
110
106
|
# be doing orchestration anyway...
|
@@ -144,10 +140,10 @@ class Host::Discovered < ::Host::Base
|
|
144
140
|
def refresh_facts
|
145
141
|
facts = ::ForemanDiscovery::NodeAPI::Inventory.new(:url => proxy_url(self.ip)).facter
|
146
142
|
self.class.import_host facts
|
147
|
-
import_facts facts
|
143
|
+
::ForemanDiscovery::HostFactImporter.new(self).import_facts facts
|
148
144
|
rescue => e
|
149
145
|
::Foreman::Logging.exception("Unable to get facts from proxy", e)
|
150
|
-
raise ::Foreman::WrappedException.new(e, N_("Could not get facts from proxy %{url}: %{error}"), :url => proxy_url, :error => e)
|
146
|
+
raise ::Foreman::WrappedException.new(e, N_("Could not get facts from proxy %{url}: %{error}"), :url => proxy_url(self.ip), :error => e)
|
151
147
|
end
|
152
148
|
|
153
149
|
def reboot(old_ip = nil, new_ip = nil)
|
@@ -8,7 +8,9 @@ class Setting::Discovered < ::Setting
|
|
8
8
|
BLANK_ATTRS << 'discovery_facts_hardware'
|
9
9
|
BLANK_ATTRS << 'discovery_facts_network'
|
10
10
|
BLANK_ATTRS << 'discovery_facts_ipmi'
|
11
|
-
|
11
|
+
|
12
|
+
STRING_PRESENCE_ATTRS = ['discovery_hostname', 'discovery_prefix']
|
13
|
+
validates :value, :presence => true, :if => proc { |s| STRING_PRESENCE_ATTRS.include?(s.name) }
|
12
14
|
|
13
15
|
def self.default_settings
|
14
16
|
[
|
@@ -0,0 +1,10 @@
|
|
1
|
+
class ForemanDiscovery::HostFactImporter < ::HostFactImporter
|
2
|
+
def import_facts(facts)
|
3
|
+
# Discovered Hosts won't report in via puppet, so we can use that field to
|
4
|
+
# record the last time it sent facts...
|
5
|
+
host.last_report = Time.now
|
6
|
+
# Set the correct facts type for new foreman facts importing code.
|
7
|
+
facts[:_type] = :foreman_discovery
|
8
|
+
super(facts)
|
9
|
+
end
|
10
|
+
end
|
@@ -35,6 +35,7 @@ module ForemanDiscovery
|
|
35
35
|
Location.find_by_title(facts["discovery_location"]) ||
|
36
36
|
Location.find_by_title(Setting[:discovery_location]) ||
|
37
37
|
host.subnet.try(:locations).try(:first) ||
|
38
|
+
host.subnet6.try(:locations).try(:first) ||
|
38
39
|
Location.first
|
39
40
|
end
|
40
41
|
|
@@ -48,6 +49,7 @@ module ForemanDiscovery
|
|
48
49
|
Organization.find_by_title(facts["discovery_organization"]) ||
|
49
50
|
Organization.find_by_title(Setting[:discovery_organization]) ||
|
50
51
|
host.subnet.try(:organizations).try(:first) ||
|
52
|
+
host.subnet6.try(:organizations).try(:first) ||
|
51
53
|
Organization.first
|
52
54
|
end
|
53
55
|
end
|
@@ -17,8 +17,6 @@
|
|
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>
|
22
20
|
</div>
|
23
21
|
<div class="modal-footer">
|
24
22
|
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
|
@@ -1,10 +1,15 @@
|
|
1
|
+
<% content_for(:javascripts) do %>
|
2
|
+
<%= webpacked_plugins_js_for :'foreman_discovery' %>
|
3
|
+
<% end %>
|
4
|
+
<% content_for(:stylesheets) do %>
|
5
|
+
<%= webpacked_plugins_css_for :'foreman_discovery' %>
|
6
|
+
<% end %>
|
7
|
+
|
1
8
|
<% content_for(:title, _("Discovered Hosts")) %>
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
<
|
7
|
-
|
8
|
-
|
9
|
-
<p><%= link_to _('Learn more about this in the documentation.'), documentation_url("#{ForemanDiscovery::VERSION.scan(/\d+\.\d+/).first}/index.html", {:root_url => 'https://theforeman.org/plugins/foreman_discovery/'})%></p>
|
10
|
-
</div>
|
9
|
+
|
10
|
+
<% content_for(:content) do %>
|
11
|
+
<%= notifications %>
|
12
|
+
<div id="organization-id" data-id="<%= Organization.current.id if Organization.current %>" ></div>
|
13
|
+
<div id="user-id" data-id="<%= User.current.id if User.current %>" ></div>
|
14
|
+
<%= react_component('DiscoveredHosts', docUrl: discovery_doc_url ) %>
|
15
|
+
<% end %>
|
@@ -18,7 +18,7 @@
|
|
18
18
|
<td><%= trunc_with_tooltip(rule.search) %></td>
|
19
19
|
<td><%= label_with_link(rule.hostgroup, 26, authorizer) %></td>
|
20
20
|
<td><%= rule.hosts.count %> / <%= rule.max_count %></td>
|
21
|
-
<td><%= rule.enabled %></td>
|
21
|
+
<td><%= checked_icon rule.enabled %></td>
|
22
22
|
<td><%= action_buttons(*permitted_discovery_actions(rule)) %></td>
|
23
23
|
</tr>
|
24
24
|
<% end %>
|
@@ -12,13 +12,14 @@ environments. The template must generate JSON format with the following items
|
|
12
12
|
"kernel", "initram", "append" and "extra". The kexec command is composed in
|
13
13
|
the following way:
|
14
14
|
|
15
|
-
kexec --force --
|
15
|
+
kexec --force --debug --append=$append --initrd=$initram $extra $kernel
|
16
16
|
|
17
17
|
Please read kexec(8) man page for more information about semantics.
|
18
|
+
Extra options like --reset-vga can be set via "extra" array.
|
18
19
|
-%>
|
19
20
|
<%
|
20
21
|
mac = @host.facts['discovery_bootif']
|
21
|
-
bootif =
|
22
|
+
bootif = host_param("hardware_type", "01") + mac.gsub(':', '-') if mac
|
22
23
|
ip_cidr = @host.facts['discovery_ip_cidr']
|
23
24
|
ip = @host.facts['discovery_ip']
|
24
25
|
mask = @host.facts['discovery_netmask']
|
@@ -22,13 +22,14 @@ environments. The template must generate JSON format with the following items
|
|
22
22
|
"kernel", "initram", "append" and "extra". The kexec command is composed in
|
23
23
|
the following way:
|
24
24
|
|
25
|
-
kexec --force --
|
25
|
+
kexec --force --debug --append=$append --initrd=$initram $extra $kernel
|
26
26
|
|
27
27
|
Please read kexec(8) man page for more information about semantics.
|
28
|
+
Extra options like --reset-vga can be set via "extra" array.
|
28
29
|
-%>
|
29
30
|
<%
|
30
31
|
mac = @host.facts['discovery_bootif']
|
31
|
-
bootif =
|
32
|
+
bootif = host_param("hardware_type", "01") + mac.gsub(':', '-') if mac
|
32
33
|
ip_cidr = @host.facts['discovery_ip_cidr']
|
33
34
|
ip = @host.facts['discovery_ip']
|
34
35
|
mask = @host.facts['discovery_netmask']
|
data/extra/discover-host
CHANGED
@@ -33,7 +33,7 @@ OptionParser.new do |opts|
|
|
33
33
|
version = v
|
34
34
|
end
|
35
35
|
|
36
|
-
opts.on("-iARRAY", "--interface=ARRAY", Array, "Comma separated array: name,
|
36
|
+
opts.on("-iARRAY", "--interface=ARRAY", Array, "Comma separated array: name,network/prefix,mac,ip (can be used multiple times, default: eth0,192.168.122.0/24") do |v|
|
37
37
|
interfaces << v
|
38
38
|
end
|
39
39
|
|
@@ -66,7 +66,7 @@ OptionParser.new do |opts|
|
|
66
66
|
end
|
67
67
|
end.parse!
|
68
68
|
|
69
|
-
interfaces << ["eth0", "122"] if interfaces.empty?
|
69
|
+
interfaces << ["eth0", "192.168.122.0/24"] if interfaces.empty?
|
70
70
|
primary ||= interfaces.first.first
|
71
71
|
bootif ||= interfaces.first.first
|
72
72
|
json = JSON.parse(File.read(base))
|
@@ -76,15 +76,21 @@ json["discovery_version"] = version
|
|
76
76
|
unless preserve_interfaces
|
77
77
|
json["interfaces"] = interfaces.map{|i| i.first}.join(',')
|
78
78
|
interfaces.each do |iface|
|
79
|
-
name, subnet,
|
79
|
+
name, subnet, mac, explicit_ip = iface
|
80
80
|
mac ||= (["52"] + 5.times.map { '%02x' % rand(0..255) }).join(':')
|
81
|
-
ipo ||= rand(1..253)
|
82
|
-
ip = "192.168.#{subnet}.#{ipo}"
|
83
81
|
json["macaddress_#{name}"] = mac
|
84
|
-
|
82
|
+
_, prefix = subnet.split('/')
|
83
|
+
if subnet.include?('.')
|
84
|
+
random_ip = IPAddr.new(subnet, Socket::AF_INET) | IPAddr.new(rand(2**(32 - prefix.to_i)), Socket::AF_INET)
|
85
|
+
fact_name = "ipaddress"
|
86
|
+
else
|
87
|
+
random_ip = IPAddr.new(subnet, Socket::AF_INET6) | IPAddr.new(rand(2**(32 - prefix.to_i)), Socket::AF_INET6)
|
88
|
+
fact_name = "ipaddress6"
|
89
|
+
end
|
90
|
+
json["#{fact_name}_#{name}"] = explicit_ip ? explicit_ip : random_ip
|
85
91
|
if name == primary
|
86
|
-
json["macaddress"] =
|
87
|
-
json[
|
92
|
+
json["macaddress"] = json["macaddress_#{name}"]
|
93
|
+
json[fact_name] = json["#{fact_name}_#{name}"]
|
88
94
|
end
|
89
95
|
json["discovery_bootif"] = mac if name == bootif
|
90
96
|
end
|
@@ -43,13 +43,14 @@ 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 '>=
|
46
|
+
requires_foreman '>= 2.3'
|
47
47
|
|
48
48
|
# discovered hosts permissions
|
49
49
|
security_block :discovery do
|
50
50
|
permission :view_discovered_hosts, {
|
51
51
|
:discovered_hosts => [:index, :show, :auto_complete_search, :welcome],
|
52
|
-
:"api/v2/discovered_hosts" => [:index, :show]
|
52
|
+
:"api/v2/discovered_hosts" => [:index, :show],
|
53
|
+
:'discovered_hosts/react' => [:index]
|
53
54
|
}, :resource_type => 'Host'
|
54
55
|
permission :submit_discovered_hosts, {
|
55
56
|
:"api/v2/discovered_hosts" => [:facts, :create]
|
Binary file
|
@@ -9,8 +9,8 @@ msgid ""
|
|
9
9
|
msgstr ""
|
10
10
|
"Project-Id-Version: foreman_discovery 16.3.4\n"
|
11
11
|
"Report-Msgid-Bugs-To: \n"
|
12
|
-
"PO-Revision-Date: 2020-
|
13
|
-
"Last-Translator:
|
12
|
+
"PO-Revision-Date: 2020-10-29 17:16+0000\n"
|
13
|
+
"Last-Translator: Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>\n"
|
14
14
|
"Language-Team: Catalan (http://www.transifex.com/foreman/foreman/language/ca/)"
|
15
15
|
"\n"
|
16
16
|
"MIME-Version: 1.0\n"
|
@@ -73,11 +73,11 @@ msgstr ""
|
|
73
73
|
|
74
74
|
#: ../app/controllers/api/v2/discovered_hosts_controller.rb:63
|
75
75
|
msgid "required if host is managed and custom partition has not been defined"
|
76
|
-
msgstr ""
|
76
|
+
msgstr "es requereix si l'amfitrió està gestionat i no s'ha definit la partició personalitzada"
|
77
77
|
|
78
78
|
#: ../app/controllers/api/v2/discovered_hosts_controller.rb:69
|
79
79
|
msgid "Host's owner type"
|
80
|
-
msgstr ""
|
80
|
+
msgstr "Tipus de propietari de l'amfitrió"
|
81
81
|
|
82
82
|
#: ../app/controllers/api/v2/discovered_hosts_controller.rb:72
|
83
83
|
msgid "Host's parameters (array or indexed hash)"
|
@@ -85,11 +85,11 @@ msgstr ""
|
|
85
85
|
|
86
86
|
#: ../app/controllers/api/v2/discovered_hosts_controller.rb:73
|
87
87
|
msgid "Name of the parameter"
|
88
|
-
msgstr ""
|
88
|
+
msgstr "Nom del paràmetre"
|
89
89
|
|
90
90
|
#: ../app/controllers/api/v2/discovered_hosts_controller.rb:74
|
91
91
|
msgid "Parameter value"
|
92
|
-
msgstr ""
|
92
|
+
msgstr "Valor del paràmetre"
|
93
93
|
|
94
94
|
#: ../app/controllers/api/v2/discovered_hosts_controller.rb:75
|
95
95
|
msgid "Type of value"
|
@@ -331,11 +331,11 @@ msgstr "Cap amfitrió seleccionat"
|
|
331
331
|
msgid "Something went wrong while selecting hosts - %s"
|
332
332
|
msgstr "Alguna cosa va anar malament mentre se seleccionaven els amfitrions - %s"
|
333
333
|
|
334
|
-
#: ../app/controllers/discovery_rules_controller.rb:
|
334
|
+
#: ../app/controllers/discovery_rules_controller.rb:72
|
335
335
|
msgid "Rule enabled"
|
336
336
|
msgstr "Regla habilitada"
|
337
337
|
|
338
|
-
#: ../app/controllers/discovery_rules_controller.rb:
|
338
|
+
#: ../app/controllers/discovery_rules_controller.rb:72
|
339
339
|
msgid "Rule disabled"
|
340
340
|
msgstr "Regla inhabilitada"
|
341
341
|
|
@@ -343,15 +343,15 @@ msgstr "Regla inhabilitada"
|
|
343
343
|
msgid "%s ago"
|
344
344
|
msgstr "fa %s"
|
345
345
|
|
346
|
-
#: ../app/helpers/discovered_hosts_helper.rb:14 ../app/helpers/discovered_hosts_helper.rb:29 ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:
|
346
|
+
#: ../app/helpers/discovered_hosts_helper.rb:14 ../app/helpers/discovered_hosts_helper.rb:29 ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:40
|
347
347
|
msgid "Auto Provision"
|
348
348
|
msgstr "Auto aprovisiona"
|
349
349
|
|
350
|
-
#: ../app/helpers/discovered_hosts_helper.rb:15 ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:
|
350
|
+
#: ../app/helpers/discovered_hosts_helper.rb:15 ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:41
|
351
351
|
msgid "Refresh facts"
|
352
352
|
msgstr "Refresca els objectes d'interès"
|
353
353
|
|
354
|
-
#: ../app/helpers/discovered_hosts_helper.rb:16 ../app/helpers/discovered_hosts_helper.rb:30 ../app/models/setting/discovered.rb:24 ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:
|
354
|
+
#: ../app/helpers/discovered_hosts_helper.rb:16 ../app/helpers/discovered_hosts_helper.rb:30 ../app/models/setting/discovered.rb:24 ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:42
|
355
355
|
msgid "Reboot"
|
356
356
|
msgstr "Reinicia"
|
357
357
|
|
@@ -363,7 +363,7 @@ msgstr "Enrere"
|
|
363
363
|
msgid "Select Action"
|
364
364
|
msgstr "Selecciona l'acció"
|
365
365
|
|
366
|
-
#: ../app/helpers/discovered_hosts_helper.rb:23 ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:
|
366
|
+
#: ../app/helpers/discovered_hosts_helper.rb:23 ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:43
|
367
367
|
msgid "Delete %s?"
|
368
368
|
msgstr "Voleu suprimir %s?"
|
369
369
|
|
@@ -753,15 +753,15 @@ msgstr ""
|
|
753
753
|
msgid "Host"
|
754
754
|
msgstr "Amfitrió"
|
755
755
|
|
756
|
-
#: ../app/views/dashboard/_discovery_widget_host_list.html.erb:4 ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:
|
756
|
+
#: ../app/views/dashboard/_discovery_widget_host_list.html.erb:4 ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:7 ../app/views/discovered_hosts/_selected_hosts.html.erb:8 ../app/views/discovered_mailer/discovered_summary.html.erb:18 ../app/views/discovered_mailer/discovered_summary.text.erb:10
|
757
757
|
msgid "Model"
|
758
758
|
msgstr "Model"
|
759
759
|
|
760
|
-
#: ../app/views/dashboard/_discovery_widget_host_list.html.erb:5 ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:
|
760
|
+
#: ../app/views/dashboard/_discovery_widget_host_list.html.erb:5 ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:9 ../app/views/discovered_mailer/discovered_summary.html.erb:20 ../app/views/discovered_mailer/discovered_summary.text.erb:12
|
761
761
|
msgid "CPUs"
|
762
762
|
msgstr "Les CPU"
|
763
763
|
|
764
|
-
#: ../app/views/dashboard/_discovery_widget_host_list.html.erb:6 ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:
|
764
|
+
#: ../app/views/dashboard/_discovery_widget_host_list.html.erb:6 ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:10 ../app/views/discovered_mailer/discovered_summary.html.erb:21 ../app/views/discovered_mailer/discovered_summary.text.erb:13
|
765
765
|
msgid "Memory"
|
766
766
|
msgstr "Memòria"
|
767
767
|
|
@@ -773,59 +773,59 @@ msgstr ""
|
|
773
773
|
msgid "Create Host"
|
774
774
|
msgstr "Crea un amfitrió"
|
775
775
|
|
776
|
-
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:
|
776
|
+
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:5
|
777
777
|
msgid "Select all items in this page"
|
778
778
|
msgstr "Selecciona tots els ítems en aquesta pàgina"
|
779
779
|
|
780
|
-
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:
|
780
|
+
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:5
|
781
781
|
msgid "items selected. Uncheck to Clear"
|
782
782
|
msgstr "ítems seleccionats. Desmarca per netejar"
|
783
783
|
|
784
|
-
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:
|
784
|
+
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:6 ../app/views/discovered_hosts/_selected_hosts.html.erb:7 ../app/views/discovered_mailer/discovered_summary.html.erb:17 ../app/views/discovered_mailer/discovered_summary.text.erb:9
|
785
785
|
msgid "Name"
|
786
786
|
msgstr "Nom"
|
787
787
|
|
788
|
-
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:
|
788
|
+
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:8 ../app/views/discovered_mailer/discovered_summary.html.erb:19 ../app/views/discovered_mailer/discovered_summary.text.erb:11
|
789
789
|
msgid "IP Address"
|
790
790
|
msgstr "Adreça IP"
|
791
791
|
|
792
|
-
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:
|
792
|
+
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:11
|
793
793
|
msgid "Disk Count"
|
794
794
|
msgstr ""
|
795
795
|
|
796
|
-
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:
|
796
|
+
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:12
|
797
797
|
msgid "Disks Size"
|
798
798
|
msgstr ""
|
799
799
|
|
800
|
-
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:
|
800
|
+
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:16 ../app/views/discovered_hosts/_selected_hosts.html.erb:9
|
801
801
|
msgid "Location"
|
802
802
|
msgstr "Ubicació"
|
803
803
|
|
804
|
-
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:
|
804
|
+
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:17 ../app/views/discovered_hosts/_selected_hosts.html.erb:10
|
805
805
|
msgid "Organization"
|
806
806
|
msgstr "Organització"
|
807
807
|
|
808
|
-
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:
|
808
|
+
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:18
|
809
809
|
msgid "Subnet"
|
810
810
|
msgstr "Subxarxa"
|
811
811
|
|
812
|
-
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:
|
812
|
+
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:19
|
813
813
|
msgid "Last Facts Upload"
|
814
814
|
msgstr ""
|
815
815
|
|
816
|
-
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:
|
816
|
+
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:20 ../app/views/discovery_rules/index.html.erb:12
|
817
817
|
msgid "Actions"
|
818
818
|
msgstr "Accions"
|
819
819
|
|
820
|
-
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:
|
820
|
+
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:55
|
821
821
|
msgid "Please Confirm"
|
822
822
|
msgstr "Si us plau, confirmeu"
|
823
823
|
|
824
|
-
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:
|
824
|
+
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:61
|
825
825
|
msgid "Cancel"
|
826
826
|
msgstr "Cancel·la"
|
827
827
|
|
828
|
-
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:
|
828
|
+
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:62
|
829
829
|
msgid "Submit"
|
830
830
|
msgstr "Envia"
|
831
831
|
|
@@ -969,7 +969,7 @@ msgstr "Edita %s"
|
|
969
969
|
msgid "Discovery Rules"
|
970
970
|
msgstr "Regles de descobriment"
|
971
971
|
|
972
|
-
#: ../app/views/discovery_rules/index.html.erb:2
|
972
|
+
#: ../app/views/discovery_rules/index.html.erb:2 ../webpack/src/ForemanDiscovery/DiscoveryRules/Components/EmptyState/EmptyState.js:9
|
973
973
|
msgid "Create Rule"
|
974
974
|
msgstr ""
|
975
975
|
|
@@ -1001,6 +1001,10 @@ msgstr "Habilitada"
|
|
1001
1001
|
msgid "New Discovery Rule"
|
1002
1002
|
msgstr "Regla de descobriment nova"
|
1003
1003
|
|
1004
|
+
#: ../app/views/discovery_rules/welcome.html.erb:8
|
1005
|
+
msgid "Discovered Rules"
|
1006
|
+
msgstr ""
|
1007
|
+
|
1004
1008
|
#: ../db/seeds.d/50_discovery_templates.rb:5
|
1005
1009
|
msgid "Command line options for kexec during PXE-less provisioning."
|
1006
1010
|
msgstr ""
|
@@ -1037,21 +1041,26 @@ msgstr ""
|
|
1037
1041
|
msgid "ID of Discovery Proxy to use within this subnet for managing connection to discovered hosts"
|
1038
1042
|
msgstr ""
|
1039
1043
|
|
1044
|
+
#: ../webpack/__mocks__/foremanReact/components/common/EmptyState/EmptyStatePattern.js:33
|
1045
|
+
msgid "For more information please see "
|
1046
|
+
msgstr ""
|
1047
|
+
|
1048
|
+
#: ../webpack/__mocks__/foremanReact/components/common/EmptyState/EmptyStatePattern.js:34
|
1049
|
+
msgid "documentation"
|
1050
|
+
msgstr ""
|
1051
|
+
|
1040
1052
|
#: action_names.rb:2
|
1041
|
-
msgid "
|
1053
|
+
msgid "Action with sub plans"
|
1042
1054
|
msgstr ""
|
1043
1055
|
|
1044
1056
|
#: action_names.rb:3
|
1045
|
-
msgid "Import
|
1057
|
+
msgid "Import facts"
|
1046
1058
|
msgstr ""
|
1047
1059
|
|
1048
1060
|
#: action_names.rb:4
|
1049
|
-
msgid "Import
|
1061
|
+
msgid "Import Puppet classes"
|
1050
1062
|
msgstr ""
|
1051
1063
|
|
1052
1064
|
#: action_names.rb:5
|
1053
|
-
msgid "
|
1065
|
+
msgid "Remote action:"
|
1054
1066
|
msgstr ""
|
1055
|
-
|
1056
|
-
#~ msgid "Learn more about this in the documentation."
|
1057
|
-
#~ msgstr "Obteniu més informació sobre això a la documentació."
|