foreman_discovery 9.0.0 → 9.1.0
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 +6 -4
- data/app/controllers/api/v2/fact_values_controller_extensions.rb +2 -2
- data/app/controllers/concerns/foreman/controller/discovered_extensions.rb +6 -1
- data/app/controllers/discovered_hosts_controller.rb +2 -2
- data/app/helpers/discovered_hosts_helper.rb +5 -0
- data/app/models/discovery_attribute_set.rb +1 -1
- data/app/models/discovery_rule.rb +1 -1
- data/app/models/host/discovered.rb +3 -2
- data/app/models/host/managed_extensions.rb +10 -5
- data/app/services/foreman_discovery/host_converter.rb +0 -2
- data/app/views/api/v2/discovery_rules/main.json.rabl +12 -0
- data/app/views/discovered_hosts/_discovered_host_modal.html.erb +2 -2
- data/app/views/discovered_hosts/_discovered_hosts_list.html.erb +5 -5
- data/app/views/discovered_hosts/edit.html.erb +3 -0
- data/app/views/discovery_rules/_form.html.erb +1 -1
- data/app/views/discovery_rules/index.html.erb +2 -2
- data/app/views/foreman_discovery/debian_kexec.erb +1 -0
- data/app/views/foreman_discovery/redhat_kexec.erb +1 -0
- data/config/routes.rb +3 -3
- data/db/migrate/20141223142759_fill_discovery_attribute_sets_for_existing_hosts.rb +1 -1
- data/db/migrate/20160818091421_add_permissions_from_default_roles.rb +1 -7
- data/db/seeds.d/50_discovery_templates.rb +2 -2
- data/db/seeds.d/60_discovery_proxy_feature.rb +2 -2
- data/db/seeds.d/70_discovery_mail_notification.rb +1 -1
- data/db/seeds.d/90_add_permissions_from_default_roles.rb +12 -0
- 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 +37 -28
- data/locale/ca/foreman_discovery.po +14 -8
- data/locale/de/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/de/foreman_discovery.edit.po +38 -29
- data/locale/de/foreman_discovery.po +15 -9
- data/locale/en/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/en/foreman_discovery.edit.po +62 -38
- data/locale/en/foreman_discovery.po +27 -9
- data/locale/en_GB/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/en_GB/foreman_discovery.edit.po +37 -28
- data/locale/en_GB/foreman_discovery.po +14 -8
- data/locale/es/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/es/foreman_discovery.edit.po +37 -28
- data/locale/es/foreman_discovery.po +14 -8
- data/locale/foreman_discovery.pot +63 -41
- data/locale/fr/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/fr/foreman_discovery.edit.po +38 -29
- data/locale/fr/foreman_discovery.po +15 -9
- data/locale/gl/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/gl/foreman_discovery.edit.po +36 -27
- data/locale/gl/foreman_discovery.po +14 -8
- data/locale/it/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/it/foreman_discovery.edit.po +37 -28
- data/locale/it/foreman_discovery.po +14 -8
- data/locale/ja/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/ja/foreman_discovery.edit.po +37 -28
- data/locale/ja/foreman_discovery.po +14 -8
- data/locale/ko/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/ko/foreman_discovery.edit.po +37 -28
- data/locale/ko/foreman_discovery.po +14 -8
- data/locale/pt_BR/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/pt_BR/foreman_discovery.edit.po +37 -28
- data/locale/pt_BR/foreman_discovery.po +14 -8
- data/locale/ru/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/ru/foreman_discovery.edit.po +37 -28
- data/locale/ru/foreman_discovery.po +14 -8
- data/locale/sv_SE/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/sv_SE/foreman_discovery.edit.po +36 -27
- data/locale/sv_SE/foreman_discovery.po +14 -8
- data/locale/zh_CN/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/zh_CN/foreman_discovery.edit.po +37 -28
- data/locale/zh_CN/foreman_discovery.po +14 -8
- data/locale/zh_TW/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/zh_TW/foreman_discovery.edit.po +37 -28
- data/locale/zh_TW/foreman_discovery.po +14 -8
- data/test/factories/discovery_host_related.rb +26 -0
- data/test/factories/discovery_rule_related.rb +0 -27
- data/test/functional/api/v2/discovered_hosts_controller_test.rb +8 -6
- data/test/functional/api/v2/discovery_rules_controller_test.rb +5 -2
- data/test/functional/api/v2/fact_value_extensions_test.rb +2 -2
- data/test/functional/discovered_hosts_controller_test.rb +114 -78
- data/test/functional/discovery_rules_controller_test.rb +1 -1
- data/test/functional/foreman_discovery/concerns/hosts_controller_extensions_test.rb +0 -1
- data/test/test_helper_discovery.rb +42 -6
- data/test/test_plugin_helper.rb +2 -0
- data/test/unit/discovered_extensions_test.rb +55 -10
- data/test/unit/discovery_attribute_set_test.rb +1 -1
- data/test/unit/discovery_rule_test.rb +1 -1
- data/test/unit/discovery_taxonomy_extensions_test.rb +1 -1
- data/test/unit/fact_parser_test.rb +1 -1
- data/test/unit/host_discovered_test.rb +48 -3
- data/test/unit/managed_extensions_test.rb +76 -0
- data/test/unit/setting_discovered_test.rb +1 -1
- data/test/unit/ui_notifications/destroy_host_test.rb +0 -1
- metadata +25 -23
- data/app/models/concerns/fact_value_extensions.rb +0 -13
- data/test/test_helper.rb +0 -25
- data/test/unit/fact_value_extensions_test.rb +0 -11
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b8add68d8512242fea5a6faac1954c4b7ec01409
|
|
4
|
+
data.tar.gz: 37d4675caf253247f1a958f4c448a270af9d83ad
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 18f14ea75515d25ed150eb5afb2b5a3809a5ea97869b23de86c801948d803fd530892a249aad6aa1166fff1584f610e5465b7991cdce7671c26135bbcf7502a7
|
|
7
|
+
data.tar.gz: a32ed0d140eef3e1e75c427788d4ddf2806953c6edcc0dd07f12a90c9d5c8acf6b14cb5b9db7bb45232a5c9112a79f70f0e37e18cdd6652a92c1ea251bf8af1f
|
|
@@ -96,10 +96,12 @@ module Api
|
|
|
96
96
|
def facts
|
|
97
97
|
facts = params['facts']
|
|
98
98
|
state = true
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
99
|
+
User.as_anonymous_admin do
|
|
100
|
+
@discovered_host = Host::Discovered.import_host(facts)
|
|
101
|
+
Rails.logger.warn 'Discovered facts import unsuccessful, skipping auto provisioning' unless @discovered_host
|
|
102
|
+
if Setting['discovery_auto'] && @discovered_host && (rule = find_discovery_rule(@discovered_host))
|
|
103
|
+
state = perform_auto_provision(@discovered_host, rule)
|
|
104
|
+
end
|
|
103
105
|
end
|
|
104
106
|
process_response state
|
|
105
107
|
rescue Exception => e
|
|
@@ -4,8 +4,8 @@ module Api
|
|
|
4
4
|
extend ActiveSupport::Concern
|
|
5
5
|
|
|
6
6
|
included do
|
|
7
|
-
api :GET, "/discovered_hosts/:
|
|
7
|
+
api :GET, "/discovered_hosts/:host_id/facts/", N_("List all fact values of a given discovered host")
|
|
8
8
|
end
|
|
9
9
|
end
|
|
10
10
|
end
|
|
11
|
-
end
|
|
11
|
+
end
|
|
@@ -58,7 +58,12 @@ module Foreman::Controller::DiscoveredExtensions
|
|
|
58
58
|
host.attributes = host.apply_inherited_attributes(hostgroup_id: rule.hostgroup_id)
|
|
59
59
|
host.set_hostgroup_defaults
|
|
60
60
|
# save! does not work here
|
|
61
|
-
host.save
|
|
61
|
+
if host.save
|
|
62
|
+
host
|
|
63
|
+
else
|
|
64
|
+
Rails.logger.error "Auto provisioning failed: #{host.errors.full_messages.to_sentence}"
|
|
65
|
+
false
|
|
66
|
+
end
|
|
62
67
|
end
|
|
63
68
|
|
|
64
69
|
def perform_reboot_all hosts = Host::Discovered.all
|
|
@@ -56,7 +56,7 @@ class DiscoveredHostsController < ::ApplicationController
|
|
|
56
56
|
if params[:quick_submit]
|
|
57
57
|
perform_update(@host, _('Successfully provisioned %s') % @host.name)
|
|
58
58
|
else
|
|
59
|
-
render :template => '
|
|
59
|
+
render :template => 'discovered_hosts/edit'
|
|
60
60
|
end
|
|
61
61
|
end
|
|
62
62
|
|
|
@@ -78,7 +78,7 @@ class DiscoveredHostsController < ::ApplicationController
|
|
|
78
78
|
taxonomy_scope
|
|
79
79
|
load_vars_for_ajax
|
|
80
80
|
offer_to_overwrite_conflicts
|
|
81
|
-
process_error :object => host, :render => '
|
|
81
|
+
process_error :object => host, :render => 'discovered_hosts/edit'
|
|
82
82
|
end
|
|
83
83
|
end
|
|
84
84
|
end
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
class DiscoveryAttributeSet <
|
|
1
|
+
class DiscoveryAttributeSet < ApplicationRecord
|
|
2
2
|
belongs_to :host, :class_name => "Host::Discovered", :foreign_key => :host_id
|
|
3
3
|
|
|
4
4
|
validates :cpu_count, :presence => true, :numericality => {:greater_than_or_equal_to => 0}
|
|
@@ -169,8 +169,9 @@ class Host::Discovered < ::Host::Base
|
|
|
169
169
|
facts = ::ForemanDiscovery::NodeAPI::Inventory.new(:url => proxy_url).facter
|
|
170
170
|
self.class.import_host facts
|
|
171
171
|
import_facts facts
|
|
172
|
-
rescue
|
|
173
|
-
|
|
172
|
+
rescue => e
|
|
173
|
+
::Foreman::Logging.exception("Unable to get facts from proxy", e)
|
|
174
|
+
raise ::Foreman::WrappedException.new(e, N_("Could not get facts from proxy %{url}: %{error}"), :url => proxy_url, :error => e)
|
|
174
175
|
end
|
|
175
176
|
|
|
176
177
|
def reboot legacy_api = ForemanDiscovery::HostConverter.legacy_host(self)
|
|
@@ -32,7 +32,8 @@ module Host::ManagedExtensions
|
|
|
32
32
|
# continue. If flash is implemented for new hosts (http://projects.theforeman.org/issues/10559)
|
|
33
33
|
# we can report the error to the user perhaps.
|
|
34
34
|
true
|
|
35
|
-
rescue ::Foreman::Exception
|
|
35
|
+
rescue ::Foreman::Exception => e
|
|
36
|
+
Foreman::Logging.exception("Unable to reboot", e)
|
|
36
37
|
true
|
|
37
38
|
end
|
|
38
39
|
|
|
@@ -44,11 +45,15 @@ module Host::ManagedExtensions
|
|
|
44
45
|
template = provisioning_template(:kind => 'kexec')
|
|
45
46
|
raise ::Foreman::Exception.new(N_("Kexec template not associated with operating system")) unless template
|
|
46
47
|
@host = self
|
|
47
|
-
@kexec_kernel, @kexec_initrd = operatingsystem.boot_files_uri(@host.medium, @host.architecture)
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
@kexec_kernel, @kexec_initrd = operatingsystem.boot_files_uri(@host.medium, @host.architecture, @host)
|
|
49
|
+
# try to parse JSON and error out early
|
|
50
|
+
json = JSON.parse(unattended_render(template))
|
|
51
|
+
::Foreman::Exception.new(N_("Kernel kexec URL is invalid: '%s'"), json['kernel']) unless json['kernel'] =~ /\Ahttp.+\Z/
|
|
52
|
+
::Foreman::Exception.new(N_("Init RAM kexec URL is invalid: '%s'"), json['initrd']) unless json['initrd'] =~ /\Ahttp.+\Z/
|
|
53
|
+
old.becomes(Host::Discovered).kexec json.to_s
|
|
50
54
|
true
|
|
51
|
-
rescue ::Foreman::Exception
|
|
55
|
+
rescue ::Foreman::Exception => e
|
|
56
|
+
Foreman::Logging.exception("Unable to kexec", e)
|
|
52
57
|
true
|
|
53
58
|
end
|
|
54
59
|
|
|
@@ -5,9 +5,7 @@ class ForemanDiscovery::HostConverter
|
|
|
5
5
|
# Creates shallow copy.
|
|
6
6
|
def self.to_managed(original_host, set_managed = true, set_build = true, added_attributes = {})
|
|
7
7
|
host = original_host.becomes(::Host::Managed)
|
|
8
|
-
host.clear_association_cache
|
|
9
8
|
host.type = 'Host::Managed'
|
|
10
|
-
|
|
11
9
|
host.attributes = host.apply_inherited_attributes(added_attributes)
|
|
12
10
|
host.set_hostgroup_defaults if host.hostgroup_id.present?
|
|
13
11
|
|
|
@@ -8,3 +8,15 @@ attribute :max_count => :hosts_limit
|
|
|
8
8
|
child :hosts do
|
|
9
9
|
extends "api/v2/discovered_hosts/base"
|
|
10
10
|
end
|
|
11
|
+
|
|
12
|
+
if SETTINGS[:organizations_enabled]
|
|
13
|
+
child :organizations => :organizations do
|
|
14
|
+
attributes :id, :name
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
if SETTINGS[:locations_enabled]
|
|
19
|
+
child :locations => :locations do
|
|
20
|
+
attributes :id, :name
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
</div>
|
|
22
22
|
<div class="modal-footer">
|
|
23
23
|
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
|
24
|
-
<input type="submit" class="btn btn-default" value="<%= _('Quick
|
|
25
|
-
<input type="submit" class="btn btn-primary" value="<%= _('Create
|
|
24
|
+
<input type="submit" class="btn btn-default" value="<%= _('Quick Create') %>" name="quick_submit" />
|
|
25
|
+
<input type="submit" class="btn btn-primary" value="<%= _('Create Host') %>" />
|
|
26
26
|
</div>
|
|
27
27
|
<% end %>
|
|
28
28
|
</div>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
<%= javascript "
|
|
2
|
-
<% title _('Discovered
|
|
1
|
+
<%= javascript "host_checkbox" %>
|
|
2
|
+
<% title _('Discovered Hosts') %>
|
|
3
3
|
<table class="table table-bordered table-striped table-condensed" >
|
|
4
4
|
<tr>
|
|
5
5
|
<th class="ca"><%= check_box_tag "check_all", "", false, { :onclick => "toggleCheck()", :'check-title' => _("Select all items in this page"), :'uncheck-title'=> _("items selected. Uncheck to Clear") } %></th>
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
<th class="hidden-tablet hidden-xs"><%= sort :ip, :as => _('IP Address') %></th>
|
|
9
9
|
<th class="hidden-tablet hidden-xs"><%= sort :cpu_count, :as => _('CPUs') %></th>
|
|
10
10
|
<th class="hidden-tablet hidden-xs"><%= sort :memory, :as => _('Memory') %></th>
|
|
11
|
-
<th class="hidden-tablet hidden-xs"><%= sort :disk_count, :as => _('Disk
|
|
12
|
-
<th class="hidden-tablet hidden-xs"><%= sort :disks_size, :as => _('Disks
|
|
11
|
+
<th class="hidden-tablet hidden-xs"><%= sort :disk_count, :as => _('Disk Count') %></th>
|
|
12
|
+
<th class="hidden-tablet hidden-xs"><%= sort :disks_size, :as => _('Disks Size') %></th>
|
|
13
13
|
<% Setting::Discovered.discovery_fact_column_array.each do |fact_column| %>
|
|
14
14
|
<th class="hidden-tablet hidden-xs"><%= fact_column.capitalize %></th>
|
|
15
15
|
<% end %>
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
<th class="hidden-tablet hidden-xs"><%= sort :organization, :as => _('Organization') %></th>
|
|
21
21
|
<% end -%>
|
|
22
22
|
<th class="hidden-tablet hidden-xs"><%= sort :subnet, :as => _("Subnet") %></th>
|
|
23
|
-
<th class="hidden-tablet hidden-xs"><%= sort :last_report, :as => _("Last
|
|
23
|
+
<th class="hidden-tablet hidden-xs"><%= sort :last_report, :as => _("Last Facts Upload") %></th>
|
|
24
24
|
<th></th>
|
|
25
25
|
</tr>
|
|
26
26
|
<% @hosts.each do |host| -%>
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
<%= text_f f, :hostname,
|
|
24
24
|
:label_help => render('discovery_rules/template_inline').html_safe,
|
|
25
25
|
:label_help_options => {:title => _("Hostname for provisioned hosts"), :'data-placement' => 'bottom' } %>
|
|
26
|
-
<%= number_f f, :max_count, :label => _('Hosts
|
|
26
|
+
<%= number_f f, :max_count, :label => _('Hosts Limit'), :help_inline => _('Maximum hosts provisioned with this rule (0 = unlimited)'), :min => 0, :max => (2**31 - 1) %>
|
|
27
27
|
<%= number_f f, :priority, :help_inline => _('Rule priority (lower integer means higher priority)'), :min => 0, :max => (2**31 - 1) %>
|
|
28
28
|
<%= checkbox_f f, :enabled %>
|
|
29
29
|
</div>
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
<th><%= sort :name, :as => s_("DiscoveryRule|Name") %></th>
|
|
7
7
|
<th><%= sort :priority, :as => s_("DiscoveryRule|Priority") %></th>
|
|
8
8
|
<th><%= sort :search, :as => s_("DiscoveryRule|Query") %></th>
|
|
9
|
-
<th><%= _("Host
|
|
10
|
-
<th><%= _("Hosts/
|
|
9
|
+
<th><%= _("Host Group") %></th>
|
|
10
|
+
<th><%= _("Hosts/Limit") %></th>
|
|
11
11
|
<th><%= sort :enabled, :as => s_("DiscoveryRule|Enabled") %></th>
|
|
12
12
|
<th></th>
|
|
13
13
|
</tr>
|
|
@@ -31,6 +31,7 @@ Please read kexec(8) man page for more information about semantics.
|
|
|
31
31
|
options << "locale=#{@host.params['lang'] || 'en_US'}"
|
|
32
32
|
-%>
|
|
33
33
|
{
|
|
34
|
+
"comment": "WARNING: Both kernel and initram are not set in preview mode due to http://projects.theforeman.org/issues/19737",
|
|
34
35
|
"kernel": "<%= @kexec_kernel %>",
|
|
35
36
|
"initram": "<%= @kexec_initrd %>",
|
|
36
37
|
"append": "url=<%= foreman_url('provision') + "&static=yes" %> interface=<%= mac %> netcfg/get_ipaddress=<%= ip %> netcfg/get_netmask=<%= mask %> netcfg/get_gateway=<%= gw %> netcfg/get_nameservers=<%= dns %> netcfg/disable_dhcp=true netcfg/get_hostname=<%= @host.name %> BOOTIF=<%= bootif %> <%= options.join(' ') %>",
|
|
@@ -37,6 +37,7 @@ Please read kexec(8) man page for more information about semantics.
|
|
|
37
37
|
append = @host.facts['append']
|
|
38
38
|
-%>
|
|
39
39
|
{
|
|
40
|
+
"comment": "WARNING: Both kernel and initram are not set in preview mode due to http://projects.theforeman.org/issues/19737",
|
|
40
41
|
"kernel": "<%= @kexec_kernel %>",
|
|
41
42
|
"initram": "<%= @kexec_initrd %>",
|
|
42
43
|
<% if (@host.operatingsystem.name == 'Fedora' and @host.operatingsystem.major.to_i > 16) or
|
data/config/routes.rb
CHANGED
|
@@ -14,11 +14,11 @@ Rails.application.routes.draw do
|
|
|
14
14
|
post 'auto_provision'
|
|
15
15
|
end
|
|
16
16
|
collection do
|
|
17
|
-
|
|
17
|
+
post 'multiple_destroy'
|
|
18
18
|
post 'submit_multiple_destroy'
|
|
19
|
-
|
|
19
|
+
post 'select_multiple_organization'
|
|
20
20
|
post 'update_multiple_organization'
|
|
21
|
-
|
|
21
|
+
post 'select_multiple_location'
|
|
22
22
|
post 'update_multiple_location'
|
|
23
23
|
get 'auto_complete_search'
|
|
24
24
|
post 'auto_provision_all'
|
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
class AddPermissionsFromDefaultRoles < ActiveRecord::Migration
|
|
2
2
|
def up
|
|
3
|
-
|
|
4
|
-
["Discovery Reader", "Discovery Manager"].each do |role_name|
|
|
5
|
-
role = Role.find_by_name(role_name) || next
|
|
6
|
-
default_permissions[role_name].each do |permission|
|
|
7
|
-
role.add_permissions!(permission) unless role.permission_names.include?(permission.to_sym)
|
|
8
|
-
end
|
|
9
|
-
end
|
|
3
|
+
# Moved to seeds see http://projects.theforeman.org/issues/17585
|
|
10
4
|
end
|
|
11
5
|
|
|
12
6
|
def down
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
kind = TemplateKind.where(:name => 'kexec').first_or_create
|
|
1
|
+
kind = TemplateKind.unscoped.where(:name => 'kexec').first_or_create
|
|
2
2
|
|
|
3
3
|
ProvisioningTemplate.without_auditing do
|
|
4
4
|
[['redhat_kexec.erb', 'Red Hat'], ['debian_kexec.erb', 'Debian']].each do |tmpl_names|
|
|
5
5
|
content = File.read(File.join(ForemanDiscovery::Engine.root, 'app', 'views', 'foreman_discovery', tmpl_names[0]))
|
|
6
|
-
tmpl = ProvisioningTemplate.where(:name => "Discovery #{tmpl_names[1]} kexec").first_or_create(
|
|
6
|
+
tmpl = ProvisioningTemplate.unscoped.where(:name => "Discovery #{tmpl_names[1]} kexec").first_or_create(
|
|
7
7
|
:template_kind_id => kind.id,
|
|
8
8
|
:snippet => false,
|
|
9
9
|
:template => content
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
f = Feature.where(:name => 'Discovery').first_or_create
|
|
2
|
-
raise "Unable to create proxy feature: #{format_errors f}" if f.nil? || f.errors.any?
|
|
1
|
+
f = Feature.unscoped.where(:name => 'Discovery').first_or_create
|
|
2
|
+
raise "Unable to create proxy feature: #{format_errors f}" if f.nil? || f.errors.any?
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
default_permissions = Foreman::Plugin.find("foreman_discovery").default_roles
|
|
2
|
+
|
|
3
|
+
["Discovery Reader", "Discovery Manager"].each do |role_name|
|
|
4
|
+
role = Role.find_by_name(role_name) || next
|
|
5
|
+
default_permissions[role_name].each do |permission|
|
|
6
|
+
role.add_permissions!(permission) unless role.permission_names.include?(permission.to_sym)
|
|
7
|
+
end
|
|
8
|
+
role.ignore_locking do |r|
|
|
9
|
+
r.update_attributes :origin => "discovery", :description => "Discovery plugin built-in role"
|
|
10
|
+
end
|
|
11
|
+
role.save!
|
|
12
|
+
end
|
|
@@ -164,10 +164,12 @@ module ForemanDiscovery
|
|
|
164
164
|
# add dashboard widget
|
|
165
165
|
widget 'discovery_widget', :name=>N_('Discovered Hosts'), :sizex => 6, :sizey =>1
|
|
166
166
|
|
|
167
|
-
#
|
|
167
|
+
# allowed helpers and variables
|
|
168
168
|
allowed_template_helpers :rand
|
|
169
169
|
allowed_template_variables :kexec_kernel, :kexec_initrd
|
|
170
170
|
|
|
171
|
+
template_labels 'kexec' => N_('Discovery Kexec template')
|
|
172
|
+
|
|
171
173
|
# apipie API documentation
|
|
172
174
|
# Only available in 1.8, otherwise it has to be in the initializer below
|
|
173
175
|
apipie_documented_controllers ["#{ForemanDiscovery::Engine.root}/app/controllers/api/v2/*.rb"]
|
|
@@ -200,7 +202,6 @@ module ForemanDiscovery
|
|
|
200
202
|
# Model extensions
|
|
201
203
|
::Host::Managed.send :include, Host::ManagedExtensions
|
|
202
204
|
::Hostgroup.send :include, HostgroupExtensions
|
|
203
|
-
::FactValue.send :include, FactValueExtensions
|
|
204
205
|
::Nic::Managed.send :include, Nic::ManagedExtensions
|
|
205
206
|
|
|
206
207
|
# Controller extensions
|
|
Binary file
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
# Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>, 2015-2016
|
|
7
7
|
msgid ""
|
|
8
8
|
msgstr ""
|
|
9
|
-
"Project-Id-Version: foreman_discovery
|
|
9
|
+
"Project-Id-Version: foreman_discovery 9.0.0\n"
|
|
10
10
|
"Report-Msgid-Bugs-To: \n"
|
|
11
|
-
"POT-Creation-Date: 2017-
|
|
12
|
-
"PO-Revision-Date: 2017-
|
|
11
|
+
"POT-Creation-Date: 2017-04-07 13:02+0200\n"
|
|
12
|
+
"PO-Revision-Date: 2017-04-08 10:07+0000\n"
|
|
13
13
|
"Last-Translator: Lukáš Zapletal\n"
|
|
14
14
|
"Language-Team: Catalan (http://www.transifex.com/foreman/foreman/language/ca/)\n"
|
|
15
15
|
"MIME-Version: 1.0\n"
|
|
@@ -366,6 +366,7 @@ msgid "%s - The following hosts are about to be changed"
|
|
|
366
366
|
msgstr "%s - Els següents amfitrions estan a punt de ser canviats"
|
|
367
367
|
|
|
368
368
|
#: ../app/helpers/discovered_hosts_helper.rb:49
|
|
369
|
+
#: ../app/views/dashboard/_discovery_widget_host.html.erb:2
|
|
369
370
|
msgid "N/A"
|
|
370
371
|
msgstr "N/D"
|
|
371
372
|
|
|
@@ -386,7 +387,7 @@ msgid "Provision"
|
|
|
386
387
|
msgstr "Aprovisiona"
|
|
387
388
|
|
|
388
389
|
#: ../app/helpers/discovery_rules_helper.rb:26
|
|
389
|
-
#: ../lib/foreman_discovery/engine.rb:
|
|
390
|
+
#: ../lib/foreman_discovery/engine.rb:165
|
|
390
391
|
msgid "Discovered Hosts"
|
|
391
392
|
msgstr ""
|
|
392
393
|
|
|
@@ -445,43 +446,43 @@ msgid_plural ""
|
|
|
445
446
|
msgstr[0] ""
|
|
446
447
|
msgstr[1] ""
|
|
447
448
|
|
|
448
|
-
#: ../app/models/host/discovered.rb:
|
|
449
|
+
#: ../app/models/host/discovered.rb:37
|
|
449
450
|
msgid "Invalid facts, must be a Hash"
|
|
450
451
|
msgstr "Objectes d'interès no vàlids, han de tenir un Hash"
|
|
451
452
|
|
|
452
|
-
#: ../app/models/host/discovered.rb:
|
|
453
|
+
#: ../app/models/host/discovered.rb:42
|
|
453
454
|
msgid ""
|
|
454
455
|
"Expected discovery_fact '%s' is missing, unable to detect primary interface "
|
|
455
456
|
"and set hostname"
|
|
456
457
|
msgstr ""
|
|
457
458
|
|
|
458
|
-
#: ../app/models/host/discovered.rb:
|
|
459
|
+
#: ../app/models/host/discovered.rb:49
|
|
459
460
|
msgid ""
|
|
460
461
|
"Invalid facts: hash does not contain a valid value for any of the facts in "
|
|
461
462
|
"the discovery_hostname setting: %s"
|
|
462
463
|
msgstr ""
|
|
463
464
|
|
|
464
|
-
#: ../app/models/host/discovered.rb:
|
|
465
|
+
#: ../app/models/host/discovered.rb:66
|
|
465
466
|
msgid "Facts could not be imported"
|
|
466
467
|
msgstr ""
|
|
467
468
|
|
|
468
|
-
#: ../app/models/host/discovered.rb:
|
|
469
|
+
#: ../app/models/host/discovered.rb:116
|
|
469
470
|
msgid "Unable to assign subnet, primary interface is missing IP address"
|
|
470
471
|
msgstr ""
|
|
471
472
|
|
|
472
|
-
#: ../app/models/host/discovered.rb:
|
|
473
|
+
#: ../app/models/host/discovered.rb:173
|
|
473
474
|
msgid "Could not get facts from proxy %{url}: %{error}"
|
|
474
475
|
msgstr "No s'han pogut obtenir els objectes d'interès del servidor intermediari %{url}: %{error}"
|
|
475
476
|
|
|
476
|
-
#: ../app/models/host/discovered.rb:
|
|
477
|
+
#: ../app/models/host/discovered.rb:189
|
|
477
478
|
msgid "Unable to reboot %{name} via %{url}: %{msg}"
|
|
478
479
|
msgstr "No es pot reiniciar %{name} a través de %{url}: %{msg}"
|
|
479
480
|
|
|
480
|
-
#: ../app/models/host/discovered.rb:
|
|
481
|
+
#: ../app/models/host/discovered.rb:197
|
|
481
482
|
msgid "Unable to perform kexec on %{name} via %{url}: %{msg}"
|
|
482
483
|
msgstr "No es pot realitzar kexec a %{name} a través de %{url}: %{msg}"
|
|
483
484
|
|
|
484
|
-
#: ../app/models/host/discovered.rb:
|
|
485
|
+
#: ../app/models/host/discovered.rb:216
|
|
485
486
|
msgid "Invalid hostname: Could not normalize the hostname"
|
|
486
487
|
msgstr ""
|
|
487
488
|
|
|
@@ -718,7 +719,7 @@ msgid "Create host"
|
|
|
718
719
|
msgstr ""
|
|
719
720
|
|
|
720
721
|
#: ../app/views/discovered_hosts/_discovered_hosts_list.html.erb:2
|
|
721
|
-
#: ../lib/foreman_discovery/engine.rb:
|
|
722
|
+
#: ../lib/foreman_discovery/engine.rb:150
|
|
722
723
|
msgid "Discovered hosts"
|
|
723
724
|
msgstr "Amfitrions descoberts"
|
|
724
725
|
|
|
@@ -881,23 +882,19 @@ msgstr "Organitzacions"
|
|
|
881
882
|
msgid "Target host group for this rule with all properties set"
|
|
882
883
|
msgstr ""
|
|
883
884
|
|
|
884
|
-
#: ../app/views/discovery_rules/_form.html.erb:
|
|
885
|
-
msgid "Template"
|
|
886
|
-
msgstr "Plantilla"
|
|
887
|
-
|
|
888
|
-
#: ../app/views/discovery_rules/_form.html.erb:26
|
|
885
|
+
#: ../app/views/discovery_rules/_form.html.erb:25
|
|
889
886
|
msgid "Hostname for provisioned hosts"
|
|
890
887
|
msgstr "Nom d'amfitrió per als amfitrions aprovisionats"
|
|
891
888
|
|
|
892
|
-
#: ../app/views/discovery_rules/_form.html.erb:
|
|
889
|
+
#: ../app/views/discovery_rules/_form.html.erb:26
|
|
893
890
|
msgid "Hosts limit"
|
|
894
891
|
msgstr "Límit d'amfitrions"
|
|
895
892
|
|
|
896
|
-
#: ../app/views/discovery_rules/_form.html.erb:
|
|
893
|
+
#: ../app/views/discovery_rules/_form.html.erb:26
|
|
897
894
|
msgid "Maximum hosts provisioned with this rule (0 = unlimited)"
|
|
898
895
|
msgstr "Nombre màxim d'amfitrions aprovisionats amb aquesta regla (0 = il·limitat)"
|
|
899
896
|
|
|
900
|
-
#: ../app/views/discovery_rules/_form.html.erb:
|
|
897
|
+
#: ../app/views/discovery_rules/_form.html.erb:27
|
|
901
898
|
msgid "Rule priority (lower integer means higher priority)"
|
|
902
899
|
msgstr ""
|
|
903
900
|
|
|
@@ -940,8 +937,8 @@ msgid "Discovery Rules"
|
|
|
940
937
|
msgstr "Regles de descobriment"
|
|
941
938
|
|
|
942
939
|
#: ../app/views/discovery_rules/index.html.erb:2
|
|
943
|
-
msgid "
|
|
944
|
-
msgstr "
|
|
940
|
+
msgid "Create Rule"
|
|
941
|
+
msgstr ""
|
|
945
942
|
|
|
946
943
|
#: ../app/views/discovery_rules/index.html.erb:6
|
|
947
944
|
msgid "DiscoveryRule|Name"
|
|
@@ -975,21 +972,33 @@ msgstr "Nova regla de descobriment"
|
|
|
975
972
|
msgid "A summary of discovered hosts"
|
|
976
973
|
msgstr ""
|
|
977
974
|
|
|
978
|
-
#: ../
|
|
975
|
+
#: ../db/seeds.d/80_discovery_ui_notification.rb:4
|
|
976
|
+
msgid "Hosts"
|
|
977
|
+
msgstr ""
|
|
978
|
+
|
|
979
|
+
#: ../db/seeds.d/80_discovery_ui_notification.rb:6
|
|
980
|
+
msgid "One or more hosts have been discovered"
|
|
981
|
+
msgstr ""
|
|
982
|
+
|
|
983
|
+
#: ../db/seeds.d/80_discovery_ui_notification.rb:13
|
|
984
|
+
msgid "Details"
|
|
985
|
+
msgstr ""
|
|
986
|
+
|
|
987
|
+
#: ../lib/foreman_discovery/engine.rb:155
|
|
979
988
|
msgid "Discovery rules"
|
|
980
989
|
msgstr "Regles de descobriment"
|
|
981
990
|
|
|
982
|
-
#: ../lib/foreman_discovery/engine.rb:
|
|
991
|
+
#: ../lib/foreman_discovery/engine.rb:178
|
|
983
992
|
msgid "Discovery Proxy"
|
|
984
993
|
msgstr ""
|
|
985
994
|
|
|
986
|
-
#: ../lib/foreman_discovery/engine.rb:
|
|
995
|
+
#: ../lib/foreman_discovery/engine.rb:179
|
|
987
996
|
msgid ""
|
|
988
997
|
"Discovery Proxy to use within this subnet for managing connection to "
|
|
989
998
|
"discovered hosts"
|
|
990
999
|
msgstr ""
|
|
991
1000
|
|
|
992
|
-
#: ../lib/foreman_discovery/engine.rb:
|
|
1001
|
+
#: ../lib/foreman_discovery/engine.rb:180
|
|
993
1002
|
msgid ""
|
|
994
1003
|
"ID of Discovery Proxy to use within this subnet for managing connection to "
|
|
995
1004
|
"discovered hosts"
|