foreman_discovery 16.1.3 → 16.3.5
Sign up to get free protection for your applications and to get access to all the features.
- 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ó."
|