foreman_discovery 1.3.0 → 1.4.0.rc1
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 +8 -8
- data/README.md +17 -2
- data/app/controllers/api/v2/discovered_hosts_controller.rb +20 -14
- data/app/controllers/discovered_hosts_controller.rb +4 -2
- data/app/models/host/discovered.rb +12 -7
- data/app/views/dashboard/_discovery_widget.html.erb +16 -0
- data/config/routes.rb +1 -1
- data/lib/foreman_discovery/engine.rb +35 -14
- data/lib/foreman_discovery/version.rb +1 -1
- data/locale/Makefile +62 -0
- data/locale/de/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/de/foreman_discovery.po +70 -26
- data/locale/en_GB/LC_MESSAGES/discovery.mo +0 -0
- data/locale/en_GB/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/en_GB/foreman_discovery.po +51 -8
- data/locale/es/LC_MESSAGES/discovery.mo +0 -0
- data/locale/es/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/es/foreman_discovery.po +53 -9
- data/locale/foreman_discovery.pot +58 -5
- data/locale/fr/LC_MESSAGES/discovery.mo +0 -0
- data/locale/fr/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/fr/foreman_discovery.po +50 -6
- data/locale/gl/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/gl/foreman_discovery.po +217 -0
- data/locale/pt_BR/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/pt_BR/foreman_discovery.po +219 -0
- data/locale/sv_SE/LC_MESSAGES/discovery.mo +0 -0
- data/locale/sv_SE/LC_MESSAGES/foreman_discovery.mo +0 -0
- data/locale/sv_SE/foreman_discovery.po +47 -4
- metadata +15 -19
- data/app/overrides/add_dashboard_table.rb +0 -16
checksums.yaml
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
!binary "U0hBMQ==":
|
|
3
3
|
metadata.gz: !binary |-
|
|
4
|
-
|
|
4
|
+
OGNmNzE1ODY2NjM0ZWZmMmI0MzljNDI5NzkxZDllZDAxOTI5NzE3Zg==
|
|
5
5
|
data.tar.gz: !binary |-
|
|
6
|
-
|
|
6
|
+
MDk2NTBhMjNhYWU5NWI0ZDhhMzRlYWU1NDVmMjdhN2RiMDI5ZjVmOQ==
|
|
7
7
|
SHA512:
|
|
8
8
|
metadata.gz: !binary |-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
ZjA4NTZmNjczZjBiODExN2Q1ZDcyYjA1ODg5NmJjZjY4NDlkYWUyYzUwY2I4
|
|
10
|
+
ZTU2Yzc5ZGQzNWY3MzBlNGI5ZmU3ODY1ZThmZTI1MDg4YThmZDgzY2E1MTgy
|
|
11
|
+
ODc2ZmVhZjhkOWQxMDAzYzc2YjQ4NzllNGE5NzFkYzgzNzQ3YmI=
|
|
12
12
|
data.tar.gz: !binary |-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
MDMyNGQwYmJlYmZlODU0YWRjNzlkYjQ1YzFhMjE0ZTY4MDI0YjkxYWM1NmY0
|
|
14
|
+
OTRiMmM2NmJmNTYyY2M5MjA2ZjMyMDhiOTFkY2E0MDRiN2UwYzhmNjM5ZmIw
|
|
15
|
+
ZTA4NTQ4ZjE2ZTg3NWVlODU1Y2Q3NjRhNDZkNGNlYzE2YjcxMWI=
|
data/README.md
CHANGED
|
@@ -66,7 +66,7 @@ Discovery output. For a login prompt (nightly images only) use tty2.
|
|
|
66
66
|
|
|
67
67
|
### Download via installer
|
|
68
68
|
|
|
69
|
-
As of Foreman 1.
|
|
69
|
+
As of Foreman 1.6, the foreman-installer is able to automatically download
|
|
70
70
|
latest stable CentOS6 images. For this, re-run the installer with the
|
|
71
71
|
following option:
|
|
72
72
|
|
|
@@ -145,7 +145,12 @@ This can still be overriden with the command line opts.
|
|
|
145
145
|
|
|
146
146
|
It is important to have *IPAPPEND 2* option which adds BOOTIF=MAC option which
|
|
147
147
|
is then reported via facter as `discovery_bootif` which is key fact which is
|
|
148
|
-
used for provisioning.
|
|
148
|
+
used for provisioning. Without this line, DNS will not work properly as well.
|
|
149
|
+
|
|
150
|
+
It is important to know that DNS servers from DHCP are enabled only for the
|
|
151
|
+
interface that was specified via the BOOTIF option. This means when a system
|
|
152
|
+
have multiple NICs, DNS will work for the correct interface - the one that was
|
|
153
|
+
booted from.
|
|
149
154
|
|
|
150
155
|
_Warning_: For now, the selinux=0 option *must* be provided, the image is read
|
|
151
156
|
only anyway but we plan to enable and test with SELinux too.
|
|
@@ -212,6 +217,16 @@ If the booted machine fails to register with Foreman, then there are a number of
|
|
|
212
217
|
* Check DNS is working for that image, or use an IP in `foreman.url`
|
|
213
218
|
* Check DHCP is handing IPs to the booted image correctly
|
|
214
219
|
|
|
220
|
+
When working with production images (no root password set), it is still
|
|
221
|
+
possible to log on as root. Generate some root password:
|
|
222
|
+
|
|
223
|
+
$ openssl passwd -salt RH redhat
|
|
224
|
+
RHhwCLrQXB8zE
|
|
225
|
+
|
|
226
|
+
And then provide it as an kernel command line option:
|
|
227
|
+
|
|
228
|
+
... stateless rootpw=RHhwCLrQXB8zE
|
|
229
|
+
|
|
215
230
|
# API
|
|
216
231
|
|
|
217
232
|
see the [API README](README.api.md)
|
|
@@ -5,17 +5,23 @@ module Api
|
|
|
5
5
|
before_filter :find_resource, :except => %w{index create facts}
|
|
6
6
|
skip_before_filter :authorize, :only => :facts
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
resource_description do
|
|
9
|
+
resource_id 'discovered_hosts'
|
|
10
|
+
api_version 'v2'
|
|
11
|
+
api_base_url "/api/v2"
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
api :GET, "/discovered_hosts/", N_("List all discovered hosts")
|
|
15
|
+
param :search, String, :desc => N_("filter results")
|
|
16
|
+
param :order, String, :desc => N_("sort results")
|
|
17
|
+
param :page, String, :desc => N_("paginate results")
|
|
18
|
+
param :per_page, String, :desc => N_("number of entries per request")
|
|
13
19
|
|
|
14
20
|
def index
|
|
15
21
|
@discovered_hosts = resource_scope.search_for(*search_options).paginate(paginate_options)
|
|
16
22
|
end
|
|
17
23
|
|
|
18
|
-
api :GET, "/discovered_hosts/:id/", "Show a discovered host"
|
|
24
|
+
api :GET, "/discovered_hosts/:id/", N_("Show a discovered host")
|
|
19
25
|
param :id, :identifier_dottable, :required => true
|
|
20
26
|
|
|
21
27
|
def show
|
|
@@ -29,7 +35,7 @@ module Api
|
|
|
29
35
|
end
|
|
30
36
|
end
|
|
31
37
|
|
|
32
|
-
api :POST, "/discovered_hosts/", "Create a discovered host"
|
|
38
|
+
api :POST, "/discovered_hosts/", N_("Create a discovered host")
|
|
33
39
|
param_group :discovered_host, :as => :create
|
|
34
40
|
|
|
35
41
|
def create
|
|
@@ -37,13 +43,13 @@ module Api
|
|
|
37
43
|
process_response @discovered_host.save
|
|
38
44
|
end
|
|
39
45
|
|
|
40
|
-
api :PUT, "/discovered_hosts/:id/", "Provision a discovered host"
|
|
46
|
+
api :PUT, "/discovered_hosts/:id/", N_("Provision a discovered host")
|
|
41
47
|
param :id, :identifier, :required => true
|
|
42
48
|
param :discovered_host, Hash, :action_aware => true do
|
|
43
49
|
param :name, String
|
|
44
50
|
param :environment_id, String
|
|
45
|
-
param :ip, String, :desc => "not required if using a subnet with
|
|
46
|
-
param :mac, String, :desc => "not required if
|
|
51
|
+
param :ip, String, :desc => N_("not required if using a subnet with DHCP proxy")
|
|
52
|
+
param :mac, String, :desc => N_("not required if it's a virtual machine")
|
|
47
53
|
param :architecture_id, :number
|
|
48
54
|
param :domain_id, :number
|
|
49
55
|
param :puppet_proxy_id, :number
|
|
@@ -63,7 +69,7 @@ module Api
|
|
|
63
69
|
param :enabled, :bool
|
|
64
70
|
param :provision_method, String
|
|
65
71
|
param :managed, :bool
|
|
66
|
-
param :progress_report_id, String, :desc =>
|
|
72
|
+
param :progress_report_id, String, :desc => N_("UUID to track orchestration tasks status, GET /api/orchestration/:UUID/tasks")
|
|
67
73
|
param :capabilities, String
|
|
68
74
|
end
|
|
69
75
|
|
|
@@ -76,15 +82,15 @@ module Api
|
|
|
76
82
|
process_response @host.update_attributes(params[:discovered_host])
|
|
77
83
|
end
|
|
78
84
|
|
|
79
|
-
api :DELETE, "/discovered_hosts/:id/", "Delete a discovered host"
|
|
85
|
+
api :DELETE, "/discovered_hosts/:id/", N_("Delete a discovered host")
|
|
80
86
|
param :id, :identifier, :required => true
|
|
81
87
|
|
|
82
88
|
def destroy
|
|
83
89
|
process_response @discovered_host.destroy
|
|
84
90
|
end
|
|
85
91
|
|
|
86
|
-
api :POST, "/discovered_hosts/facts", "Upload facts for a host, creating the host if required
|
|
87
|
-
param :facts, Hash, :required => true, :desc => "hash containing
|
|
92
|
+
api :POST, "/discovered_hosts/facts", N_("Upload facts for a host, creating the host if required")
|
|
93
|
+
param :facts, Hash, :required => true, :desc => N_("hash containing facts for the host")
|
|
88
94
|
|
|
89
95
|
def facts
|
|
90
96
|
@discovered_host, state = Host::Discovered.import_host_and_facts(params[:facts])
|
|
@@ -15,9 +15,11 @@ class DiscoveredHostsController < ::ApplicationController
|
|
|
15
15
|
layout 'layouts/application'
|
|
16
16
|
|
|
17
17
|
def index
|
|
18
|
-
|
|
18
|
+
search = resource_base.search_for(params[:search], :order => params[:order])
|
|
19
19
|
respond_to do |format|
|
|
20
|
-
format.html
|
|
20
|
+
format.html do
|
|
21
|
+
@hosts = search.paginate(:page => params[:page])
|
|
22
|
+
end
|
|
21
23
|
format.json { render :json => hosts }
|
|
22
24
|
end
|
|
23
25
|
end
|
|
@@ -20,16 +20,21 @@ class Host::Discovered < ::Host::Base
|
|
|
20
20
|
scoped_search :in => :organization, :on => :name, :rename => :organization, :complete_value => true if SETTINGS[:organizations_enabled]
|
|
21
21
|
scoped_search :in => :subnet, :on => :network, :complete_value => true, :rename => :subnet
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
default_scope lambda {
|
|
24
|
+
org = Organization.current
|
|
25
|
+
loc = Location.current
|
|
26
|
+
conditions = {}
|
|
27
|
+
conditions[:organization_id] = org.subtree_ids if org
|
|
28
|
+
conditions[:location_id] = loc.subtree_ids if loc
|
|
29
|
+
where(conditions)
|
|
30
|
+
}
|
|
27
31
|
|
|
28
32
|
def self.import_host_and_facts facts
|
|
29
33
|
raise(::Foreman::Exception.new(N_("Invalid facts, must be a Hash"))) unless facts.is_a?(Hash)
|
|
30
34
|
fact_name = Setting[:discovery_fact] || 'macaddress'
|
|
31
|
-
hostname
|
|
35
|
+
hostname = facts[fact_name].try(:downcase).try(:gsub,/:/,'').try(:sub,/^/,'mac')
|
|
32
36
|
raise(::Foreman::Exception.new(N_("Invalid facts: hash does not contain the required fact '%s'"), fact_name)) unless hostname
|
|
37
|
+
raise(::Foreman::Exception.new(N_("Invalid facts: hash does not contain IP address"))) unless facts['ipaddress']
|
|
33
38
|
|
|
34
39
|
# filter facts
|
|
35
40
|
facts.reject!{|k,v| k =~ /kernel|operatingsystem|osfamily|ruby|path|time|swap|free|filesystem/i }
|
|
@@ -70,13 +75,13 @@ class Host::Discovered < ::Host::Base
|
|
|
70
75
|
super + [:ip]
|
|
71
76
|
end
|
|
72
77
|
|
|
73
|
-
def populate_fields_from_facts facts = self.facts_hash
|
|
78
|
+
def populate_fields_from_facts facts = self.facts_hash, type = 'puppet'
|
|
74
79
|
importer = super
|
|
75
80
|
self.subnet = Subnet.subnet_for(importer.ip)
|
|
76
81
|
self.save
|
|
77
82
|
end
|
|
78
83
|
|
|
79
|
-
# no need to store anything in the db if the password is our default
|
|
84
|
+
# no need to store anything in the db if the password is our default
|
|
80
85
|
def root_pass
|
|
81
86
|
read_attribute(:root_pass).blank? ? (hostgroup.try(:root_pass) || Setting[:root_pass]) : read_attribute(:root_pass)
|
|
82
87
|
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<h4 class="ca"><%= _('Discovered Host Pool') %> - <%= @current_permission %></h4>
|
|
2
|
+
<% all_hosts = Host::Discovered.search_for '' %>
|
|
3
|
+
<% hosts = all_hosts.limit(5) %>
|
|
4
|
+
<% if hosts.empty? %>
|
|
5
|
+
<p class="ca"><%= _("No discovered hosts available") %></p>
|
|
6
|
+
<% else %>
|
|
7
|
+
<table class="table table-striped ellipsis">
|
|
8
|
+
<% hosts.each do |host| %>
|
|
9
|
+
<tr>
|
|
10
|
+
<td><%= link_to h(host.name), discovered_host_path(host) %></td>
|
|
11
|
+
<td><%= host.ip %></td>
|
|
12
|
+
</tr>
|
|
13
|
+
<% end %>
|
|
14
|
+
</table>
|
|
15
|
+
<p class="ca"><%= link_to n_("Total pool size","Total pool size", all_hosts.size), discovered_hosts_path %> - <%= all_hosts.size %> </p>
|
|
16
|
+
<% end %>
|
data/config/routes.rb
CHANGED
|
@@ -26,7 +26,7 @@ Rails.application.routes.draw do
|
|
|
26
26
|
## API
|
|
27
27
|
namespace :api, :defaults => {:format => 'json'} do
|
|
28
28
|
scope "(:apiv)", :module => :v2, :defaults => {:apiv => 'v2'}, :apiv => /v1|v2/, :constraints => ApiConstraints.new(:version => 2) do
|
|
29
|
-
resources :discovered_hosts do
|
|
29
|
+
resources :discovered_hosts, :except => [:new, :edit] do
|
|
30
30
|
collection do
|
|
31
31
|
post 'facts'
|
|
32
32
|
end
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
require 'deface'
|
|
2
1
|
require 'fast_gettext'
|
|
3
2
|
require 'gettext_i18n_rails'
|
|
4
3
|
|
|
@@ -19,25 +18,36 @@ module ForemanDiscovery
|
|
|
19
18
|
|
|
20
19
|
initializer 'foreman_discovery.register_gettext', :after => :load_config_initializers do |app|
|
|
21
20
|
locale_dir = File.join(File.expand_path('../../..', __FILE__), 'locale')
|
|
22
|
-
locale_domain = '
|
|
21
|
+
locale_domain = 'foreman_discovery'
|
|
23
22
|
|
|
24
23
|
Foreman::Gettext::Support.add_text_domain locale_domain, locale_dir
|
|
25
24
|
end
|
|
26
25
|
|
|
27
26
|
initializer 'foreman_discovery.register_plugin', :after=> :finisher_hook do |app|
|
|
28
27
|
Foreman::Plugin.register :foreman_discovery do
|
|
29
|
-
requires_foreman '> 1.
|
|
28
|
+
requires_foreman '> 1.5'
|
|
30
29
|
|
|
31
30
|
# Add permissions
|
|
32
31
|
security_block :discovery do
|
|
33
|
-
permission :view_discovered_hosts, {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
32
|
+
permission :view_discovered_hosts, {
|
|
33
|
+
:discovered_hosts => [:index, :show, :auto_complete_search],
|
|
34
|
+
:"api/v2/discovered_hosts" => [:index, :show]
|
|
35
|
+
}, :resource_type => 'Host'
|
|
36
|
+
permission :provision_discovered_hosts, {
|
|
37
|
+
:discovered_hosts => [:new, :create],
|
|
38
|
+
:"api/v2/discovered_hosts" => [:create]
|
|
39
|
+
}, :resource_type => 'Host'
|
|
40
|
+
permission :edit_discovered_hosts, {
|
|
41
|
+
:discovered_hosts => [:edit, :update, :update_multiple_location,
|
|
42
|
+
:select_multiple_organization,
|
|
43
|
+
:update_multiple_organization,
|
|
44
|
+
:select_multiple_location, :refresh_facts],
|
|
45
|
+
:"api/v2/discovered_hosts" => [:update, :facts]
|
|
46
|
+
}, :resource_type => 'Host'
|
|
47
|
+
permission :destroy_discovered_hosts, {
|
|
48
|
+
:discovered_hosts => [:destroy, :submit_multiple_destroy, :multiple_destroy],
|
|
49
|
+
:"api/v2/discovered_hosts" => [:destroy]
|
|
50
|
+
}, :resource_type => 'Host'
|
|
41
51
|
end
|
|
42
52
|
|
|
43
53
|
# Add a new role called 'Discovery' if it doesn't exist
|
|
@@ -45,9 +55,20 @@ module ForemanDiscovery
|
|
|
45
55
|
|
|
46
56
|
#add menu entry
|
|
47
57
|
menu :top_menu, :discovery, :url_hash => {:controller=> :discovered_hosts, :action=>:index},
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
58
|
+
:caption=> N_('Discovered hosts'),
|
|
59
|
+
:parent => :hosts_menu,
|
|
60
|
+
:after=>:hosts
|
|
61
|
+
|
|
62
|
+
# add dashboard widget
|
|
63
|
+
widget 'discovery_widget', :name=>N_('Discovery widget'), :sizex => 4, :sizey =>1
|
|
64
|
+
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
initializer "foreman_discovery.apipie" do
|
|
68
|
+
# this condition is here for compatibility reason to work with Foreman 1.4.x
|
|
69
|
+
if Apipie.configuration.api_controllers_matcher.is_a?(Array) && Apipie.configuration.respond_to?(:checksum_path)
|
|
70
|
+
Apipie.configuration.api_controllers_matcher << "#{ForemanDiscovery::Engine.root}/app/controllers/api/v2/*.rb"
|
|
71
|
+
Apipie.configuration.checksum_path += ['/discovered_hosts/']
|
|
51
72
|
end
|
|
52
73
|
end
|
|
53
74
|
# Include extensions to models in this config.to_prepare block
|
data/locale/Makefile
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Makefile for PO merging and MO generation. More info in the README.
|
|
3
|
+
#
|
|
4
|
+
# make all-mo (default) - generate MO files
|
|
5
|
+
# make check - check translations using translate-tool
|
|
6
|
+
# make tx-update - download and merge translations from Transifex
|
|
7
|
+
# make clean - clean everything
|
|
8
|
+
#
|
|
9
|
+
DOMAIN = foreman_discovery
|
|
10
|
+
VERSION = $(shell ruby -e 'require "rubygems";spec = Gem::Specification::load(Dir.glob("../*.gemspec")[0]);puts spec.version')
|
|
11
|
+
POTFILE = $(DOMAIN).pot
|
|
12
|
+
MOFILE = $(DOMAIN).mo
|
|
13
|
+
POFILES = $(shell find . -name '*.po')
|
|
14
|
+
MOFILES = $(patsubst %.po,%.mo,$(POFILES))
|
|
15
|
+
POXFILES = $(patsubst %.po,%.pox,$(POFILES))
|
|
16
|
+
|
|
17
|
+
%.mo: %.po
|
|
18
|
+
mkdir -p $(shell dirname $@)/LC_MESSAGES
|
|
19
|
+
msgfmt -o $(shell dirname $@)/LC_MESSAGES/$(MOFILE) $<
|
|
20
|
+
|
|
21
|
+
# Generate MO files from PO files
|
|
22
|
+
all-mo: $(MOFILES)
|
|
23
|
+
|
|
24
|
+
# Check for malformed strings
|
|
25
|
+
%.pox: %.po
|
|
26
|
+
msgfmt -c $<
|
|
27
|
+
pofilter --nofuzzy -t variables -t blank -t urls -t emails -t long -t newlines \
|
|
28
|
+
-t endwhitespace -t endpunc -t puncspacing -t options -t printf -t validchars --gnome $< > $@
|
|
29
|
+
cat $@
|
|
30
|
+
! grep -q msgid $@
|
|
31
|
+
|
|
32
|
+
check: $(POXFILES)
|
|
33
|
+
msgfmt -c ${POTFILE}
|
|
34
|
+
|
|
35
|
+
# Merge PO files
|
|
36
|
+
update-po:
|
|
37
|
+
for f in $(shell find ./ -name "*.po") ; do \
|
|
38
|
+
msgmerge -N --backup=none -U $$f ${POTFILE} ; \
|
|
39
|
+
done
|
|
40
|
+
|
|
41
|
+
# Unify duplicate translations
|
|
42
|
+
uniq-po:
|
|
43
|
+
for f in $(shell find ./ -name "*.po") ; do \
|
|
44
|
+
msguniq $$f -o $$f ; \
|
|
45
|
+
done
|
|
46
|
+
|
|
47
|
+
tx-pull:
|
|
48
|
+
tx pull -f
|
|
49
|
+
for f in $(POFILES) ; do \
|
|
50
|
+
sed -i 's/^\("Project-Id-Version: \).*$$/\1$(DOMAIN) $(VERSION)\\n"/' $$f; \
|
|
51
|
+
done
|
|
52
|
+
-git commit -a -m "i18n - pulling from tx"
|
|
53
|
+
|
|
54
|
+
reset-po:
|
|
55
|
+
# merging po files is unnecessary when using transifex.com
|
|
56
|
+
git checkout -- ../locale/*/*po
|
|
57
|
+
|
|
58
|
+
tx-update: tx-pull reset-po $(MOFILES)
|
|
59
|
+
# amend mo files
|
|
60
|
+
git add ../locale/*/LC_MESSAGES
|
|
61
|
+
git commit -a --amend -m "i18n - pulling from tx"
|
|
62
|
+
-echo Changes commited!
|
|
Binary file
|
|
@@ -4,13 +4,14 @@
|
|
|
4
4
|
#
|
|
5
5
|
#
|
|
6
6
|
# Translators:
|
|
7
|
-
#
|
|
7
|
+
# Arnold Bechtoldt <mail@arnoldbechtoldt.com>, 2014
|
|
8
|
+
# simon11 <simon.stieger.98@live.de>, 2014
|
|
8
9
|
msgid ""
|
|
9
10
|
msgstr ""
|
|
10
|
-
"Project-Id-Version:
|
|
11
|
+
"Project-Id-Version: foreman_discovery 1.3.0\n"
|
|
11
12
|
"Report-Msgid-Bugs-To: \n"
|
|
12
|
-
"POT-Creation-Date: 2014-
|
|
13
|
-
"PO-Revision-Date: 2014-
|
|
13
|
+
"POT-Creation-Date: 2014-08-07 10:19+0100\n"
|
|
14
|
+
"PO-Revision-Date: 2014-08-08 09:41+0000\n"
|
|
14
15
|
"Last-Translator: Lukáš Zapletal\n"
|
|
15
16
|
"Language-Team: German (http://www.transifex.com/projects/p/foreman/language/de/)\n"
|
|
16
17
|
"MIME-Version: 1.0\n"
|
|
@@ -20,13 +21,13 @@ msgstr ""
|
|
|
20
21
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
|
21
22
|
|
|
22
23
|
msgid "%s - The following hosts are about to be changed"
|
|
23
|
-
msgstr "%s - Die folgenden Hosts werden
|
|
24
|
+
msgstr "%s - Die folgenden Hosts werden geändert"
|
|
24
25
|
|
|
25
26
|
msgid "%s ago"
|
|
26
27
|
msgstr "vor %s"
|
|
27
28
|
|
|
28
29
|
msgid "Are you sure?"
|
|
29
|
-
msgstr "
|
|
30
|
+
msgstr "Bist du sicher?"
|
|
30
31
|
|
|
31
32
|
msgid "Assign Location"
|
|
32
33
|
msgstr "Standort zuweisen"
|
|
@@ -40,20 +41,26 @@ msgstr "Abbrechen"
|
|
|
40
41
|
msgid "Could not get facts from proxy: %s"
|
|
41
42
|
msgstr "Konnte keine Fakten vom Proxy empfangen: %s"
|
|
42
43
|
|
|
44
|
+
msgid "Create a discovered host"
|
|
45
|
+
msgstr ""
|
|
46
|
+
|
|
43
47
|
msgid "Delete"
|
|
44
48
|
msgstr "Löschen"
|
|
45
49
|
|
|
46
50
|
msgid "Delete %s?"
|
|
47
|
-
msgstr "
|
|
51
|
+
msgstr "%s löschen?"
|
|
52
|
+
|
|
53
|
+
msgid "Delete a discovered host"
|
|
54
|
+
msgstr ""
|
|
48
55
|
|
|
49
56
|
msgid "Delete hosts"
|
|
50
|
-
msgstr "
|
|
57
|
+
msgstr "Hosts löschen"
|
|
51
58
|
|
|
52
59
|
msgid "Destroyed selected hosts"
|
|
53
|
-
msgstr "
|
|
60
|
+
msgstr "Ausgewählte Hosts gelöscht"
|
|
54
61
|
|
|
55
62
|
msgid "Discovered host: %s"
|
|
56
|
-
msgstr "
|
|
63
|
+
msgstr "Entdeckter Host: %s"
|
|
57
64
|
|
|
58
65
|
msgid "Discovered hosts"
|
|
59
66
|
msgstr "Entdeckte Hosts"
|
|
@@ -62,10 +69,10 @@ msgid "Fact"
|
|
|
62
69
|
msgstr "Fakt"
|
|
63
70
|
|
|
64
71
|
msgid "Facts discovered on this host"
|
|
65
|
-
msgstr "Auf diesem Host entdeckte Fakten
|
|
72
|
+
msgstr "Auf diesem Host entdeckte Fakten"
|
|
66
73
|
|
|
67
74
|
msgid "Facts refreshed for %s"
|
|
68
|
-
msgstr "Fakten
|
|
75
|
+
msgstr "Fakten für %s erneuert"
|
|
69
76
|
|
|
70
77
|
msgid "Failed to import facts for Host::Discovered"
|
|
71
78
|
msgstr "Fakten für Host::Discovered konnten nicht importiert werden"
|
|
@@ -77,7 +84,7 @@ msgid "Failed to reboot: %s"
|
|
|
77
84
|
msgstr "Neustart fehlgeschlagen: %s"
|
|
78
85
|
|
|
79
86
|
msgid "Failed to refresh facts for %s"
|
|
80
|
-
msgstr "
|
|
87
|
+
msgstr "Fakten für %s konnten nicht erneuert werden"
|
|
81
88
|
|
|
82
89
|
msgid "Host Pool"
|
|
83
90
|
msgstr "Host-Pool"
|
|
@@ -86,16 +93,19 @@ msgid "Imported Host::Discovered"
|
|
|
86
93
|
msgstr "Host::Discovered wurde importiert"
|
|
87
94
|
|
|
88
95
|
msgid "Invalid facts, must be a Hash"
|
|
89
|
-
msgstr ""
|
|
96
|
+
msgstr "Ungültige Fakten, es muss sich um einen Hash handeln"
|
|
90
97
|
|
|
91
98
|
msgid "Invalid facts: hash does not contain the required fact '%s'"
|
|
92
|
-
msgstr ""
|
|
99
|
+
msgstr "Ungültige Fakten: Der Hash enthält den benötigten Fakt nicht: %s"
|
|
93
100
|
|
|
94
101
|
msgid "Last facts upload"
|
|
95
102
|
msgstr "Letzter Fakten-Upload"
|
|
96
103
|
|
|
104
|
+
msgid "List all discovered hosts"
|
|
105
|
+
msgstr ""
|
|
106
|
+
|
|
97
107
|
msgid "Location"
|
|
98
|
-
msgstr "
|
|
108
|
+
msgstr "Ort"
|
|
99
109
|
|
|
100
110
|
msgid "Model"
|
|
101
111
|
msgstr "Modell"
|
|
@@ -104,22 +114,25 @@ msgid "Name"
|
|
|
104
114
|
msgstr "Name"
|
|
105
115
|
|
|
106
116
|
msgid "No hosts selected"
|
|
107
|
-
msgstr "Keine
|
|
117
|
+
msgstr "Keine Hosts ausgewählt"
|
|
108
118
|
|
|
109
119
|
msgid "No hosts were found with that id or name"
|
|
110
|
-
msgstr "
|
|
120
|
+
msgstr "Es wurden keine Systeme mit dieser ID oder diesem Namen gefunden"
|
|
111
121
|
|
|
112
122
|
msgid "Organization"
|
|
113
123
|
msgstr "Organisation"
|
|
114
124
|
|
|
115
125
|
msgid "Please Confirm"
|
|
116
|
-
msgstr "
|
|
126
|
+
msgstr "Bitte bestätigen"
|
|
117
127
|
|
|
118
128
|
msgid "Provision"
|
|
119
129
|
msgstr "Bereitstellen"
|
|
120
130
|
|
|
131
|
+
msgid "Provision a discovered host"
|
|
132
|
+
msgstr ""
|
|
133
|
+
|
|
121
134
|
msgid "Rebooting %s"
|
|
122
|
-
msgstr "
|
|
135
|
+
msgstr "%s wird neu gestartet"
|
|
123
136
|
|
|
124
137
|
msgid "Refresh facts"
|
|
125
138
|
msgstr "Fakten erneuern"
|
|
@@ -131,13 +144,16 @@ msgid "Select all items in this page"
|
|
|
131
144
|
msgstr "Alle Elemente auf dieser Seite auswählen"
|
|
132
145
|
|
|
133
146
|
msgid "Select location"
|
|
134
|
-
msgstr "
|
|
147
|
+
msgstr "Ort auswählen"
|
|
135
148
|
|
|
136
149
|
msgid "Select organization"
|
|
137
150
|
msgstr "Organisation auswählen"
|
|
138
151
|
|
|
152
|
+
msgid "Show a discovered host"
|
|
153
|
+
msgstr ""
|
|
154
|
+
|
|
139
155
|
msgid "Something went wrong while selecting hosts - %s"
|
|
140
|
-
msgstr "
|
|
156
|
+
msgstr "Beim Auswählen der Hosts ist ein Fehler aufgetreten - %s"
|
|
141
157
|
|
|
142
158
|
msgid "Submit"
|
|
143
159
|
msgstr "Absenden"
|
|
@@ -149,21 +165,28 @@ msgid "The default fact name to use for the MAC of the system"
|
|
|
149
165
|
msgstr "Der Standard-Faktenname zum Verwenden für die MAC des Systems"
|
|
150
166
|
|
|
151
167
|
msgid "The default location to place discovered hosts in"
|
|
152
|
-
msgstr "Standard-
|
|
168
|
+
msgstr "Standard-Ort zum Platzieren entdeckter Hosts"
|
|
153
169
|
|
|
154
170
|
msgid "The default organization to place discovered hosts in"
|
|
155
171
|
msgstr "Standard-Organisation zum Platzieren entdeckter Hosts"
|
|
156
172
|
|
|
157
173
|
msgid "The following hosts were not deleted: %s"
|
|
158
|
-
msgstr "Die
|
|
174
|
+
msgstr "Die folgenden Systeme wurden nicht gelöscht: %s"
|
|
159
175
|
|
|
160
176
|
msgid ""
|
|
161
177
|
"This might take a while, as all hosts, facts and reports will be destroyed "
|
|
162
178
|
"as well"
|
|
163
179
|
msgstr "Dies kann eine Weile dauern, weil alle Systeme, Fakten und Reporte auch gelöscht werden"
|
|
164
180
|
|
|
181
|
+
msgid ""
|
|
182
|
+
"UUID to track orchestration tasks status, GET /api/orchestration/:UUID/tasks"
|
|
183
|
+
msgstr ""
|
|
184
|
+
|
|
165
185
|
msgid "Unassigned hosts"
|
|
166
|
-
msgstr "
|
|
186
|
+
msgstr "Nicht zugeordnete Hosts"
|
|
187
|
+
|
|
188
|
+
msgid "Upload facts for a host, creating the host if required"
|
|
189
|
+
msgstr ""
|
|
167
190
|
|
|
168
191
|
msgid "Value"
|
|
169
192
|
msgstr "Wert"
|
|
@@ -171,5 +194,26 @@ msgstr "Wert"
|
|
|
171
194
|
msgid "Warning"
|
|
172
195
|
msgstr "Warnung"
|
|
173
196
|
|
|
197
|
+
msgid "filter results"
|
|
198
|
+
msgstr ""
|
|
199
|
+
|
|
200
|
+
msgid "hash containing facts for the host"
|
|
201
|
+
msgstr ""
|
|
202
|
+
|
|
174
203
|
msgid "items selected. Uncheck to Clear"
|
|
175
|
-
msgstr "Elemente ausgewählt.
|
|
204
|
+
msgstr "Elemente ausgewählt. Zum Leeren abwählen"
|
|
205
|
+
|
|
206
|
+
msgid "not required if it's a virtual machine"
|
|
207
|
+
msgstr ""
|
|
208
|
+
|
|
209
|
+
msgid "not required if using a subnet with DHCP proxy"
|
|
210
|
+
msgstr ""
|
|
211
|
+
|
|
212
|
+
msgid "number of entries per request"
|
|
213
|
+
msgstr ""
|
|
214
|
+
|
|
215
|
+
msgid "paginate results"
|
|
216
|
+
msgstr ""
|
|
217
|
+
|
|
218
|
+
msgid "sort results"
|
|
219
|
+
msgstr ""
|