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.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/api/v2/discovered_hosts_controller.rb +14 -8
  3. data/app/controllers/discovered_hosts_controller.rb +5 -3
  4. data/app/helpers/discovered_hosts_helper.rb +5 -0
  5. data/app/models/host/discovered.rb +11 -15
  6. data/app/models/setting/discovered.rb +3 -1
  7. data/app/services/foreman_discovery/host_fact_importer.rb +10 -0
  8. data/app/services/foreman_discovery/import_hooks/subnet_and_taxonomy.rb +2 -0
  9. data/app/views/api/v2/discovery_rules/create.json.rabl +3 -0
  10. data/app/views/discovered_hosts/_discovered_host_modal.html.erb +0 -2
  11. data/app/views/discovered_hosts/welcome.html.erb +14 -9
  12. data/app/views/discovery_rules/index.html.erb +1 -1
  13. data/app/views/foreman_discovery/debian_kexec.erb +3 -2
  14. data/app/views/foreman_discovery/redhat_kexec.erb +3 -2
  15. data/extra/discover-host +14 -8
  16. data/lib/foreman_discovery/engine.rb +3 -2
  17. data/lib/foreman_discovery/version.rb +1 -1
  18. data/locale/ca/LC_MESSAGES/foreman_discovery.mo +0 -0
  19. data/locale/ca/foreman_discovery.edit.po +46 -37
  20. data/locale/ca/foreman_discovery.po +28 -10
  21. data/locale/de/LC_MESSAGES/foreman_discovery.mo +0 -0
  22. data/locale/de/foreman_discovery.edit.po +54 -47
  23. data/locale/de/foreman_discovery.po +28 -10
  24. data/locale/en/LC_MESSAGES/foreman_discovery.mo +0 -0
  25. data/locale/en/foreman_discovery.edit.po +40 -28
  26. data/locale/en/foreman_discovery.po +28 -10
  27. data/locale/en_GB/LC_MESSAGES/foreman_discovery.mo +0 -0
  28. data/locale/en_GB/foreman_discovery.edit.po +45 -44
  29. data/locale/en_GB/foreman_discovery.po +28 -10
  30. data/locale/es/LC_MESSAGES/foreman_discovery.mo +0 -0
  31. data/locale/es/foreman_discovery.edit.po +79 -76
  32. data/locale/es/foreman_discovery.po +28 -10
  33. data/locale/foreman_discovery.pot +142 -115
  34. data/locale/fr/LC_MESSAGES/foreman_discovery.mo +0 -0
  35. data/locale/fr/foreman_discovery.edit.po +85 -82
  36. data/locale/fr/foreman_discovery.po +28 -10
  37. data/locale/gl/LC_MESSAGES/foreman_discovery.mo +0 -0
  38. data/locale/gl/foreman_discovery.edit.po +41 -29
  39. data/locale/gl/foreman_discovery.po +28 -10
  40. data/locale/it/LC_MESSAGES/foreman_discovery.mo +0 -0
  41. data/locale/it/foreman_discovery.edit.po +54 -42
  42. data/locale/it/foreman_discovery.po +28 -10
  43. data/locale/ja/LC_MESSAGES/foreman_discovery.mo +0 -0
  44. data/locale/ja/foreman_discovery.edit.po +88 -87
  45. data/locale/ja/foreman_discovery.po +28 -10
  46. data/locale/ko/LC_MESSAGES/foreman_discovery.mo +0 -0
  47. data/locale/ko/foreman_discovery.edit.po +53 -41
  48. data/locale/ko/foreman_discovery.po +28 -10
  49. data/locale/pt_BR/LC_MESSAGES/foreman_discovery.mo +0 -0
  50. data/locale/pt_BR/foreman_discovery.edit.po +78 -72
  51. data/locale/pt_BR/foreman_discovery.po +28 -10
  52. data/locale/ru/LC_MESSAGES/foreman_discovery.mo +0 -0
  53. data/locale/ru/foreman_discovery.edit.po +53 -41
  54. data/locale/ru/foreman_discovery.po +28 -10
  55. data/locale/sv_SE/LC_MESSAGES/foreman_discovery.mo +0 -0
  56. data/locale/sv_SE/foreman_discovery.edit.po +44 -32
  57. data/locale/sv_SE/foreman_discovery.po +28 -10
  58. data/locale/zh_CN/LC_MESSAGES/foreman_discovery.mo +0 -0
  59. data/locale/zh_CN/foreman_discovery.edit.po +123 -123
  60. data/locale/zh_CN/foreman_discovery.po +28 -10
  61. data/locale/zh_TW/LC_MESSAGES/foreman_discovery.mo +0 -0
  62. data/locale/zh_TW/foreman_discovery.edit.po +53 -41
  63. data/locale/zh_TW/foreman_discovery.po +28 -10
  64. data/package.json +39 -0
  65. data/test/facts/only-ipv6.json +205 -0
  66. data/test/facts/skylake-ipv6.json +223 -0
  67. data/test/functional/api/v2/settings_controller_test.rb +2 -2
  68. data/test/functional/discovered_hosts_controller_test.rb +1 -1
  69. data/test/functional/discovery_rules_controller_test.rb +1 -1
  70. data/test/unit/host_discovered_test.rb +0 -16
  71. data/webpack/index.js +18 -0
  72. data/webpack/src/ForemanDiscovery/DiscoveredHosts/Components/EmptyState/EmptyState.js +28 -0
  73. data/webpack/src/ForemanDiscovery/DiscoveredHosts/Components/EmptyState/index.js +1 -0
  74. data/webpack/src/ForemanDiscovery/DiscoveredHosts/index.js +6 -0
  75. data/webpack/src/reducers.js +7 -0
  76. metadata +24 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6ac7d31fa470fc53b81672be0f21309d8df92eef200481143055c9ad3af467be
4
- data.tar.gz: a71a4512c1bd4f90d0163dfaf07b5a670112f4825395a004c723e2f6da98d8ba
3
+ metadata.gz: 3069a28357316df978cd2a85a1ed6e919b0208d5051a1064222ccc52efde30dd
4
+ data.tar.gz: 8709517978ccc3a1b9d37913145d519a579315004c7ea6d3cd8ac7fd612a7bea
5
5
  SHA512:
6
- metadata.gz: e271f6b3990930e40277c8921254e1fd45ae89796b7d4693816d6083eb5fdcce078eb310b73579bab68e7c07c51c3e3ebf2bf93242339e6b62424d6bc48692df
7
- data.tar.gz: ae858e8f800237891cb92ce4868d43820e9f20e409c26f0bd887df6bef3c783c9e3dffbb90ce8b91971a3b5b331334593c0968712a93dc3c5c7df174346651f3
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, String
62
- param :medium_id, :number
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 = @host.hostgroup.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: @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
- # discovered#import_facts -> base#import_facts -> base#parse_facts ->
48
- # discovered#populate_fields_from_facts -> base#populate_fields_from_facts -> base#set_interfaces
49
- # discovered#populate_discovery_fields_from_facts
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
- raise ::Foreman::Exception.new(N_("Facts could not be imported")) unless host.import_facts(facts)
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
- BLANK_ATTRS << 'discovery_prefix'
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
@@ -0,0 +1,3 @@
1
+ object @discovery_rule
2
+
3
+ extends "api/v2/discovery_rules/show"
@@ -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
- <div class="blank-slate-pf">
3
- <div class="blank-slate-pf-icon">
4
- <%= icon_text("gears", "", :kind => "fa") %>
5
- </div>
6
- <h1><%= _('Discovered Hosts') %></h1>
7
- <p><%= _("No discovered hosts found in this context.") %>
8
- <%= _("This page shows discovered bare-metal or virtual nodes waiting to be provisioned.") %></p>
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 --reset-vga --append=$append --initrd=$initram $extra $kernel
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 = '00-' + mac.gsub(':', '-') if mac
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 --reset-vga --append=$append --initrd=$initram $extra $kernel
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 = '00-' + mac.gsub(':', '-') if mac
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,subnet,ip,mac (can be used multiple times, default: eth0,122,7,AA:BB:CC:DD:EE:FF") do |v|
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, ipo, mac = iface
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
- json["ipaddress_#{name}"] = ip
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"] = mac
87
- json["ipaddress"] = ip
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 '>= 1.24.0'
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]
@@ -1,3 +1,3 @@
1
1
  module ForemanDiscovery
2
- VERSION = "16.1.3"
2
+ VERSION = "16.3.5"
3
3
  end
@@ -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-05-26 17:21+0000\n"
13
- "Last-Translator: Transifex Bot <>\n"
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:68
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:68
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:37
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:38
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:39
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:40
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:6 ../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
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:8 ../app/views/discovered_mailer/discovered_summary.html.erb:20 ../app/views/discovered_mailer/discovered_summary.text.erb:12
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:9 ../app/views/discovered_mailer/discovered_summary.html.erb:21 ../app/views/discovered_mailer/discovered_summary.text.erb:13
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:4
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:4
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:5 ../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
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:7 ../app/views/discovered_mailer/discovered_summary.html.erb:19 ../app/views/discovered_mailer/discovered_summary.text.erb:11
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:10
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:11
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:15 ../app/views/discovered_hosts/_selected_hosts.html.erb:9
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:16 ../app/views/discovered_hosts/_selected_hosts.html.erb:10
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:17
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:18
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:19 ../app/views/discovery_rules/index.html.erb:12
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:51
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:57
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:58
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 "Remote action:"
1053
+ msgid "Action with sub plans"
1042
1054
  msgstr ""
1043
1055
 
1044
1056
  #: action_names.rb:3
1045
- msgid "Import Puppet classes"
1057
+ msgid "Import facts"
1046
1058
  msgstr ""
1047
1059
 
1048
1060
  #: action_names.rb:4
1049
- msgid "Import facts"
1061
+ msgid "Import Puppet classes"
1050
1062
  msgstr ""
1051
1063
 
1052
1064
  #: action_names.rb:5
1053
- msgid "Action with sub plans"
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ó."