summaryrefslogtreecommitdiffstats
path: root/install/po/ipa.pot
diff options
context:
space:
mode:
authorPetr Viktorin <pviktori@redhat.com>2012-07-25 11:51:57 -0400
committerMartin Kosek <mkosek@redhat.com>2012-07-31 15:43:54 +0200
commit16ca564b1004eb672fe4ca3573e542f5a3ce014b (patch)
tree81ed51af60983159fc56008add6ba8b753cecf45 /install/po/ipa.pot
parent051eb5f7e4969bf6c2f45346df2f07324fa21882 (diff)
downloadfreeipa-16ca564b1004eb672fe4ca3573e542f5a3ce014b.tar.gz
freeipa-16ca564b1004eb672fe4ca3573e542f5a3ce014b.tar.xz
freeipa-16ca564b1004eb672fe4ca3573e542f5a3ce014b.zip
Update translations
Update the pot file to match current source, and pull translations from Transifex The commands used to create this commit were: tx pull -fa # needs an account and transifex client setup cd install/po make update-pot (update LINGUAS to contain all languages with translations, and no empty ones) make update-po
Diffstat (limited to 'install/po/ipa.pot')
-rw-r--r--install/po/ipa.pot3863
1 files changed, 2413 insertions, 1450 deletions
diff --git a/install/po/ipa.pot b/install/po/ipa.pot
index 8d33915a..399db885 100644
--- a/install/po/ipa.pot
+++ b/install/po/ipa.pot
@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: ipa\n"
"Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/"
"newticket\n"
-"POT-Creation-Date: 2012-02-21 17:18-0500\n"
+"POT-Creation-Date: 2012-07-25 11:37-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -19,54 +19,54 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-#: ipalib/cli.py:590
+#: ipalib/cli.py:593
#, python-format
msgid "Enter %(label)s again to verify: "
msgstr ""
-#: ipalib/cli.py:598 ipa-client/ipa-getkeytab.c:768
+#: ipalib/cli.py:601 ipa-client/ipa-getkeytab.c:420
#, c-format
msgid "Passwords do not match!"
msgstr ""
-#: ipalib/cli.py:761
+#: ipalib/cli.py:764
#, python-format
msgid "Purpose: %s"
msgstr ""
-#: ipalib/cli.py:778
+#: ipalib/cli.py:781
msgid "Usage: ipa [global-options] COMMAND ..."
msgstr ""
-#: ipalib/cli.py:780
+#: ipalib/cli.py:783
msgid "Built-in commands:"
msgstr ""
-#: ipalib/cli.py:782
+#: ipalib/cli.py:785
msgid "Help subtopics:"
msgstr ""
-#: ipalib/cli.py:785
+#: ipalib/cli.py:788
msgid "Help topics:"
msgstr ""
-#: ipalib/cli.py:790
+#: ipalib/cli.py:793
msgid "Try `ipa --help` for a list of global options."
msgstr ""
-#: ipalib/cli.py:824
+#: ipalib/cli.py:827
msgid "Topic commands:"
msgstr ""
-#: ipalib/cli.py:835
+#: ipalib/cli.py:838
msgid "Command name"
msgstr ""
-#: ipalib/cli.py:985
+#: ipalib/cli.py:988
msgid "Positional arguments"
msgstr ""
-#: ipalib/cli.py:1218
+#: ipalib/cli.py:1244
msgid "No file to read"
msgstr ""
@@ -157,263 +157,297 @@ msgstr ""
msgid "Session error"
msgstr ""
-#: ipalib/errors.py:631
+#: ipalib/errors.py:620
+#, python-format
+msgid "Principal %(principal)s cannot be authenticated: %(message)s"
+msgstr ""
+
+#: ipalib/errors.py:638
#, python-format
msgid "Insufficient access: %(info)s"
msgstr ""
-#: ipalib/errors.py:675
+#: ipalib/errors.py:682
#, python-format
msgid "command %(name)r takes no arguments"
msgstr ""
-#: ipalib/errors.py:695
+#: ipalib/errors.py:702
#, python-format
msgid "command %(name)r takes at most %(count)d argument"
msgid_plural "command %(name)r takes at most %(count)d arguments"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/errors.py:725
+#: ipalib/errors.py:732
#, python-format
msgid "overlapping arguments and options: %(names)r"
msgstr ""
-#: ipalib/errors.py:741
+#: ipalib/errors.py:748
#, python-format
msgid "%(name)r is required"
msgstr ""
-#: ipalib/errors.py:757 ipalib/errors.py:773
+#: ipalib/errors.py:764 ipalib/errors.py:780
#, python-format
msgid "invalid %(name)r: %(error)s"
msgstr ""
-#: ipalib/errors.py:789
+#: ipalib/errors.py:796
#, python-format
msgid "api has no such namespace: %(name)r"
msgstr ""
-#: ipalib/errors.py:798
+#: ipalib/errors.py:805
msgid "Passwords do not match"
msgstr ""
-#: ipalib/errors.py:807
+#: ipalib/errors.py:814
msgid "Command not implemented"
msgstr ""
-#: ipalib/errors.py:816
+#: ipalib/errors.py:823
msgid "Client is not configured. Run ipa-client-install."
msgstr ""
-#: ipalib/errors.py:825
+#: ipalib/errors.py:832
#, python-format
msgid "Could not get %(name)s interactively"
msgstr ""
-#: ipalib/errors.py:853 ipalib/errors.py:1093 ipalib/errors.py:1187
-#: ipalib/errors.py:1502 ipalib/errors.py:1519
+#: ipalib/errors.py:860 ipalib/errors.py:1100 ipalib/errors.py:1194
+#: ipalib/errors.py:1559 ipalib/errors.py:1576
#, python-format
msgid "%(reason)s"
msgstr ""
-#: ipalib/errors.py:869
+#: ipalib/errors.py:876
msgid "This entry already exists"
msgstr ""
-#: ipalib/errors.py:885
+#: ipalib/errors.py:892
msgid "You must enroll a host in order to create a host service"
msgstr ""
-#: ipalib/errors.py:901
+#: ipalib/errors.py:908
#, python-format
msgid ""
"Service principal is not of the form: service/fully-qualified host name: "
"%(reason)s"
msgstr ""
-#: ipalib/errors.py:917
+#: ipalib/errors.py:924
msgid ""
"The realm for the principal does not match the realm for this IPA server"
msgstr ""
-#: ipalib/errors.py:933
+#: ipalib/errors.py:940
msgid "This command requires root access"
msgstr ""
-#: ipalib/errors.py:949
+#: ipalib/errors.py:956
msgid "This is already a posix group"
msgstr ""
-#: ipalib/errors.py:965
+#: ipalib/errors.py:972
#, python-format
msgid "Principal is not of the form user@REALM: %(principal)r"
msgstr ""
-#: ipalib/errors.py:981
+#: ipalib/errors.py:988
msgid "This entry is already enabled"
msgstr ""
-#: ipalib/errors.py:997
+#: ipalib/errors.py:1004
msgid "This entry is already disabled"
msgstr ""
-#: ipalib/errors.py:1013
+#: ipalib/errors.py:1020
msgid "This entry cannot be enabled or disabled"
msgstr ""
-#: ipalib/errors.py:1029
+#: ipalib/errors.py:1036
msgid "This entry is not a member"
msgstr ""
-#: ipalib/errors.py:1045
+#: ipalib/errors.py:1052
msgid "A group may not be a member of itself"
msgstr ""
-#: ipalib/errors.py:1061
+#: ipalib/errors.py:1068
msgid "This entry is already a member"
msgstr ""
-#: ipalib/errors.py:1077
+#: ipalib/errors.py:1084
#, python-format
msgid "Base64 decoding failed: %(reason)s"
msgstr ""
-#: ipalib/errors.py:1109
+#: ipalib/errors.py:1116
msgid "A group may not be added as a member of itself"
msgstr ""
-#: ipalib/errors.py:1125
+#: ipalib/errors.py:1132
msgid "The default users group cannot be removed"
msgstr ""
-#: ipalib/errors.py:1141
+#: ipalib/errors.py:1148
msgid "Host does not have corresponding DNS A record"
msgstr ""
-#: ipalib/errors.py:1156
+#: ipalib/errors.py:1163
msgid "Deleting a managed group is not allowed. It must be detached first."
msgstr ""
-#: ipalib/errors.py:1171
+#: ipalib/errors.py:1178
msgid "A managed group cannot have a password policy."
msgstr ""
-#: ipalib/errors.py:1203
+#: ipalib/errors.py:1210
#, python-format
msgid "'%(entry)s' doesn't have a certificate."
msgstr ""
-#: ipalib/errors.py:1219
+#: ipalib/errors.py:1226
#, python-format
msgid "Unable to create private group. A group '%(group)s' already exists."
msgstr ""
-#: ipalib/errors.py:1235
+#: ipalib/errors.py:1242
#, python-format
msgid ""
"A problem was encountered when verifying that all members were %(verb)s: "
"%(exc)s"
msgstr ""
-#: ipalib/errors.py:1253
+#: ipalib/errors.py:1260
#, python-format
msgid "%(attr)s does not contain '%(value)s'"
msgstr ""
-#: ipalib/errors.py:1270
+#: ipalib/errors.py:1277
#, python-format
msgid ""
"The search criteria was not specific enough. Expected 1 and found %(found)d."
msgstr ""
#: ipalib/errors.py:1294
+msgid "This group already allows external members"
+msgstr ""
+
+#: ipalib/errors.py:1311
+msgid "This group cannot be posix because it is external"
+msgstr ""
+
+#: ipalib/errors.py:1328
+msgid "This is already a posix group and cannot be converted to external one"
+msgstr ""
+
+#: ipalib/errors.py:1351
#, python-format
msgid "no command nor help topic %(topic)r"
msgstr ""
-#: ipalib/errors.py:1318
+#: ipalib/errors.py:1375
msgid "change collided with another change"
msgstr ""
-#: ipalib/errors.py:1334
+#: ipalib/errors.py:1391
msgid "no modifications to be performed"
msgstr ""
-#: ipalib/errors.py:1350
+#: ipalib/errors.py:1407
#, python-format
msgid "%(desc)s: %(info)s"
msgstr ""
-#: ipalib/errors.py:1366
+#: ipalib/errors.py:1423
msgid "limits exceeded for this query"
msgstr ""
-#: ipalib/errors.py:1381
+#: ipalib/errors.py:1438
#, python-format
msgid "%(info)s"
msgstr ""
-#: ipalib/errors.py:1396
+#: ipalib/errors.py:1453
msgid "modifying primary key is not allowed"
msgstr ""
-#: ipalib/errors.py:1412
+#: ipalib/errors.py:1469
#, python-format
msgid "%(attr)s: Only one value allowed."
msgstr ""
-#: ipalib/errors.py:1428
+#: ipalib/errors.py:1485
#, python-format
msgid "%(attr)s: Invalid syntax."
msgstr ""
-#: ipalib/errors.py:1444
+#: ipalib/errors.py:1501
#, python-format
msgid "Bad search filter %(info)s"
msgstr ""
-#: ipalib/errors.py:1469
+#: ipalib/errors.py:1526
#, python-format
msgid "Certificate operation cannot be completed: %(error)s"
msgstr ""
-#: ipalib/errors.py:1485
+#: ipalib/errors.py:1542
#, python-format
msgid "Certificate format error: %(error)s"
msgstr ""
-#: ipalib/errors.py:1536
+#: ipalib/errors.py:1593
msgid "Already registered"
msgstr ""
-#: ipalib/errors.py:1552
+#: ipalib/errors.py:1609
msgid "Not registered yet"
msgstr ""
-#: ipalib/errors.py:1568
+#: ipalib/errors.py:1625
#, python-format
msgid "%(key)s cannot be deleted because %(label)s %(dependent)s requires it"
msgstr ""
-#: ipalib/frontend.py:408
+#: ipalib/errors.py:1641
+#, python-format
+msgid ""
+"%(key)s cannot be deleted because it is the last member of %(label)s "
+"%(container)s"
+msgstr ""
+
+#: ipalib/errors.py:1657
+#, python-format
+msgid "%(label)s %(key)s cannot be deleted: %(reason)s"
+msgstr ""
+
+#: ipalib/frontend.py:411
msgid "Results are truncated, try a more specific search"
msgstr ""
-#: ipalib/frontend.py:821
+#: ipalib/frontend.py:531
+#, python-format
+msgid "Unknown option: %(option)s"
+msgstr ""
+
+#: ipalib/frontend.py:890
msgid ""
"Retrieve and print all attributes from the server. Affects command output."
msgstr ""
-#: ipalib/frontend.py:827
+#: ipalib/frontend.py:896
msgid "Print entries as stored on the server. Only affects output format."
msgstr ""
-#: ipalib/frontend.py:832 ipalib/plugins/batch.py:69
+#: ipalib/frontend.py:901 ipalib/plugins/batch.py:69
msgid "Client version. Used to determine if server will accept request."
msgstr ""
-#: ipalib/frontend.py:967
+#: ipalib/frontend.py:1058
msgid "Forward to server instead of running locally"
msgstr ""
@@ -453,99 +487,106 @@ msgstr ""
msgid "True means the operation was successful"
msgstr ""
-#: ipalib/parameters.py:361
+#: ipalib/parameters.py:370
msgid "incorrect type"
msgstr ""
-#: ipalib/parameters.py:364
+#: ipalib/parameters.py:373
msgid "Only one value is allowed"
msgstr ""
-#: ipalib/parameters.py:1033
+#: ipalib/parameters.py:998
msgid "must be True or False"
msgstr ""
-#: ipalib/parameters.py:1134
+#: ipalib/parameters.py:1099
msgid "must be an integer"
msgstr ""
-#: ipalib/parameters.py:1186
+#: ipalib/parameters.py:1151
#, python-format
msgid "must be at least %(minvalue)d"
msgstr ""
-#: ipalib/parameters.py:1196
+#: ipalib/parameters.py:1161
#, python-format
msgid "can be at most %(maxvalue)d"
msgstr ""
-#: ipalib/parameters.py:1242
+#: ipalib/parameters.py:1204
msgid "must be a decimal number"
msgstr ""
-#: ipalib/parameters.py:1283
+#: ipalib/parameters.py:1250
#, python-format
msgid "must be at least %(minvalue)s"
msgstr ""
-#: ipalib/parameters.py:1293
+#: ipalib/parameters.py:1260
#, python-format
msgid "can be at most %(maxvalue)s"
msgstr ""
-#: ipalib/parameters.py:1387
+#: ipalib/parameters.py:1269
+#, python-format
+msgid ""
+"number class '%(cls)s' is not included in a list of allowed number classes: "
+"%(allowed)s"
+msgstr ""
+
+#: ipalib/parameters.py:1393
#, python-format
msgid "must match pattern \"%(pattern)s\""
msgstr ""
-#: ipalib/parameters.py:1405
+#: ipalib/parameters.py:1411
msgid "must be binary data"
msgstr ""
-#: ipalib/parameters.py:1421
+#: ipalib/parameters.py:1427
#, python-format
msgid "must be at least %(minlength)d bytes"
msgstr ""
-#: ipalib/parameters.py:1431
+#: ipalib/parameters.py:1437
#, python-format
msgid "can be at most %(maxlength)d bytes"
msgstr ""
-#: ipalib/parameters.py:1441
+#: ipalib/parameters.py:1447
#, python-format
msgid "must be exactly %(length)d bytes"
msgstr ""
-#: ipalib/parameters.py:1471
+#: ipalib/parameters.py:1477
msgid "must be Unicode text"
msgstr ""
-#: ipalib/parameters.py:1504
+#: ipalib/parameters.py:1510
msgid "Leading and trailing spaces are not allowed"
msgstr ""
-#: ipalib/parameters.py:1512
+#: ipalib/parameters.py:1518
#, python-format
msgid "must be at least %(minlength)d characters"
msgstr ""
-#: ipalib/parameters.py:1522
+#: ipalib/parameters.py:1528
#, python-format
msgid "can be at most %(maxlength)d characters"
msgstr ""
-#: ipalib/parameters.py:1532
+#: ipalib/parameters.py:1538
#, python-format
msgid "must be exactly %(length)d characters"
msgstr ""
-#: ipalib/parameters.py:1550
+#: ipalib/parameters.py:1557
#, python-format
msgid "The character '%(char)r' is not allowed."
msgstr ""
-#: ipalib/parameters.py:1594
+#: ipalib/parameters.py:1601
#, python-format
msgid "must be one of %(values)r"
msgstr ""
@@ -617,7 +658,7 @@ msgstr ""
msgid "ACI name"
msgstr ""
-#: ipalib/plugins/aci.py:436 ipalib/plugins/permission.py:112
+#: ipalib/plugins/aci.py:436 ipalib/plugins/permission.py:121
msgid "Permission"
msgstr ""
@@ -625,17 +666,17 @@ msgstr ""
msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:442 ipalib/plugins/delegation.py:103
+#: ipalib/plugins/aci.py:442 ipalib/plugins/delegation.py:102
msgid "User group"
msgstr ""
-#: ipalib/plugins/aci.py:443 ipalib/plugins/delegation.py:104
+#: ipalib/plugins/aci.py:443 ipalib/plugins/delegation.py:103
msgid "User group ACI grants access to"
msgstr ""
#: ipalib/plugins/aci.py:448 ipalib/plugins/baseldap.py:65
-#: ipalib/plugins/delegation.py:84 ipalib/plugins/permission.py:111
-#: ipalib/plugins/permission.py:122 ipalib/plugins/selfservice.py:83
+#: ipalib/plugins/delegation.py:83 ipalib/plugins/permission.py:120
+#: ipalib/plugins/permission.py:133 ipalib/plugins/selfservice.py:85
msgid "Permissions"
msgstr ""
@@ -644,17 +685,17 @@ msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/aci.py:457 ipalib/plugins/delegation.py:91
-#: ipalib/plugins/permission.py:129 ipalib/plugins/selfservice.py:90
+#: ipalib/plugins/aci.py:457 ipalib/plugins/delegation.py:90
+#: ipalib/plugins/permission.py:140 ipalib/plugins/selfservice.py:92
msgid "Attributes"
msgstr ""
-#: ipalib/plugins/aci.py:458 ipalib/plugins/delegation.py:92
-#: ipalib/plugins/permission.py:130 ipalib/plugins/selfservice.py:91
+#: ipalib/plugins/aci.py:458 ipalib/plugins/delegation.py:91
+#: ipalib/plugins/permission.py:141 ipalib/plugins/selfservice.py:93
msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:137
+#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:148
msgid "Type"
msgstr ""
@@ -670,15 +711,15 @@ msgstr ""
msgid "Member of a group"
msgstr ""
-#: ipalib/plugins/aci.py:477 ipalib/plugins/permission.py:150
+#: ipalib/plugins/aci.py:477 ipalib/plugins/permission.py:161
msgid "Filter"
msgstr ""
-#: ipalib/plugins/aci.py:478 ipalib/plugins/permission.py:151
+#: ipalib/plugins/aci.py:478 ipalib/plugins/permission.py:162
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/plugins/aci.py:483 ipalib/plugins/permission.py:156
+#: ipalib/plugins/aci.py:483 ipalib/plugins/permission.py:167
msgid "Subtree"
msgstr ""
@@ -686,7 +727,7 @@ msgstr ""
msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:489 ipalib/plugins/permission.py:162
+#: ipalib/plugins/aci.py:489 ipalib/plugins/permission.py:173
msgid "Target group"
msgstr ""
@@ -716,29 +757,29 @@ msgstr ""
msgid "Deleted ACI \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:608 ipalib/plugins/aci.py:871
-#: ipalib/plugins/aci.py:912 ipalib/plugins/delegation.py:60
-#: ipalib/plugins/permission.py:88 ipalib/plugins/selfservice.py:59
+#: ipalib/plugins/aci.py:607 ipalib/plugins/aci.py:880
+#: ipalib/plugins/aci.py:921 ipalib/plugins/delegation.py:59
+#: ipalib/plugins/permission.py:87 ipalib/plugins/selfservice.py:58
msgid "ACI"
msgstr ""
-#: ipalib/plugins/aci.py:614
+#: ipalib/plugins/aci.py:615
#, python-format
msgid "Modified ACI \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:692
+#: ipalib/plugins/aci.py:690
#, python-format
msgid "%(count)d ACI matched"
msgid_plural "%(count)d ACIs matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/aci.py:919
+#: ipalib/plugins/aci.py:928
msgid "New ACI name"
msgstr ""
-#: ipalib/plugins/aci.py:923
+#: ipalib/plugins/aci.py:932
#, python-format
msgid "Renamed ACI to \"%(value)s\""
msgstr ""
@@ -753,12 +794,17 @@ msgid ""
"a group or hostgroup based upon attribute information.\n"
"\n"
"A rule is directly associated with a group by name, so you cannot create\n"
-"a rule without an accompanying group or hostgroup\n"
+"a rule without an accompanying group or hostgroup.\n"
"\n"
"A condition is a regular expression used by 389-ds to match a new incoming\n"
"entry with an automember rule. If it matches an inclusive rule then the\n"
"entry is added to the appropriate group or hostgroup.\n"
"\n"
+"A default group or hostgroup could be specified for entries that do not\n"
+"match any rule. In case of user entries this group will be a fallback group\n"
+"because all users are by default members of group specified in IPA config.\n"
+"\n"
+"\n"
"EXAMPLES:\n"
"\n"
" Add the initial group or hostgroup:\n"
@@ -804,16 +850,16 @@ msgid ""
" Modify the automember rule:\n"
" ipa automember-mod\n"
"\n"
-" Set the default target group:\n"
+" Set the default (fallback) target group:\n"
" ipa automember-default-group-set --default-group=webservers --"
"type=hostgroup\n"
" ipa automember-default-group-set --default-group=ipausers --type=group\n"
"\n"
-" Remove the default target group:\n"
+" Remove the default (fallback) target group:\n"
" ipa automember-default-group-remove --type=hostgroup\n"
" ipa automember-default-group-remove --type=group\n"
"\n"
-" Show the default target group:\n"
+" Show the default (fallback) target group:\n"
" ipa automember-default-group-show --type=hostgroup\n"
" ipa automember-default-group-show --type=group\n"
"\n"
@@ -829,119 +875,119 @@ msgid ""
" ipa automember-del --type=group devel\n"
msgstr ""
-#: ipalib/plugins/automember.py:114 ipalib/plugins/automember.py:115
+#: ipalib/plugins/automember.py:119 ipalib/plugins/automember.py:120
msgid "Inclusive Regex"
msgstr ""
-#: ipalib/plugins/automember.py:121 ipalib/plugins/automember.py:122
+#: ipalib/plugins/automember.py:126 ipalib/plugins/automember.py:127
msgid "Exclusive Regex"
msgstr ""
-#: ipalib/plugins/automember.py:127
+#: ipalib/plugins/automember.py:132
msgid "Attribute Key"
msgstr ""
-#: ipalib/plugins/automember.py:128
+#: ipalib/plugins/automember.py:133
msgid ""
"Attribute to filter via regex. For example fqdn for a host, or manager for a "
"user"
msgstr ""
-#: ipalib/plugins/automember.py:135
+#: ipalib/plugins/automember.py:140
msgid "Grouping Type"
msgstr ""
-#: ipalib/plugins/automember.py:136
+#: ipalib/plugins/automember.py:141
msgid "Grouping to which the rule applies"
msgstr ""
-#: ipalib/plugins/automember.py:144 ipalib/plugins/automember.py:145
+#: ipalib/plugins/automember.py:149 ipalib/plugins/automember.py:150
msgid "Automember Rule"
msgstr ""
-#: ipalib/plugins/automember.py:166
+#: ipalib/plugins/automember.py:171
msgid "Auto Membership Rule"
msgstr ""
-#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:574
-#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:184
+#: ipalib/plugins/automember.py:176 ipalib/plugins/automount.py:574
+#: ipalib/plugins/group.py:123 ipalib/plugins/hbacrule.py:184
#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
-#: ipalib/plugins/host.py:284 ipalib/plugins/hostgroup.py:87
-#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76
+#: ipalib/plugins/host.py:244 ipalib/plugins/hostgroup.py:90
+#: ipalib/plugins/netgroup.py:122 ipalib/plugins/privilege.py:73
#: ipalib/plugins/role.py:92 ipalib/plugins/selinuxusermap.py:173
#: ipalib/plugins/sudocmd.py:76 ipalib/plugins/sudocmdgroup.py:78
-#: ipalib/plugins/sudorule.py:106
+#: ipalib/plugins/sudorule.py:111
msgid "Description"
msgstr ""
-#: ipalib/plugins/automember.py:172
+#: ipalib/plugins/automember.py:177
msgid "A description of this auto member rule"
msgstr ""
-#: ipalib/plugins/automember.py:176 ipalib/plugins/automember.py:509
-msgid "Default Group"
+#: ipalib/plugins/automember.py:181 ipalib/plugins/automember.py:514
+msgid "Default (fallback) Group"
msgstr ""
-#: ipalib/plugins/automember.py:177
+#: ipalib/plugins/automember.py:182
msgid "Default group for entries to land"
msgstr ""
-#: ipalib/plugins/automember.py:188
+#: ipalib/plugins/automember.py:193
#, python-format
msgid "Group: %s not found!"
msgstr ""
-#: ipalib/plugins/automember.py:215
+#: ipalib/plugins/automember.py:220
#, python-format
msgid "%s is not a valid attribute."
msgstr ""
-#: ipalib/plugins/automember.py:228
+#: ipalib/plugins/automember.py:233
msgid ""
"\n"
" Add an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/automember.py:233
+#: ipalib/plugins/automember.py:238
#, python-format
msgid "Added automember rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automember.py:239
+#: ipalib/plugins/automember.py:244
msgid "Auto Membership is not configured"
msgstr ""
-#: ipalib/plugins/automember.py:252
+#: ipalib/plugins/automember.py:257
msgid ""
"\n"
" Add conditions to an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/automember.py:257
+#: ipalib/plugins/automember.py:262
msgid "Failed to add"
msgstr ""
-#: ipalib/plugins/automember.py:264
+#: ipalib/plugins/automember.py:269
#, python-format
msgid "Added condition(s) to \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automember.py:273
+#: ipalib/plugins/automember.py:278
msgid "Conditions that could not be added"
msgstr ""
-#: ipalib/plugins/automember.py:277
+#: ipalib/plugins/automember.py:282
msgid "Number of conditions added"
msgstr ""
-#: ipalib/plugins/automember.py:286 ipalib/plugins/automember.py:372
+#: ipalib/plugins/automember.py:291 ipalib/plugins/automember.py:377
#, python-format
msgid "Auto member rule: %s not found!"
msgstr ""
-#: ipalib/plugins/automember.py:329
+#: ipalib/plugins/automember.py:334
msgid ""
"\n"
" Override this so we can add completed and failed to the return "
@@ -949,114 +995,115 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/automember.py:345
+#: ipalib/plugins/automember.py:350
msgid ""
"\n"
" Remove conditions from an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/automember.py:350
+#: ipalib/plugins/automember.py:355
#, python-format
msgid "Removed condition(s) from \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automember.py:359
+#: ipalib/plugins/automember.py:364
msgid "Conditions that could not be removed"
msgstr ""
-#: ipalib/plugins/automember.py:363
+#: ipalib/plugins/automember.py:368
msgid "Number of conditions removed"
msgstr ""
-#: ipalib/plugins/automember.py:418
+#: ipalib/plugins/automember.py:423
msgid ""
"\n"
" Override this so we can set completed and failed.\n"
" "
msgstr ""
-#: ipalib/plugins/automember.py:434
+#: ipalib/plugins/automember.py:439
msgid ""
"\n"
" Modify an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/automember.py:439
+#: ipalib/plugins/automember.py:444
#, python-format
msgid "Modified automember rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automember.py:450
+#: ipalib/plugins/automember.py:455
msgid ""
"\n"
" Delete an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/automember.py:455
+#: ipalib/plugins/automember.py:460
#, python-format
msgid "Deleted automember rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automember.py:466
+#: ipalib/plugins/automember.py:471
msgid ""
"\n"
" Search for automember rules.\n"
" "
msgstr ""
-#: ipalib/plugins/automember.py:473
+#: ipalib/plugins/automember.py:478
#, python-format
msgid "%(count)d rules matched"
msgid_plural "%(count)d rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/automember.py:486
+#: ipalib/plugins/automember.py:491
msgid ""
"\n"
" Display information about an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/automember.py:502
+#: ipalib/plugins/automember.py:507
msgid ""
"\n"
-" Set default group for all unmatched entries.\n"
+" Set default (fallback) group for all unmatched entries.\n"
" "
msgstr ""
-#: ipalib/plugins/automember.py:510
-msgid "Default group for entires to land"
+#: ipalib/plugins/automember.py:515
+msgid "Default (fallback) group for entries to land"
msgstr ""
-#: ipalib/plugins/automember.py:514
+#: ipalib/plugins/automember.py:519
#, python-format
-msgid "Set default group for automember \"%(value)s\""
+msgid "Set default (fallback) group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automember.py:531
+#: ipalib/plugins/automember.py:536
msgid ""
"\n"
-" Remove default group for all unmatched entries.\n"
+" Remove default (fallback) group for all unmatched entries.\n"
" "
msgstr ""
-#: ipalib/plugins/automember.py:536
+#: ipalib/plugins/automember.py:541
#, python-format
-msgid "Removed default group for automember \"%(value)s\""
+msgid "Removed default (fallback) group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automember.py:548
-msgid "No default group set"
+#: ipalib/plugins/automember.py:553 ipalib/plugins/automember.py:560
+#: ipalib/plugins/automember.py:584
+msgid "No default (fallback) group set"
msgstr ""
-#: ipalib/plugins/automember.py:567
+#: ipalib/plugins/automember.py:572
msgid ""
"\n"
-" Display information about the default automember groups.\n"
+" Display information about the default (fallback) automember groups.\n"
" "
msgstr ""
@@ -1184,7 +1231,7 @@ msgstr ""
msgid "Automount Location"
msgstr ""
-#: ipalib/plugins/automount.py:215 ipalib/plugins/host.py:294
+#: ipalib/plugins/automount.py:215 ipalib/plugins/host.py:254
msgid "Location"
msgstr ""
@@ -1333,18 +1380,18 @@ msgstr ""
msgid "automount keys"
msgstr ""
-#: ipalib/plugins/automount.py:654 ipalib/plugins/automount.py:870
-#: ipalib/plugins/automount.py:977
+#: ipalib/plugins/automount.py:654 ipalib/plugins/automount.py:876
+#: ipalib/plugins/automount.py:985
msgid "Key"
msgstr ""
-#: ipalib/plugins/automount.py:655 ipalib/plugins/automount.py:871
-#: ipalib/plugins/automount.py:978
+#: ipalib/plugins/automount.py:655 ipalib/plugins/automount.py:877
+#: ipalib/plugins/automount.py:986
msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/automount.py:660 ipalib/plugins/automount.py:875
-#: ipalib/plugins/automount.py:982
+#: ipalib/plugins/automount.py:660 ipalib/plugins/automount.py:881
+#: ipalib/plugins/automount.py:990
msgid "Mount information"
msgstr ""
@@ -1384,79 +1431,80 @@ msgid ""
"entry."
msgstr ""
-#: ipalib/plugins/automount.py:784
+#: ipalib/plugins/automount.py:786
msgid "Create a new automount key."
msgstr ""
-#: ipalib/plugins/automount.py:786
+#: ipalib/plugins/automount.py:788
#, python-format
msgid "Added automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:809
+#: ipalib/plugins/automount.py:815
msgid "Create a new indirect mount point."
msgstr ""
-#: ipalib/plugins/automount.py:811
+#: ipalib/plugins/automount.py:817
#, python-format
msgid "Added automount indirect map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:816
+#: ipalib/plugins/automount.py:822
msgid "Mount point"
msgstr ""
-#: ipalib/plugins/automount.py:820
+#: ipalib/plugins/automount.py:826
msgid "Parent map"
msgstr ""
-#: ipalib/plugins/automount.py:821
+#: ipalib/plugins/automount.py:827
msgid "Name of parent automount map (default: auto.master)."
msgstr ""
-#: ipalib/plugins/automount.py:832
+#: ipalib/plugins/automount.py:841
msgid "mount point is relative to parent map, cannot begin with /"
msgstr ""
-#: ipalib/plugins/automount.py:863
+#: ipalib/plugins/automount.py:869
msgid "Delete an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:865
+#: ipalib/plugins/automount.py:871
#, python-format
msgid "Deleted automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:905
+#: ipalib/plugins/automount.py:911
msgid "Modify an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:907
+#: ipalib/plugins/automount.py:913
#, python-format
msgid "Modified automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:912
+#: ipalib/plugins/automount.py:920
msgid "New mount information"
msgstr ""
-#: ipalib/plugins/automount.py:961
+#: ipalib/plugins/automount.py:969
msgid "Search for an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:964
+#: ipalib/plugins/automount.py:972
#, python-format
msgid "%(count)d automount key matched"
msgid_plural "%(count)d automount keys matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/automount.py:972
+#: ipalib/plugins/automount.py:980
msgid "Display an automount key."
msgstr ""
-#: ipalib/plugins/baseldap.py:41 ipalib/plugins/entitle.py:487
-#: ipalib/plugins/migration.py:340 ipalib/plugins/user.py:240
+#: ipalib/plugins/baseldap.py:41 ipalib/plugins/entitle.py:488
+#: ipalib/plugins/internal.py:273 ipalib/plugins/internal.py:591
+#: ipalib/plugins/migration.py:420 ipalib/plugins/user.py:266
msgid "Password"
msgstr ""
@@ -1562,204 +1610,216 @@ msgid "Indirect Member netgroups"
msgstr ""
#: ipalib/plugins/baseldap.py:161
-msgid "External host"
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:164
msgid "Failed source hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:167
+#: ipalib/plugins/baseldap.py:164
msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:170
+#: ipalib/plugins/baseldap.py:167
msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:173
+#: ipalib/plugins/baseldap.py:170
msgid "Failed service/service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:176
+#: ipalib/plugins/baseldap.py:173
msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:179
+#: ipalib/plugins/baseldap.py:176
msgid "Failed to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:183
+#: ipalib/plugins/baseldap.py:180
msgid "Failed RunAs"
msgstr ""
-#: ipalib/plugins/baseldap.py:186
+#: ipalib/plugins/baseldap.py:183
msgid "Failed RunAsGroup"
msgstr ""
-#: ipalib/plugins/baseldap.py:400
+#: ipalib/plugins/baseldap.py:322
+msgid "External host"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:446
+msgid "An IPA master host cannot be deleted or disabled"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:461
msgid "entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:401
+#: ipalib/plugins/baseldap.py:462
msgid "entries"
msgstr ""
-#: ipalib/plugins/baseldap.py:433 ipalib/plugins/baseldap.py:434
+#: ipalib/plugins/baseldap.py:494 ipalib/plugins/baseldap.py:495
msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:436
+#: ipalib/plugins/baseldap.py:497
#, python-format
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:437
+#: ipalib/plugins/baseldap.py:498
#, python-format
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:438
+#: ipalib/plugins/baseldap.py:499
#, python-format
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:439
+#: ipalib/plugins/baseldap.py:500
#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:726
+#: ipalib/plugins/baseldap.py:761
msgid ""
"Set an attribute to a name/value pair. Format is attr=value.\n"
"For multi-valued attributes, the command replaces the values already present."
msgstr ""
-#: ipalib/plugins/baseldap.py:732
+#: ipalib/plugins/baseldap.py:767
msgid ""
"Add an attribute/value pair. Format is attr=value. The attribute\n"
"must be part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:738
+#: ipalib/plugins/baseldap.py:773
msgid ""
"Delete an attribute/value pair. The option will be evaluated\n"
"last, after all sets and adds."
msgstr ""
-#: ipalib/plugins/baseldap.py:1062
+#: ipalib/plugins/baseldap.py:801
+msgid "attribute is not configurable"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:892
+msgid "No such attribute on this entry"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1141
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:1087 ipalib/plugins/baseldap.py:1159
-#: ipalib/plugins/internal.py:437
+#: ipalib/plugins/baseldap.py:1166 ipalib/plugins/baseldap.py:1226
+#: ipalib/plugins/internal.py:487
msgid "Rights"
msgstr ""
-#: ipalib/plugins/baseldap.py:1088 ipalib/plugins/baseldap.py:1160
+#: ipalib/plugins/baseldap.py:1167 ipalib/plugins/baseldap.py:1227
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
msgstr ""
-#: ipalib/plugins/baseldap.py:1169
+#: ipalib/plugins/baseldap.py:1236
msgid "Rename"
msgstr ""
-#: ipalib/plugins/baseldap.py:1170
+#: ipalib/plugins/baseldap.py:1237
#, python-format
msgid "Rename the %(ldap_obj_name)s object"
msgstr ""
-#: ipalib/plugins/baseldap.py:1262
+#: ipalib/plugins/baseldap.py:1313
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:1387 ipalib/plugins/baseldap.py:1889
+#: ipalib/plugins/baseldap.py:1423 ipalib/plugins/baseldap.py:1867
#, python-format
msgid "comma-separated list of %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1399
+#: ipalib/plugins/baseldap.py:1435
#, python-format
msgid "member %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1429 ipalib/plugins/baseldap.py:1914
+#: ipalib/plugins/baseldap.py:1465 ipalib/plugins/baseldap.py:1892
#, python-format
msgid "comma-separated list of %s to add"
msgstr ""
-#: ipalib/plugins/baseldap.py:1437 ipalib/plugins/baseldap.py:1926
-#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178
+#: ipalib/plugins/baseldap.py:1473 ipalib/plugins/baseldap.py:1904
+#: ipalib/plugins/privilege.py:150 ipalib/plugins/privilege.py:175
#: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187
msgid "Members that could not be added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1441 ipalib/plugins/baseldap.py:1930
+#: ipalib/plugins/baseldap.py:1477 ipalib/plugins/baseldap.py:1908
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1535 ipalib/plugins/baseldap.py:2027
+#: ipalib/plugins/baseldap.py:1554 ipalib/plugins/baseldap.py:1988
#, python-format
msgid "comma-separated list of %s to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:1542 ipalib/plugins/baseldap.py:2039
+#: ipalib/plugins/baseldap.py:1561 ipalib/plugins/baseldap.py:2000
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1546 ipalib/plugins/baseldap.py:2043
+#: ipalib/plugins/baseldap.py:1565 ipalib/plugins/baseldap.py:2004
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1642
+#: ipalib/plugins/baseldap.py:1644
msgid "Primary key only"
msgstr ""
-#: ipalib/plugins/baseldap.py:1643
+#: ipalib/plugins/baseldap.py:1645
#, python-format
msgid "Results should contain primary key attribute only (\"%s\")"
msgstr ""
-#: ipalib/plugins/baseldap.py:1651
+#: ipalib/plugins/baseldap.py:1653
#, python-format
msgid ""
"Search for %(searched_object)s with these %(relationship)s %(ldap_object)s."
msgstr ""
-#: ipalib/plugins/baseldap.py:1652
+#: ipalib/plugins/baseldap.py:1654
#, python-format
msgid ""
"Search for %(searched_object)s without these %(relationship)s "
"%(ldap_object)s."
msgstr ""
-#: ipalib/plugins/baseldap.py:1660
+#: ipalib/plugins/baseldap.py:1663
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1661
+#: ipalib/plugins/baseldap.py:1664
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:1667 ipalib/plugins/hbactest.py:214
+#: ipalib/plugins/baseldap.py:1670 ipalib/plugins/hbactest.py:214
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1668
+#: ipalib/plugins/baseldap.py:1671
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/baseldap.py:1681
+#: ipalib/plugins/baseldap.py:1684
msgid "A string searched in all relevant object attributes"
msgstr ""
-#: ipalib/plugins/baseldap.py:1988
+#: ipalib/plugins/baseldap.py:1955
msgid "added"
msgstr ""
-#: ipalib/plugins/baseldap.py:2101
+#: ipalib/plugins/baseldap.py:2051
msgid "removed"
msgstr ""
@@ -1852,7 +1912,7 @@ msgstr ""
msgid "CSR"
msgstr ""
-#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:228
+#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:244
msgid "Principal"
msgstr ""
@@ -1864,113 +1924,117 @@ msgstr ""
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439
-#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:323
-#: ipalib/plugins/internal.py:348 ipalib/plugins/service.py:235
+#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:434
+#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:283
+#: ipalib/plugins/internal.py:386 ipalib/plugins/service.py:251
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442
-#: ipalib/plugins/host.py:195 ipalib/plugins/service.py:94
+#: ipalib/plugins/cert.py:239 ipalib/plugins/cert.py:437
+#: ipalib/plugins/host.py:149 ipalib/plugins/service.py:94
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445
-#: ipalib/plugins/host.py:201 ipalib/plugins/service.py:100
+#: ipalib/plugins/cert.py:242 ipalib/plugins/cert.py:440
+#: ipalib/plugins/host.py:158 ipalib/plugins/service.py:103
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448
-#: ipalib/plugins/host.py:204 ipalib/plugins/service.py:103
+#: ipalib/plugins/cert.py:245 ipalib/plugins/cert.py:443
+#: ipalib/plugins/host.py:161 ipalib/plugins/service.py:106
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451
-#: ipalib/plugins/host.py:207 ipalib/plugins/service.py:106
+#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:446
+#: ipalib/plugins/host.py:164 ipalib/plugins/service.py:109
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454
-#: ipalib/plugins/host.py:210 ipalib/plugins/service.py:109
+#: ipalib/plugins/cert.py:251 ipalib/plugins/cert.py:449
+#: ipalib/plugins/host.py:167 ipalib/plugins/service.py:112
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457
-#: ipalib/plugins/host.py:213 ipalib/plugins/service.py:112
+#: ipalib/plugins/cert.py:254 ipalib/plugins/cert.py:452
+#: ipalib/plugins/host.py:170 ipalib/plugins/service.py:115
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:264 ipalib/plugins/cert.py:427
+#: ipalib/plugins/cert.py:257 ipalib/plugins/cert.py:422
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:272 ipalib/plugins/entitle.py:230
-#: ipalib/plugins/entitle.py:583 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:458
+msgid "Serial number (hex)"
+msgstr ""
+
+#: ipalib/plugins/cert.py:267 ipalib/plugins/entitle.py:230
+#: ipalib/plugins/entitle.py:584 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:400
+#: ipalib/plugins/cert.py:395
msgid "Check the status of a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:404
+#: ipalib/plugins/cert.py:399
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:410
+#: ipalib/plugins/cert.py:405
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:428
+#: ipalib/plugins/cert.py:423
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:433
+#: ipalib/plugins/cert.py:428
msgid "Retrieve an existing certificate."
msgstr ""
-#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:216
-#: ipalib/plugins/service.py:115
+#: ipalib/plugins/cert.py:455 ipalib/plugins/host.py:173
+#: ipalib/plugins/service.py:118
msgid "Revocation reason"
msgstr ""
-#: ipalib/plugins/cert.py:466
+#: ipalib/plugins/cert.py:464
msgid "Output filename"
msgstr ""
-#: ipalib/plugins/cert.py:467
+#: ipalib/plugins/cert.py:465
msgid "File to store the certificate in."
msgstr ""
-#: ipalib/plugins/cert.py:518
+#: ipalib/plugins/cert.py:516
msgid "Revoke a certificate."
msgstr ""
-#: ipalib/plugins/cert.py:524
+#: ipalib/plugins/cert.py:522
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:532
+#: ipalib/plugins/cert.py:530
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:533
+#: ipalib/plugins/cert.py:531
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:554
+#: ipalib/plugins/cert.py:552
msgid "7 is not a valid revocation reason"
msgstr ""
-#: ipalib/plugins/cert.py:563
+#: ipalib/plugins/cert.py:561
msgid "Take a revoked certificate off hold."
msgstr ""
-#: ipalib/plugins/cert.py:569
+#: ipalib/plugins/cert.py:567
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:229
+#: ipalib/plugins/cert.py:570 ipalib/plugins/internal.py:248
msgid "Error"
msgstr ""
@@ -2141,57 +2205,57 @@ msgstr ""
msgid "Extra hashes to generate in password plug-in"
msgstr ""
-#: ipalib/plugins/config.py:184
+#: ipalib/plugins/config.py:185
msgid "SELinux user map order"
msgstr ""
-#: ipalib/plugins/config.py:185
+#: ipalib/plugins/config.py:186
msgid "Order in increasing priority of SELinux users, delimited by $"
msgstr ""
-#: ipalib/plugins/config.py:188
+#: ipalib/plugins/config.py:189
msgid "Default SELinux user"
msgstr ""
-#: ipalib/plugins/config.py:189
+#: ipalib/plugins/config.py:190
msgid "Default SELinux user when no match is found in SELinux map rule"
msgstr ""
-#: ipalib/plugins/config.py:200
+#: ipalib/plugins/config.py:201
msgid "Modify configuration options."
msgstr ""
-#: ipalib/plugins/config.py:208
+#: ipalib/plugins/config.py:209
msgid "The group doesn't exist"
msgstr ""
-#: ipalib/plugins/config.py:223
+#: ipalib/plugins/config.py:224
#, python-format
msgid "attribute \"%s\" not allowed"
msgstr ""
-#: ipalib/plugins/config.py:231
+#: ipalib/plugins/config.py:232
msgid "May not be empty"
msgstr ""
-#: ipalib/plugins/config.py:244
+#: ipalib/plugins/config.py:250
#, python-format
msgid "%(obj)s default attribute %(attr)s would not be allowed!"
msgstr ""
-#: ipalib/plugins/config.py:249
+#: ipalib/plugins/config.py:255
msgid "SELinux user map default user may not be empty"
msgstr ""
-#: ipalib/plugins/config.py:270
+#: ipalib/plugins/config.py:276
msgid "Default SELinux user map default user not in order list"
msgstr ""
-#: ipalib/plugins/config.py:278
+#: ipalib/plugins/config.py:284
msgid "Show the current configuration."
msgstr ""
-#: ipalib/plugins/delegation.py:30
+#: ipalib/plugins/delegation.py:29
msgid ""
"\n"
"Group to Group Delegation\n"
@@ -2221,99 +2285,140 @@ msgid ""
" ipa delegation-del \"managers edit employees' street\"\n"
msgstr ""
-#: ipalib/plugins/delegation.py:70
+#: ipalib/plugins/delegation.py:69
msgid "delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:71
+#: ipalib/plugins/delegation.py:70
msgid "delegations"
msgstr ""
-#: ipalib/plugins/delegation.py:72
+#: ipalib/plugins/delegation.py:71
msgid "Delegations"
msgstr ""
-#: ipalib/plugins/delegation.py:73
+#: ipalib/plugins/delegation.py:72
msgid "Delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:78 ipalib/plugins/delegation.py:79
+#: ipalib/plugins/delegation.py:77 ipalib/plugins/delegation.py:78
msgid "Delegation name"
msgstr ""
-#: ipalib/plugins/delegation.py:85 ipalib/plugins/selfservice.py:84
+#: ipalib/plugins/delegation.py:84 ipalib/plugins/selfservice.py:86
msgid ""
"Comma-separated list of permissions to grant (read, write). Default is write."
msgstr ""
-#: ipalib/plugins/delegation.py:98
+#: ipalib/plugins/delegation.py:97
msgid "Member user group"
msgstr ""
-#: ipalib/plugins/delegation.py:99
+#: ipalib/plugins/delegation.py:98
msgid "User group to apply delegation to"
msgstr ""
-#: ipalib/plugins/delegation.py:132
+#: ipalib/plugins/delegation.py:131
msgid "Add a new delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:134
+#: ipalib/plugins/delegation.py:133
#, python-format
msgid "Added delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:153
+#: ipalib/plugins/delegation.py:152
msgid "Delete a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:156
+#: ipalib/plugins/delegation.py:155
#, python-format
msgid "Deleted delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:171
+#: ipalib/plugins/delegation.py:170
msgid "Modify a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:173
+#: ipalib/plugins/delegation.py:172
#, python-format
msgid "Modified delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:190
+#: ipalib/plugins/delegation.py:189
msgid "Search for delegations."
msgstr ""
-#: ipalib/plugins/delegation.py:193
+#: ipalib/plugins/delegation.py:192
#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/delegation.py:216
+#: ipalib/plugins/delegation.py:215
msgid "Display information about a delegation."
msgstr ""
-#: ipalib/plugins/dns.py:36
+#: ipalib/plugins/dns.py:40
msgid ""
"\n"
"Domain Name System (DNS)\n"
"\n"
"Manage DNS zone and resource records.\n"
"\n"
+"\n"
+"USING STRUCTURED PER-TYPE OPTIONS\n"
+"\n"
+"There are many structured DNS RR types where DNS data stored in LDAP server\n"
+"is not just a scalar value, for example an IP address or a domain name, but\n"
+"a data structure which may be often complex. A good example is a LOC record\n"
+"[RFC1876] which consists of many mandatory and optional parts (degrees,\n"
+"minutes, seconds of latitude and longitude, altitude or precision).\n"
+"\n"
+"It may be difficult to manipulate such DNS records without making a mistake\n"
+"and entering an invalid value. DNS module provides an abstraction over "
+"these\n"
+"raw records and allows to manipulate each RR type with specific options. "
+"For\n"
+"each supported RR type, DNS module provides a standard option to manipulate\n"
+"a raw records with format --<rrtype>-rec, e.g. --mx-rec, and special "
+"options\n"
+"for every part of the RR structure with format --<rrtype>-<partname>, e.g.\n"
+"--mx-preference and --mx-exchanger.\n"
+"\n"
+"When adding a record, either RR specific options or standard option for a "
+"raw\n"
+"value can be used, they just should not be combined in one add operation. "
+"When\n"
+"modifying an existing entry, new RR specific options can be used to change\n"
+"one part of a DNS record, where the standard option for raw value is used\n"
+"to specify the modified value. The following example demonstrates\n"
+"a modification of MX record preference form 0 to 1 in a record without\n"
+"modifying the exchanger:\n"
+"ipa dnsrecord-mod --mx-rec=\"0 mx.example.com.\" --mx-preference=1\n"
+"\n"
+"\n"
"EXAMPLES:\n"
"\n"
" Add new zone:\n"
" ipa dnszone-add example.com --name-server=nameserver.example.com \\\n"
" --admin-email=admin@example.com\n"
"\n"
+" Add system permission that can be used for per-zone privilege delegation:\n"
+" ipa dnszone-add-permission example.com\n"
+"\n"
" Modify the zone to allow dynamic updates for hosts own records in realm "
"EXAMPLE.COM:\n"
-" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n"
-" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM "
-"krb5-self * AAAA;\"\n"
+" ipa dnszone-mod example.com --dynamic-update=TRUE\n"
+"\n"
+" This is the equivalent of:\n"
+" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n"
+" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM "
+"krb5-self * AAAA; grant EXAMPLE.COM krb5-self * SSHFP;\"\n"
+"\n"
+" Modify the zone to allow zone transfers for local network only:\n"
+" ipa dnszone-mod example.com --allow-transfer=10.0.0.0/8\n"
"\n"
" Add new reverse zone specified by network IP address:\n"
" ipa dnszone-add --name-from-ip=80.142.15.0/24 \\\n"
@@ -2349,8 +2454,12 @@ msgid ""
" ipa dnsrecord-add example.com @ --loc-rec=\"49 11 42.4 N 16 36 29.6 E "
"227.64m\"\n"
"\n"
-" Add new A record for www.example.com: (random IP)\n"
-" ipa dnsrecord-add example.com www --a-rec=80.142.15.2\n"
+" Add new A record for www.example.com. Create a reverse record in "
+"appropriate\n"
+" reverse zone as well. In this case a PTR record \"2\" pointing to www."
+"example.com.\n"
+" will be created in zone 15.142.80.in-addr.arpa.\n"
+" ipa dnsrecord-add example.com www --a-rec=80.142.15.2 --a-create-reverse\n"
"\n"
" Add new PTR record for www.example.com\n"
" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec=www.example.com.\n"
@@ -2373,7 +2482,7 @@ msgid ""
" SRV record: 0 3 389 fast.example.com, 0 1 389 slow.example.com, 1 1 389 "
"backup.example.com\n"
"\n"
-" Modify SRV record '0 3 389 fast.example.com'? Yes/No (default No): \n"
+" Modify SRV record '0 3 389 fast.example.com'? Yes/No (default No):\n"
" Modify SRV record '0 1 389 slow.example.com'? Yes/No (default No): y\n"
" SRV Priority [0]: (keep the default value)\n"
" SRV Weight [1]: 2 (modified value)\n"
@@ -2417,6 +2526,14 @@ msgid ""
" Show records for resource www in zone example.com\n"
" ipa dnsrecord-show example.com www\n"
"\n"
+" Forward all request for a zone external.com to another nameserver using\n"
+" a \"first\" policy (it will send the queries to the selected forwarder and "
+"if\n"
+" not answered it will use global resolvers):\n"
+" ipa dnszone-add external.com\n"
+" ipa dnszone-mod external.com --forwarder=10.20.0.1 \\\n"
+" --forward-policy=first\n"
+"\n"
" Delete zone example.com with all resource records:\n"
" ipa dnszone-del example.com\n"
"\n"
@@ -2424,198 +2541,266 @@ msgid ""
" if one is not included):\n"
" ipa dns-resolve www.example.com\n"
" ipa dns-resolve www\n"
+"\n"
+"\n"
+"GLOBAL DNS CONFIGURATION\n"
+"\n"
+"DNS configuration passed to command line install script is stored in a "
+"local\n"
+"configuration file on each IPA server where DNS service is configured. "
+"These\n"
+"local settings can be overridden with a common configuration stored in LDAP\n"
+"server:\n"
+"\n"
+" Show global DNS configuration:\n"
+" ipa dnsconfig-show\n"
+"\n"
+" Modify global DNS configuration and set a list of global forwarders:\n"
+" ipa dnsconfig-mod --forwarder=10.0.0.1\n"
msgstr ""
-#: ipalib/plugins/dns.py:203
+#: ipalib/plugins/dns.py:273
#, python-format
msgid "invalid IP address version (is %(value)d, must be %(required_value)d)!"
msgstr ""
-#: ipalib/plugins/dns.py:206
+#: ipalib/plugins/dns.py:276
msgid "invalid IP address format"
msgstr ""
-#: ipalib/plugins/dns.py:219
+#: ipalib/plugins/dns.py:289
msgid "invalid IP network format"
msgstr ""
-#: ipalib/plugins/dns.py:228 ipalib/plugins/dns.py:237
+#: ipalib/plugins/dns.py:298
+msgid "each ACL element must be terminated with a semicolon"
+msgstr ""
+
+#: ipalib/plugins/dns.py:307
+#, python-format
+msgid "ACL name \"%s\" is not supported"
+msgstr ""
+
+#: ipalib/plugins/dns.py:318
+msgid "invalid address format"
+msgstr ""
+
+#: ipalib/plugins/dns.py:360 ipalib/plugins/dns.py:403
#, python-format
msgid "invalid domain-name: %s"
msgstr ""
-#: ipalib/plugins/dns.py:254
+#: ipalib/plugins/dns.py:389
+#, python-format
+msgid "%(port)s is not a valid port"
+msgstr ""
+
+#: ipalib/plugins/dns.py:465
+#, python-format
+msgid "DNS reverse zone for IP address %(addr)s not found"
+msgstr ""
+
+#: ipalib/plugins/dns.py:477
+#, python-format
+msgid "DNS zone %(zone)s not found"
+msgstr ""
+
+#: ipalib/plugins/dns.py:491
+#, python-format
+msgid "IP address %(ip)s is already assigned in domain %(domain)s."
+msgstr ""
+
+#: ipalib/plugins/dns.py:504
+#, python-format
+msgid ""
+"Reverse record for IP address %(ip)s already exists in reverse zone %(zone)s."
+msgstr ""
+
+#: ipalib/plugins/dns.py:540
#, python-format
msgid "%s record"
msgstr ""
-#: ipalib/plugins/dns.py:256
+#: ipalib/plugins/dns.py:542
#, python-format
msgid "Comma-separated list of raw %s records"
msgstr ""
-#: ipalib/plugins/dns.py:257
+#: ipalib/plugins/dns.py:543
#, python-format
msgid "%s Record"
msgstr ""
-#: ipalib/plugins/dns.py:258
+#: ipalib/plugins/dns.py:544
#, python-format
msgid "(see RFC %s for details)"
msgstr ""
-#: ipalib/plugins/dns.py:313
+#: ipalib/plugins/dns.py:600
#, python-format
msgid "'%s' is a required part of DNS record"
msgstr ""
-#: ipalib/plugins/dns.py:320
+#: ipalib/plugins/dns.py:607
msgid "Invalid number of parts!"
msgstr ""
-#: ipalib/plugins/dns.py:375
+#: ipalib/plugins/dns.py:662
#, python-format
msgid "DNS RR type \"%s\" is not supported by bind-dyndb-ldap plugin"
msgstr ""
-#: ipalib/plugins/dns.py:391
+#: ipalib/plugins/dns.py:678
#, python-format
msgid "format must be specified as \"%(format)s\" %(rfcs)s"
msgstr ""
-#: ipalib/plugins/dns.py:462 ipalib/plugins/dns.py:485
-#: ipalib/plugins/host.py:419
+#: ipalib/plugins/dns.py:813
+msgid "Create reverse"
+msgstr ""
+
+#: ipalib/plugins/dns.py:814
+msgid "Create reverse record for this IP Address"
+msgstr ""
+
+#: ipalib/plugins/dns.py:847
+#, python-format
+msgid "Cannot create reverse record for \"%(value)s\": %(exc)s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:856 ipalib/plugins/dns.py:879
+#: ipalib/plugins/host.py:377
msgid "IP Address"
msgstr ""
-#: ipalib/plugins/dns.py:471 ipalib/plugins/dns.py:1082
+#: ipalib/plugins/dns.py:865 ipalib/plugins/dns.py:1476
msgid "Record data"
msgstr ""
-#: ipalib/plugins/dns.py:494
+#: ipalib/plugins/dns.py:888
msgid "Subtype"
msgstr ""
-#: ipalib/plugins/dns.py:500 ipalib/plugins/dns.py:539
-#: ipalib/plugins/dns.py:792 ipalib/plugins/dns.py:889
-#: ipalib/plugins/dns.py:2050
+#: ipalib/plugins/dns.py:894 ipalib/plugins/dns.py:933
+#: ipalib/plugins/dns.py:1186 ipalib/plugins/dns.py:1283
+#: ipalib/plugins/dns.py:2750
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:514
+#: ipalib/plugins/dns.py:908
msgid "Certificate Type"
msgstr ""
-#: ipalib/plugins/dns.py:519 ipalib/plugins/dns.py:574
-#: ipalib/plugins/dns.py:972
+#: ipalib/plugins/dns.py:913 ipalib/plugins/dns.py:968
+#: ipalib/plugins/dns.py:1366
msgid "Key Tag"
msgstr ""
-#: ipalib/plugins/dns.py:524 ipalib/plugins/dns.py:579
-#: ipalib/plugins/dns.py:613 ipalib/plugins/dns.py:950
-#: ipalib/plugins/dns.py:998
+#: ipalib/plugins/dns.py:918 ipalib/plugins/dns.py:973
+#: ipalib/plugins/dns.py:1007 ipalib/plugins/dns.py:1344
+#: ipalib/plugins/dns.py:1392
msgid "Algorithm"
msgstr ""
-#: ipalib/plugins/dns.py:529
+#: ipalib/plugins/dns.py:923
msgid "Certificate/CRL"
msgstr ""
-#: ipalib/plugins/dns.py:540
+#: ipalib/plugins/dns.py:934
msgid "A hostname which this alias hostname points to"
msgstr ""
-#: ipalib/plugins/dns.py:560 ipalib/plugins/dns.py:926
-#: ipalib/plugins/internal.py:438
+#: ipalib/plugins/dns.py:954 ipalib/plugins/dns.py:1320
+#: ipalib/plugins/internal.py:488
msgid "Target"
msgstr ""
-#: ipalib/plugins/dns.py:584
+#: ipalib/plugins/dns.py:978
msgid "Digest Type"
msgstr ""
-#: ipalib/plugins/dns.py:589
+#: ipalib/plugins/dns.py:983
msgid "Digest"
msgstr ""
-#: ipalib/plugins/dns.py:603 ipalib/plugins/dns.py:868
+#: ipalib/plugins/dns.py:997 ipalib/plugins/dns.py:1262
msgid "Flags"
msgstr ""
-#: ipalib/plugins/dns.py:608
+#: ipalib/plugins/dns.py:1002
msgid "Protocol"
msgstr ""
-#: ipalib/plugins/dns.py:618
+#: ipalib/plugins/dns.py:1012
msgid "Public Key"
msgstr ""
-#: ipalib/plugins/dns.py:632 ipalib/plugins/dns.py:773
-#: ipalib/plugins/dns.py:862
+#: ipalib/plugins/dns.py:1026 ipalib/plugins/dns.py:1167
+#: ipalib/plugins/dns.py:1256
msgid "Preference"
msgstr ""
-#: ipalib/plugins/dns.py:633 ipalib/plugins/dns.py:774
+#: ipalib/plugins/dns.py:1027 ipalib/plugins/dns.py:1168
msgid "Preference given to this exchanger. Lower values are more preferred"
msgstr ""
-#: ipalib/plugins/dns.py:639 ipalib/plugins/dns.py:780
+#: ipalib/plugins/dns.py:1033 ipalib/plugins/dns.py:1174
msgid "Exchanger"
msgstr ""
-#: ipalib/plugins/dns.py:640
+#: ipalib/plugins/dns.py:1034
msgid "A host willing to act as a key exchanger"
msgstr ""
-#: ipalib/plugins/dns.py:649
+#: ipalib/plugins/dns.py:1043
msgid "Degrees Latitude"
msgstr ""
-#: ipalib/plugins/dns.py:654
+#: ipalib/plugins/dns.py:1048
msgid "Minutes Latitude"
msgstr ""
-#: ipalib/plugins/dns.py:659
+#: ipalib/plugins/dns.py:1053
msgid "Seconds Latitude"
msgstr ""
-#: ipalib/plugins/dns.py:665
+#: ipalib/plugins/dns.py:1059
msgid "Direction Latitude"
msgstr ""
-#: ipalib/plugins/dns.py:669
-msgid "Degrees Longtitude"
+#: ipalib/plugins/dns.py:1063
+msgid "Degrees Longitude"
msgstr ""
-#: ipalib/plugins/dns.py:674
-msgid "Minutes Longtitude"
+#: ipalib/plugins/dns.py:1068
+msgid "Minutes Longitude"
msgstr ""
-#: ipalib/plugins/dns.py:679
-msgid "Seconds Longtitude"
+#: ipalib/plugins/dns.py:1073
+msgid "Seconds Longitude"
msgstr ""
-#: ipalib/plugins/dns.py:685
-msgid "Direction Longtitude"
+#: ipalib/plugins/dns.py:1079
+msgid "Direction Longitude"
msgstr ""
-#: ipalib/plugins/dns.py:689
+#: ipalib/plugins/dns.py:1083
msgid "Altitude"
msgstr ""
-#: ipalib/plugins/dns.py:695
+#: ipalib/plugins/dns.py:1089
msgid "Size"
msgstr ""
-#: ipalib/plugins/dns.py:701
+#: ipalib/plugins/dns.py:1095
msgid "Horizontal Precision"
msgstr ""
-#: ipalib/plugins/dns.py:707
+#: ipalib/plugins/dns.py:1101
msgid "Vertical Precision"
msgstr ""
-#: ipalib/plugins/dns.py:714
+#: ipalib/plugins/dns.py:1108
msgid ""
"format must be specified as\n"
" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz"
@@ -2630,418 +2815,495 @@ msgid ""
" See RFC 1876 for details"
msgstr ""
-#: ipalib/plugins/dns.py:763
+#: ipalib/plugins/dns.py:1157
#, python-format
msgid "'%(required)s' must not be empty when '%(name)s' is set"
msgstr ""
-#: ipalib/plugins/dns.py:781
+#: ipalib/plugins/dns.py:1175
msgid "A host willing to act as a mail exchanger"
msgstr ""
-#: ipalib/plugins/dns.py:799
+#: ipalib/plugins/dns.py:1193
msgid ""
"format must be specified as \"NEXT TYPE1 [TYPE2 [TYPE3 [...]]]\" (see RFC "
"4034 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:806
+#: ipalib/plugins/dns.py:1200
msgid "Next Domain Name"
msgstr ""
-#: ipalib/plugins/dns.py:809
+#: ipalib/plugins/dns.py:1203
msgid "Type Map"
msgstr ""
-#: ipalib/plugins/dns.py:849
+#: ipalib/plugins/dns.py:1243
msgid "flags must be one of \"S\", \"A\", \"U\", or \"P\""
msgstr ""
-#: ipalib/plugins/dns.py:857
+#: ipalib/plugins/dns.py:1251
msgid "Order"
msgstr ""
-#: ipalib/plugins/dns.py:872 ipalib/plugins/hbactest.py:194
-#: ipalib/plugins/internal.py:466 ipalib/plugins/service.py:223
+#: ipalib/plugins/dns.py:1266 ipalib/plugins/hbactest.py:194
+#: ipalib/plugins/internal.py:516 ipalib/plugins/service.py:239
msgid "Service"
msgstr ""
-#: ipalib/plugins/dns.py:875
+#: ipalib/plugins/dns.py:1269
msgid "Regular Expression"
msgstr ""
-#: ipalib/plugins/dns.py:878
+#: ipalib/plugins/dns.py:1272
msgid "Replacement"
msgstr ""
-#: ipalib/plugins/dns.py:890
+#: ipalib/plugins/dns.py:1284
msgid "The hostname this reverse record points to"
msgstr ""
-#: ipalib/plugins/dns.py:910 ipalib/plugins/pwpolicy.py:263
+#: ipalib/plugins/dns.py:1304 ipalib/plugins/pwpolicy.py:263
msgid "Priority"
msgstr ""
-#: ipalib/plugins/dns.py:915
+#: ipalib/plugins/dns.py:1309
msgid "Weight"
msgstr ""
-#: ipalib/plugins/dns.py:920
+#: ipalib/plugins/dns.py:1314
msgid "Port"
msgstr ""
-#: ipalib/plugins/dns.py:927
+#: ipalib/plugins/dns.py:1321
msgid ""
"The domain name of the target host or '.' if the service is decidedly not "
"available at this domain"
msgstr ""
-#: ipalib/plugins/dns.py:936
+#: ipalib/plugins/dns.py:1330
msgid "the value does not follow \"YYYYMMDDHHMMSS\" time format"
msgstr ""
-#: ipalib/plugins/dns.py:946
+#: ipalib/plugins/dns.py:1340
msgid "Type Covered"
msgstr ""
-#: ipalib/plugins/dns.py:955
+#: ipalib/plugins/dns.py:1349
msgid "Labels"
msgstr ""
-#: ipalib/plugins/dns.py:960
+#: ipalib/plugins/dns.py:1354
msgid "Original TTL"
msgstr ""
-#: ipalib/plugins/dns.py:965
+#: ipalib/plugins/dns.py:1359
msgid "Signature Expiration"
msgstr ""
-#: ipalib/plugins/dns.py:969
+#: ipalib/plugins/dns.py:1363
msgid "Signature Inception"
msgstr ""
-#: ipalib/plugins/dns.py:977
+#: ipalib/plugins/dns.py:1371
msgid "Signer's Name"
msgstr ""
-#: ipalib/plugins/dns.py:980
+#: ipalib/plugins/dns.py:1374
msgid "Signature"
msgstr ""
-#: ipalib/plugins/dns.py:1003
+#: ipalib/plugins/dns.py:1397
msgid "Fingerprint Type"
msgstr ""
-#: ipalib/plugins/dns.py:1008
+#: ipalib/plugins/dns.py:1402
msgid "Fingerprint"
msgstr ""
-#: ipalib/plugins/dns.py:1029
+#: ipalib/plugins/dns.py:1423
msgid "Text Data"
msgstr ""
-#: ipalib/plugins/dns.py:1076
+#: ipalib/plugins/dns.py:1470
msgid "Records"
msgstr ""
-#: ipalib/plugins/dns.py:1079
+#: ipalib/plugins/dns.py:1473
msgid "Record type"
msgstr ""
-#: ipalib/plugins/dns.py:1114
+#: ipalib/plugins/dns.py:1517
#, python-format
msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
msgstr ""
-#: ipalib/plugins/dns.py:1141
+#: ipalib/plugins/dns.py:1538
msgid "DNS zone"
msgstr ""
-#: ipalib/plugins/dns.py:1142
+#: ipalib/plugins/dns.py:1539
msgid "DNS zones"
msgstr ""
-#: ipalib/plugins/dns.py:1149
+#: ipalib/plugins/dns.py:1548
msgid "DNS Zones"
msgstr ""
-#: ipalib/plugins/dns.py:1150
+#: ipalib/plugins/dns.py:1549
msgid "DNS Zone"
msgstr ""
-#: ipalib/plugins/dns.py:1155
+#: ipalib/plugins/dns.py:1555
msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:1156
+#: ipalib/plugins/dns.py:1556
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:1162
+#: ipalib/plugins/dns.py:1562
msgid "Reverse zone IP network"
msgstr ""
-#: ipalib/plugins/dns.py:1163
+#: ipalib/plugins/dns.py:1563
msgid "IP network to create reverse zone name from"
msgstr ""
-#: ipalib/plugins/dns.py:1168
+#: ipalib/plugins/dns.py:1568
msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:1169
+#: ipalib/plugins/dns.py:1569
msgid "Authoritative nameserver domain name"
msgstr ""
-#: ipalib/plugins/dns.py:1174 ipalib/plugins/dns.py:1175
+#: ipalib/plugins/dns.py:1574 ipalib/plugins/dns.py:1575
msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:1181
+#: ipalib/plugins/dns.py:1581
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:1182
+#: ipalib/plugins/dns.py:1582
msgid "SOA record serial number"
msgstr ""
-#: ipalib/plugins/dns.py:1189
+#: ipalib/plugins/dns.py:1589
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:1190
+#: ipalib/plugins/dns.py:1590
msgid "SOA record refresh time"
msgstr ""
-#: ipalib/plugins/dns.py:1197
+#: ipalib/plugins/dns.py:1597
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:1198
+#: ipalib/plugins/dns.py:1598
msgid "SOA record retry time"
msgstr ""
-#: ipalib/plugins/dns.py:1205
+#: ipalib/plugins/dns.py:1605
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:1206
+#: ipalib/plugins/dns.py:1606
msgid "SOA record expire time"
msgstr ""
-#: ipalib/plugins/dns.py:1213
+#: ipalib/plugins/dns.py:1613
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:1214
+#: ipalib/plugins/dns.py:1614
msgid "How long should negative responses be cached"
msgstr ""
-#: ipalib/plugins/dns.py:1222
+#: ipalib/plugins/dns.py:1622
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:1223
+#: ipalib/plugins/dns.py:1623
msgid "SOA record time to live"
msgstr ""
-#: ipalib/plugins/dns.py:1227
+#: ipalib/plugins/dns.py:1627
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:1228
+#: ipalib/plugins/dns.py:1628
msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:1233 ipalib/plugins/dns.py:1234
+#: ipalib/plugins/dns.py:1633 ipalib/plugins/dns.py:1634
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:1238
+#: ipalib/plugins/dns.py:1640
msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:1239
+#: ipalib/plugins/dns.py:1641
msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:1245
+#: ipalib/plugins/dns.py:1647
msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:1246
+#: ipalib/plugins/dns.py:1648
msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:1257
+#: ipalib/plugins/dns.py:1657
+msgid "Allow query"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1658
+msgid ""
+"Semicolon separated list of IP addresses or networks which are allowed to "
+"issue queries"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1666
+msgid "Allow transfer"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1667
+msgid ""
+"Semicolon separated list of IP addresses or networks which are allowed to "
+"transfer the zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1674
+msgid "Zone forwarders"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1675
+msgid ""
+"A list of per-zone forwarders. A custom port can be specified for each "
+"forwarder using a standard format \"IP_ADDRESS port PORT\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:1681 ipalib/plugins/dns.py:2820
+msgid "Forward policy"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1686 ipalib/plugins/dns.py:2825
+msgid "Allow PTR sync"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1687
+msgid ""
+"Allow synchronization of forward (A, AAAA) and reverse (PTR) records in the "
+"zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1717
msgid "Create new DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:1261 ipalib/plugins/dns.py:1595
-#: ipalib/plugins/host.py:411 ipalib/plugins/service.py:252
+#: ipalib/plugins/dns.py:1721 ipalib/plugins/dns.py:2188
+#: ipalib/plugins/host.py:369 ipalib/plugins/permission.py:293
+#: ipalib/plugins/service.py:268
msgid "Force"
msgstr ""
-#: ipalib/plugins/dns.py:1262
+#: ipalib/plugins/dns.py:1722
msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:1265
+#: ipalib/plugins/dns.py:1725
msgid "Add the nameserver to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/dns.py:1278
+#: ipalib/plugins/dns.py:1731
msgid "DNS is not configured"
msgstr ""
-#: ipalib/plugins/dns.py:1288
+#: ipalib/plugins/dns.py:1741
msgid "Nameserver address is not a fully qualified domain name"
msgstr ""
-#: ipalib/plugins/dns.py:1314
+#: ipalib/plugins/dns.py:1767
msgid "Delete DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:1320
+#: ipalib/plugins/dns.py:1781
msgid "Modify DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:1333
+#: ipalib/plugins/dns.py:1787
msgid "Search for DNS zones (SOA records)."
msgstr ""
-#: ipalib/plugins/dns.py:1351
+#: ipalib/plugins/dns.py:1809
msgid "Forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:1353
+#: ipalib/plugins/dns.py:1811
msgid "Search for forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:1372
+#: ipalib/plugins/dns.py:1830
msgid "Display information about a DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:1378
+#: ipalib/plugins/dns.py:1836
msgid "Disable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:1381
+#: ipalib/plugins/dns.py:1839
#, python-format
msgid "Disabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:1399
+#: ipalib/plugins/dns.py:1857
msgid "Enable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:1402
+#: ipalib/plugins/dns.py:1860
#, python-format
msgid "Enabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:1425
+#: ipalib/plugins/dns.py:1877
+msgid "Add a permission for per-zone access delegation."
+msgstr ""
+
+#: ipalib/plugins/dns.py:1880
+#, python-format
+msgid "Added system permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:1913
+msgid "Remove a permission for per-zone access delegation."
+msgstr ""
+
+#: ipalib/plugins/dns.py:1916
+#, python-format
+msgid "Removed system permission \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:1947
msgid "DNS resource record"
msgstr ""
-#: ipalib/plugins/dns.py:1426
+#: ipalib/plugins/dns.py:1948
msgid "DNS resource records"
msgstr ""
-#: ipalib/plugins/dns.py:1430
+#: ipalib/plugins/dns.py:1953
msgid "DNS Resource Records"
msgstr ""
-#: ipalib/plugins/dns.py:1431
+#: ipalib/plugins/dns.py:1954
msgid "DNS Resource Record"
msgstr ""
-#: ipalib/plugins/dns.py:1436 ipalib/plugins/dns.py:1437
+#: ipalib/plugins/dns.py:1960 ipalib/plugins/dns.py:1961
msgid "Record name"
msgstr ""
-#: ipalib/plugins/dns.py:1442 ipalib/plugins/dns.py:1443
+#: ipalib/plugins/dns.py:1966 ipalib/plugins/dns.py:1967
msgid "Time to live"
msgstr ""
-#: ipalib/plugins/dns.py:1447
+#: ipalib/plugins/dns.py:1971
msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:1448
+#: ipalib/plugins/dns.py:1972
msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:1454
+#: ipalib/plugins/dns.py:1978
msgid "Structured"
msgstr ""
-#: ipalib/plugins/dns.py:1455
+#: ipalib/plugins/dns.py:1979
msgid "Parse all raw DNS records and return them in a structured way"
msgstr ""
-#: ipalib/plugins/dns.py:1480
+#: ipalib/plugins/dns.py:2008
#, python-format
msgid ""
"Reverse zone for PTR record should be a sub-zone of one the following fully "
"qualified domains: %s"
msgstr ""
-#: ipalib/plugins/dns.py:1485
+#: ipalib/plugins/dns.py:2014
#, python-format
msgid ""
"Reverse zone %(name)s requires exactly %(count)d IP address components, "
"%(user_count)d given"
msgstr ""
-#: ipalib/plugins/dns.py:1589
+#: ipalib/plugins/dns.py:2175
+msgid ""
+"CNAME record is not allowed to coexist with any other records except PTR"
+msgstr ""
+
+#: ipalib/plugins/dns.py:2182
msgid "Add new DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:1597
+#: ipalib/plugins/dns.py:2190
msgid "force NS record creation even if its hostname is not in DNS"
msgstr ""
-#: ipalib/plugins/dns.py:1623
+#: ipalib/plugins/dns.py:2227
msgid "Please choose a type of DNS resource record to be added"
msgstr ""
-#: ipalib/plugins/dns.py:1624
+#: ipalib/plugins/dns.py:2228
#, python-format
msgid "The most common types for this type of zone are: %s\n"
msgstr ""
-#: ipalib/plugins/dns.py:1629
+#: ipalib/plugins/dns.py:2233
msgid "DNS resource record type"
msgstr ""
-#: ipalib/plugins/dns.py:1642
+#: ipalib/plugins/dns.py:2249
+#, python-format
+msgid "Invalid or unsupported type. Allowed values are: %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:2276
#, python-format
-msgid "Invalid type. Allowed values are: %s"
+msgid "Raw value of a DNS record was already set by \"%(name)s\" option"
msgstr ""
-#: ipalib/plugins/dns.py:1707
+#: ipalib/plugins/dns.py:2372
msgid "Modify a DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:1744
+#: ipalib/plugins/dns.py:2388
+msgid "DNS zone root record cannot be renamed"
+msgstr ""
+
+#: ipalib/plugins/dns.py:2406
msgid "DNS records can be only updated one at a time"
msgstr ""
-#: ipalib/plugins/dns.py:1815
+#: ipalib/plugins/dns.py:2488
msgid "No option to modify specific record provided."
msgstr ""
-#: ipalib/plugins/dns.py:1818 ipalib/plugins/dns.py:1972
+#: ipalib/plugins/dns.py:2491 ipalib/plugins/dns.py:2661
msgid "Current DNS record contents:\n"
msgstr ""
-#: ipalib/plugins/dns.py:1840
+#: ipalib/plugins/dns.py:2513
#, python-format
msgid "Modify %(name)s '%(value)s'?"
msgstr ""
-#: ipalib/plugins/dns.py:1848
+#: ipalib/plugins/dns.py:2521
#, python-format
msgid ""
"%(count)d %(type)s record skipped. Only one value per DNS record type can be "
@@ -3052,65 +3314,107 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/dns.py:1860
+#: ipalib/plugins/dns.py:2533
#, python-format
msgid "Deleted record \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:1867
+#: ipalib/plugins/dns.py:2540
msgid "Delete DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:1869
+#: ipalib/plugins/dns.py:2542
msgid ""
"Neither --del-all nor options to delete a specific record provided.\n"
"Command help may be consulted for all supported record types."
msgstr ""
-#: ipalib/plugins/dns.py:1875
+#: ipalib/plugins/dns.py:2548
msgid "Delete all associated records"
msgstr ""
-#: ipalib/plugins/dns.py:1928
+#: ipalib/plugins/dns.py:2616
#, python-format
msgid "Zone record '%s' cannot be deleted"
msgstr ""
-#: ipalib/plugins/dns.py:1964
+#: ipalib/plugins/dns.py:2653
msgid "No option to delete specific record provided."
msgstr ""
-#: ipalib/plugins/dns.py:1965
+#: ipalib/plugins/dns.py:2654
msgid "Delete all?"
msgstr ""
-#: ipalib/plugins/dns.py:1993
+#: ipalib/plugins/dns.py:2682
#, python-format
msgid "Delete %(name)s '%(value)s'?"
msgstr ""
-#: ipalib/plugins/dns.py:2005
+#: ipalib/plugins/dns.py:2693
msgid "Display DNS resource."
msgstr ""
-#: ipalib/plugins/dns.py:2021
+#: ipalib/plugins/dns.py:2709
msgid "Search for DNS resources."
msgstr ""
-#: ipalib/plugins/dns.py:2043
+#: ipalib/plugins/dns.py:2743
msgid "Resolve a host name in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:2046
+#: ipalib/plugins/dns.py:2746
#, python-format
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:2072
+#: ipalib/plugins/dns.py:2763
#, python-format
msgid "Host '%(host)s' not found"
msgstr ""
+#: ipalib/plugins/dns.py:2800
+msgid "DNS configuration options"
+msgstr ""
+
+#: ipalib/plugins/dns.py:2806 ipalib/plugins/dns.py:2807
+msgid "DNS Global Configuration"
+msgstr ""
+
+#: ipalib/plugins/dns.py:2813
+msgid "Global forwarders"
+msgstr ""
+
+#: ipalib/plugins/dns.py:2814
+msgid ""
+"A list of global forwarders. A custom port can be specified for each "
+"forwarder using a standard format \"IP_ADDRESS port PORT\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:2826
+msgid "Allow synchronization of forward (A, AAAA) and reverse (PTR) records"
+msgstr ""
+
+#: ipalib/plugins/dns.py:2830
+msgid "Zone refresh interval"
+msgstr ""
+
+#: ipalib/plugins/dns.py:2831
+msgid "An interval between regular polls of the name server for new DNS zones"
+msgstr ""
+
+#: ipalib/plugins/dns.py:2847
+msgid "Global DNS configuration is empty"
+msgstr ""
+
+#: ipalib/plugins/dns.py:2853
+msgid "Modify global DNS configuration."
+msgstr ""
+
+#: ipalib/plugins/dns.py:2864
+msgid "Show the current global DNS configuration."
+msgstr ""
+
#: ipalib/plugins/entitle.py:52
msgid ""
"\n"
@@ -3168,25 +3472,25 @@ msgstr ""
msgid "Display current entitlements."
msgstr ""
-#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:597
+#: ipalib/plugins/entitle.py:214 ipalib/plugins/entitle.py:598
msgid "UUID"
msgstr ""
#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304
-#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570
-#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:361
+#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:571
+#: ipalib/plugins/entitle.py:684 ipalib/plugins/internal.py:399
msgid "Product"
msgstr ""
#: ipalib/plugins/entitle.py:220 ipalib/plugins/entitle.py:284
#: ipalib/plugins/entitle.py:294 ipalib/plugins/entitle.py:387
-#: ipalib/plugins/entitle.py:573 ipalib/plugins/entitle.py:673
+#: ipalib/plugins/entitle.py:574 ipalib/plugins/entitle.py:674
msgid "Quantity"
msgstr ""
#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307
-#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686
-#: ipalib/plugins/internal.py:352
+#: ipalib/plugins/entitle.py:577 ipalib/plugins/entitle.py:687
+#: ipalib/plugins/internal.py:390
msgid "Consumed"
msgstr ""
@@ -3203,21 +3507,21 @@ msgstr ""
msgid "Retrieve the entitlement certs."
msgstr ""
-#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:364
+#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:402
msgid "Start"
msgstr ""
-#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:355
+#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:393
msgid "End"
msgstr ""
-#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:198
-#: ipalib/plugins/internal.py:307 ipalib/plugins/service.py:97
+#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:152
+#: ipalib/plugins/internal.py:337 ipalib/plugins/service.py:97
msgid "Serial Number"
msgstr ""
-#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:621
-#: ipalib/plugins/entitle.py:623
+#: ipalib/plugins/entitle.py:431 ipalib/plugins/entitle.py:622
+#: ipalib/plugins/entitle.py:624
msgid "Not an entitlement certificate"
msgstr ""
@@ -3225,43 +3529,43 @@ msgstr ""
msgid "Search for entitlement accounts."
msgstr ""
-#: ipalib/plugins/entitle.py:468
+#: ipalib/plugins/entitle.py:469
msgid "Register to the entitlement system."
msgstr ""
-#: ipalib/plugins/entitle.py:472
+#: ipalib/plugins/entitle.py:473
msgid "Registered to entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:476
+#: ipalib/plugins/entitle.py:477 ipalib/plugins/internal.py:274
msgid "Username"
msgstr ""
-#: ipalib/plugins/entitle.py:483
+#: ipalib/plugins/entitle.py:484
msgid "Enrollment UUID (not implemented)"
msgstr ""
-#: ipalib/plugins/entitle.py:488
+#: ipalib/plugins/entitle.py:489
msgid "Registration password"
msgstr ""
-#: ipalib/plugins/entitle.py:566
+#: ipalib/plugins/entitle.py:567
msgid "Import an entitlement certificate."
msgstr ""
-#: ipalib/plugins/entitle.py:598
+#: ipalib/plugins/entitle.py:599
msgid "Enrollment UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:662
+#: ipalib/plugins/entitle.py:663
msgid "Re-sync the local entitlement cache with the entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:666
+#: ipalib/plugins/entitle.py:667
msgid "Entitlement(s) synchronized."
msgstr ""
-#: ipalib/plugins/group.py:26
+#: ipalib/plugins/group.py:32
msgid ""
"\n"
"Groups of users\n"
@@ -3313,119 +3617,175 @@ msgid ""
" ipa group-show localadmins\n"
msgstr ""
-#: ipalib/plugins/group.py:80
+#: ipalib/plugins/group.py:88 ipalib/plugins/group.py:188
+#: ipalib/plugins/group.py:376 ipalib/plugins/user.py:550
msgid "group"
msgstr ""
-#: ipalib/plugins/group.py:81
+#: ipalib/plugins/group.py:89
msgid "groups"
msgstr ""
-#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:195
-#: ipalib/plugins/selinuxusermap.py:184 ipalib/plugins/sudorule.py:147
+#: ipalib/plugins/group.py:108 ipalib/plugins/hbacrule.py:195
+#: ipalib/plugins/internal.py:481 ipalib/plugins/selinuxusermap.py:184
+#: ipalib/plugins/sudorule.py:159
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:101
+#: ipalib/plugins/group.py:109
msgid "User Group"
msgstr ""
-#: ipalib/plugins/group.py:109
+#: ipalib/plugins/group.py:117
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:116 ipalib/plugins/sudocmdgroup.py:79
+#: ipalib/plugins/group.py:124 ipalib/plugins/sudocmdgroup.py:79
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:264
+#: ipalib/plugins/group.py:128 ipalib/plugins/user.py:290
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:121
+#: ipalib/plugins/group.py:129
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:129
+#: ipalib/plugins/group.py:138
msgid "Create a new group."
msgstr ""
-#: ipalib/plugins/group.py:131
+#: ipalib/plugins/group.py:140
#, python-format
msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:136
+#: ipalib/plugins/group.py:145
msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:153
+#: ipalib/plugins/group.py:150
+msgid "Allow adding external non-IPA members from trusted domains"
+msgstr ""
+
+#: ipalib/plugins/group.py:174
msgid "Delete group."
msgstr ""
-#: ipalib/plugins/group.py:155
+#: ipalib/plugins/group.py:176
#, python-format
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:183
+#: ipalib/plugins/group.py:189
+msgid "privileged group"
+msgstr ""
+
+#: ipalib/plugins/group.py:206
msgid "Modify a group."
msgstr ""
-#: ipalib/plugins/group.py:185
+#: ipalib/plugins/group.py:208
#, python-format
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:190
+#: ipalib/plugins/group.py:213
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:222
+#: ipalib/plugins/group.py:217
+msgid "change to support external non-IPA members from trusted domains"
+msgstr ""
+
+#: ipalib/plugins/group.py:262
msgid "Search for groups."
msgstr ""
-#: ipalib/plugins/group.py:227
+#: ipalib/plugins/group.py:267
#, python-format
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/group.py:233
+#: ipalib/plugins/group.py:273
msgid "search for private groups"
msgstr ""
-#: ipalib/plugins/group.py:263
+#: ipalib/plugins/group.py:303
msgid "Display information about a named group."
msgstr ""
-#: ipalib/plugins/group.py:269
+#: ipalib/plugins/group.py:309
msgid "Add members to a group."
msgstr ""
-#: ipalib/plugins/group.py:275
+#: ipalib/plugins/group.py:314 ipalib/plugins/group.py:362
+msgid "External member"
+msgstr ""
+
+#: ipalib/plugins/group.py:315 ipalib/plugins/group.py:363
+msgid "comma-separated SIDs of members of a trusted domain"
+msgstr ""
+
+#: ipalib/plugins/group.py:325
+msgid "AD Trust"
+msgstr ""
+
+#: ipalib/plugins/group.py:326
+msgid ""
+"Cannot perform external member validation without Samba 4 support "
+"installed.\n"
+" Make sure you have installed server-trust-"
+"ad sub-package of IPA on the server"
+msgstr ""
+
+#: ipalib/plugins/group.py:330 ipalib/plugins/trust.py:164
+#: ipalib/plugins/trust.py:175 ipalib/plugins/trust.py:188
+#: ipalib/plugins/trust.py:193 ipalib/plugins/trust.py:199
+#: ipalib/plugins/trust.py:209
+msgid "AD Trust setup"
+msgstr ""
+
+#: ipalib/plugins/group.py:331
+msgid ""
+"Cannot perform join operation without own domain configured.\n"
+" Make sure you have run ipa-adtrust-install "
+"on the IPA server first"
+msgstr ""
+
+#: ipalib/plugins/group.py:341
+msgid "external member"
+msgstr ""
+
+#: ipalib/plugins/group.py:342
+msgid "values are not recognized as valid SIDs from trusted domain"
+msgstr ""
+
+#: ipalib/plugins/group.py:357
msgid "Remove members from a group."
msgstr ""
-#: ipalib/plugins/group.py:281
+#: ipalib/plugins/group.py:397
msgid "Detach a managed group from a user."
msgstr ""
-#: ipalib/plugins/group.py:284
+#: ipalib/plugins/group.py:400
#, python-format
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:305
+#: ipalib/plugins/group.py:421
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:311
+#: ipalib/plugins/group.py:427
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:330
+#: ipalib/plugins/group.py:446
msgid "Not a managed group"
msgstr ""
@@ -3505,7 +3865,7 @@ msgid "HBAC Rule"
msgstr ""
#: ipalib/plugins/hbacrule.py:140 ipalib/plugins/selinuxusermap.py:147
-#: ipalib/plugins/sudorule.py:101
+#: ipalib/plugins/sudorule.py:106
msgid "Rule name"
msgstr ""
@@ -3517,23 +3877,23 @@ msgstr ""
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbacrule.py:156 ipalib/plugins/netgroup.py:126
-#: ipalib/plugins/selinuxusermap.py:161 ipalib/plugins/sudorule.py:114
+#: ipalib/plugins/hbacrule.py:156 ipalib/plugins/netgroup.py:139
+#: ipalib/plugins/selinuxusermap.py:161 ipalib/plugins/sudorule.py:119
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:157 ipalib/plugins/netgroup.py:127
-#: ipalib/plugins/selinuxusermap.py:162 ipalib/plugins/sudorule.py:115
+#: ipalib/plugins/hbacrule.py:157 ipalib/plugins/netgroup.py:140
+#: ipalib/plugins/selinuxusermap.py:162 ipalib/plugins/sudorule.py:120
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:162 ipalib/plugins/netgroup.py:132
-#: ipalib/plugins/selinuxusermap.py:167 ipalib/plugins/sudorule.py:120
+#: ipalib/plugins/hbacrule.py:162 ipalib/plugins/netgroup.py:145
+#: ipalib/plugins/selinuxusermap.py:167 ipalib/plugins/sudorule.py:125
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:163 ipalib/plugins/netgroup.py:133
-#: ipalib/plugins/selinuxusermap.py:168 ipalib/plugins/sudorule.py:121
+#: ipalib/plugins/hbacrule.py:163 ipalib/plugins/netgroup.py:146
+#: ipalib/plugins/selinuxusermap.py:168 ipalib/plugins/sudorule.py:126
msgid "Host category the rule applies to"
msgstr ""
@@ -3553,23 +3913,26 @@ msgstr ""
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:187 ipalib/plugins/internal.py:542
-#: ipalib/plugins/selinuxusermap.py:176 ipalib/plugins/sudorule.py:109
+#: ipalib/plugins/hbacrule.py:187 ipalib/plugins/internal.py:611
+#: ipalib/plugins/selinuxusermap.py:176 ipalib/plugins/sudorule.py:114
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbacrule.py:191 ipalib/plugins/selinuxusermap.py:180
-#: ipalib/plugins/sudorule.py:143 ipalib/plugins/user.py:176
+#: ipalib/plugins/hbacrule.py:191 ipalib/plugins/internal.py:482
+#: ipalib/plugins/selinuxusermap.py:180 ipalib/plugins/sudorule.py:155
+#: ipalib/plugins/user.py:202
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbacrule.py:199 ipalib/plugins/host.py:269
-#: ipalib/plugins/selinuxusermap.py:188 ipalib/plugins/sudorule.py:151
+#: ipalib/plugins/hbacrule.py:199 ipalib/plugins/host.py:232
+#: ipalib/plugins/internal.py:476 ipalib/plugins/selinuxusermap.py:188
+#: ipalib/plugins/sudorule.py:163
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:203 ipalib/plugins/hostgroup.py:74
-#: ipalib/plugins/selinuxusermap.py:192 ipalib/plugins/sudorule.py:155
+#: ipalib/plugins/hbacrule.py:203 ipalib/plugins/hostgroup.py:75
+#: ipalib/plugins/internal.py:475 ipalib/plugins/selinuxusermap.py:192
+#: ipalib/plugins/sudorule.py:167
msgid "Host Groups"
msgstr ""
@@ -3581,8 +3944,8 @@ msgstr ""
msgid "Source Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:215 ipalib/plugins/internal.py:387
-#: ipalib/plugins/service.py:222
+#: ipalib/plugins/hbacrule.py:215 ipalib/plugins/internal.py:425
+#: ipalib/plugins/service.py:238
msgid "Services"
msgstr ""
@@ -3590,118 +3953,118 @@ msgstr ""
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:228
+#: ipalib/plugins/hbacrule.py:229
msgid "Create a new HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:230
+#: ipalib/plugins/hbacrule.py:231
#, python-format
msgid "Added HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:241
+#: ipalib/plugins/hbacrule.py:242
msgid "Delete an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:243
+#: ipalib/plugins/hbacrule.py:244
#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:257
+#: ipalib/plugins/hbacrule.py:258
msgid "Modify an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:259
+#: ipalib/plugins/hbacrule.py:260
#, python-format
msgid "Modified HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:268
+#: ipalib/plugins/hbacrule.py:269
msgid "user category cannot be set to 'all' while there are allowed users"
msgstr ""
-#: ipalib/plugins/hbacrule.py:270
+#: ipalib/plugins/hbacrule.py:271
msgid "host category cannot be set to 'all' while there are allowed hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:272
+#: ipalib/plugins/hbacrule.py:273
msgid ""
"sourcehost category cannot be set to 'all' while there are allowed "
"sourcehosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:274
+#: ipalib/plugins/hbacrule.py:275
msgid ""
"service category cannot be set to 'all' while there are allowed services"
msgstr ""
-#: ipalib/plugins/hbacrule.py:281
+#: ipalib/plugins/hbacrule.py:282
msgid "Search for HBAC rules."
msgstr ""
-#: ipalib/plugins/hbacrule.py:284
+#: ipalib/plugins/hbacrule.py:285
#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hbacrule.py:291
+#: ipalib/plugins/hbacrule.py:292
msgid "Display the properties of an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:297
+#: ipalib/plugins/hbacrule.py:298
msgid "Enable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:299
+#: ipalib/plugins/hbacrule.py:300
#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:324
+#: ipalib/plugins/hbacrule.py:325
msgid "Disable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:326
+#: ipalib/plugins/hbacrule.py:327
#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:358 ipalib/plugins/hbacrule.py:398
+#: ipalib/plugins/hbacrule.py:359 ipalib/plugins/hbacrule.py:399
msgid "Access time"
msgstr ""
-#: ipalib/plugins/hbacrule.py:432
+#: ipalib/plugins/hbacrule.py:433
msgid "Add users and groups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:451
+#: ipalib/plugins/hbacrule.py:452
msgid "Remove users and groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:460
+#: ipalib/plugins/hbacrule.py:461
msgid "Add target hosts and hostgroups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:479
+#: ipalib/plugins/hbacrule.py:480
msgid "Remove target hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:488
+#: ipalib/plugins/hbacrule.py:489
msgid "Add source hosts and hostgroups from a HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:510
+#: ipalib/plugins/hbacrule.py:511
msgid "Remove source hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:522
+#: ipalib/plugins/hbacrule.py:523
msgid "Add services to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:541
+#: ipalib/plugins/hbacrule.py:542
msgid "Remove service and service groups from an HBAC rule."
msgstr ""
@@ -4090,7 +4453,7 @@ msgstr ""
msgid "Access granted: %s"
msgstr ""
-#: ipalib/plugins/host.py:43
+#: ipalib/plugins/host.py:46
msgid ""
"\n"
"Hosts/Machines\n"
@@ -4150,215 +4513,206 @@ msgid ""
" ipa host-add-managedby --hosts=test2 test\n"
msgstr ""
-#: ipalib/plugins/host.py:105
-msgid "Fully-qualified hostname required"
-msgstr ""
-
-#: ipalib/plugins/host.py:146
-#, python-format
-msgid "DNS reverse zone for IP address %(addr)s not found"
+#: ipalib/plugins/host.py:140 ipalib/plugins/service.py:88
+msgid "Keytab"
msgstr ""
-#: ipalib/plugins/host.py:186 ipalib/plugins/service.py:88
-msgid "Keytab"
+#: ipalib/plugins/host.py:155 ipalib/plugins/internal.py:338
+#: ipalib/plugins/service.py:100
+msgid "Serial Number (hex)"
msgstr ""
-#: ipalib/plugins/host.py:236
+#: ipalib/plugins/host.py:199
msgid "host"
msgstr ""
-#: ipalib/plugins/host.py:237
+#: ipalib/plugins/host.py:200
msgid "hosts"
msgstr ""
-#: ipalib/plugins/host.py:270 ipalib/plugins/internal.py:454
+#: ipalib/plugins/host.py:233 ipalib/plugins/internal.py:474
+#: ipalib/plugins/internal.py:504
msgid "Host"
msgstr ""
-#: ipalib/plugins/host.py:278
+#: ipalib/plugins/host.py:238
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:285
+#: ipalib/plugins/host.py:245
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:289
+#: ipalib/plugins/host.py:249
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:290
+#: ipalib/plugins/host.py:250
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:295
+#: ipalib/plugins/host.py:255
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:299
+#: ipalib/plugins/host.py:259
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:300
+#: ipalib/plugins/host.py:260
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:304
+#: ipalib/plugins/host.py:264
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:305
+#: ipalib/plugins/host.py:265
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:309
+#: ipalib/plugins/host.py:269
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:310
+#: ipalib/plugins/host.py:270
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:313
+#: ipalib/plugins/host.py:273
msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:318 ipalib/plugins/user.py:252
+#: ipalib/plugins/host.py:278 ipalib/plugins/user.py:278
msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:324 ipalib/plugins/service.py:236
+#: ipalib/plugins/host.py:284 ipalib/plugins/service.py:252
msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:327 ipalib/plugins/host.py:666
+#: ipalib/plugins/host.py:287 ipalib/plugins/host.py:591
msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:335
+#: ipalib/plugins/host.py:295
msgid "MAC address"
msgstr ""
-#: ipalib/plugins/host.py:336
+#: ipalib/plugins/host.py:296
msgid "Hardware MAC address(es) on this host"
msgstr ""
-#: ipalib/plugins/host.py:340 ipalib/plugins/user.py:317
+#: ipalib/plugins/host.py:300 ipalib/plugins/user.py:344
msgid "Base-64 encoded SSH public key"
msgstr ""
-#: ipalib/plugins/host.py:344 ipalib/plugins/user.py:321
+#: ipalib/plugins/host.py:304 ipalib/plugins/user.py:348
msgid "SSH public key fingerprint"
msgstr ""
-#: ipalib/plugins/host.py:404
+#: ipalib/plugins/host.py:362
msgid "Add a new host."
msgstr ""
-#: ipalib/plugins/host.py:407
+#: ipalib/plugins/host.py:365
#, python-format
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:412
+#: ipalib/plugins/host.py:370
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:415
+#: ipalib/plugins/host.py:373
msgid "skip reverse DNS detection"
msgstr ""
-#: ipalib/plugins/host.py:418
+#: ipalib/plugins/host.py:376
msgid "Add the host to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/host.py:435 ipalib/plugins/host.py:597
-#: ipalib/plugins/host.py:757
-#, python-format
-msgid "DNS zone %(zone)s not found"
-msgstr ""
-
-#: ipalib/plugins/host.py:524
+#: ipalib/plugins/host.py:453
#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
msgstr ""
-#: ipalib/plugins/host.py:544
+#: ipalib/plugins/host.py:473
msgid "Delete a host."
msgstr ""
-#: ipalib/plugins/host.py:546
+#: ipalib/plugins/host.py:475
#, python-format
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:551
+#: ipalib/plugins/host.py:480
msgid "Remove entries from DNS"
msgstr ""
-#: ipalib/plugins/host.py:657
+#: ipalib/plugins/host.py:582
msgid "Modify information about a host."
msgstr ""
-#: ipalib/plugins/host.py:660
+#: ipalib/plugins/host.py:585
#, python-format
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:667
+#: ipalib/plugins/host.py:592
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:671
+#: ipalib/plugins/host.py:596
msgid "Update DNS entries"
msgstr ""
-#: ipalib/plugins/host.py:683
+#: ipalib/plugins/host.py:608
msgid "Password cannot be set on enrolled host."
msgstr ""
-#: ipalib/plugins/host.py:795
+#: ipalib/plugins/host.py:715
msgid "Search for hosts."
msgstr ""
-#: ipalib/plugins/host.py:799
+#: ipalib/plugins/host.py:719
#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/host.py:877
+#: ipalib/plugins/host.py:799
msgid "Display information about a host."
msgstr ""
-#: ipalib/plugins/host.py:882 ipalib/plugins/service.py:396
+#: ipalib/plugins/host.py:804 ipalib/plugins/service.py:423
msgid "file to store certificate in"
msgstr ""
-#: ipalib/plugins/host.py:912 ipalib/plugins/service.py:414
+#: ipalib/plugins/host.py:834 ipalib/plugins/service.py:441
#, python-format
msgid "Certificate stored in file '%(file)s'"
msgstr ""
-#: ipalib/plugins/host.py:923
+#: ipalib/plugins/host.py:845
msgid "Disable the Kerberos key, SSL certificate and all services of a host."
msgstr ""
-#: ipalib/plugins/host.py:926
+#: ipalib/plugins/host.py:848
#, python-format
msgid "Disabled host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:1013
+#: ipalib/plugins/host.py:937
msgid "Add hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/host.py:1027
+#: ipalib/plugins/host.py:951
msgid "Remove hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/hostgroup.py:25
+#: ipalib/plugins/hostgroup.py:26
msgid ""
"\n"
"Groups of hosts.\n"
@@ -4390,84 +4744,84 @@ msgid ""
" ipa hostgroup-del baltimore\n"
msgstr ""
-#: ipalib/plugins/hostgroup.py:60
+#: ipalib/plugins/hostgroup.py:61
msgid "host group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:61
+#: ipalib/plugins/hostgroup.py:62
msgid "host groups"
msgstr ""
-#: ipalib/plugins/hostgroup.py:75
+#: ipalib/plugins/hostgroup.py:76
msgid "Host Group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:80
+#: ipalib/plugins/hostgroup.py:83
msgid "Host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:81
+#: ipalib/plugins/hostgroup.py:84
msgid "Name of host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:88
+#: ipalib/plugins/hostgroup.py:91
msgid "A description of this host-group"
msgstr ""
-#: ipalib/plugins/hostgroup.py:114
+#: ipalib/plugins/hostgroup.py:117
msgid "Add a new hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:116
+#: ipalib/plugins/hostgroup.py:119
#, python-format
msgid "Added hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:131
+#: ipalib/plugins/hostgroup.py:134
#, python-format
msgid ""
"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
"common namespace"
msgstr ""
-#: ipalib/plugins/hostgroup.py:153
+#: ipalib/plugins/hostgroup.py:156
msgid "Delete a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:155
+#: ipalib/plugins/hostgroup.py:158
#, python-format
msgid "Deleted hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:161
+#: ipalib/plugins/hostgroup.py:164
msgid "Modify a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:163
+#: ipalib/plugins/hostgroup.py:166
#, python-format
msgid "Modified hostgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hostgroup.py:173
+#: ipalib/plugins/hostgroup.py:176
msgid "Search for hostgroups."
msgstr ""
-#: ipalib/plugins/hostgroup.py:177
+#: ipalib/plugins/hostgroup.py:180
#, python-format
msgid "%(count)d hostgroup matched"
msgid_plural "%(count)d hostgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hostgroup.py:191
+#: ipalib/plugins/hostgroup.py:195
msgid "Display information about a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:201
+#: ipalib/plugins/hostgroup.py:205
msgid "Add members to a hostgroup."
msgstr ""
-#: ipalib/plugins/hostgroup.py:211
+#: ipalib/plugins/hostgroup.py:215
msgid "Remove members from a hostgroup."
msgstr ""
@@ -4496,1210 +4850,1387 @@ msgid "Dict of JSON encoded IPA Commands"
msgstr ""
#: ipalib/plugins/internal.py:147
-msgid ""
-"Your Kerberos ticket is no longer valid. Please run kinit and then click "
-"'Retry'. If this is your first time running the IPA Web UI <a href='/ipa/"
-"config/unauthorized.html'>follow these directions</a> to configure your "
-"browser."
+msgid "Your session has expired. Please re-login."
+msgstr ""
+
+#: ipalib/plugins/internal.py:151
+msgid "Apply"
msgstr ""
-#: ipalib/plugins/internal.py:148
-msgid "Kerberos ticket no longer valid."
+#: ipalib/plugins/internal.py:152
+msgid "Are you sure you want to proceed with the action."
msgstr ""
#: ipalib/plugins/internal.py:153
-msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}"
+msgid "Are you sure you want to delete ${object}"
msgstr ""
#: ipalib/plugins/internal.py:154
-msgid "Add RunAs Groups into ${entity} ${primary_key}"
+msgid "Are you sure you want to disable ${object}"
msgstr ""
#: ipalib/plugins/internal.py:155
-msgid "Add ${other_entity} Managing ${entity} ${primary_key}"
+msgid "Are you sure you want to enable ${object}"
msgstr ""
#: ipalib/plugins/internal.py:156
+msgid "Actions"
+msgstr ""
+
+#: ipalib/plugins/internal.py:160
+msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:161
+msgid "Add RunAs Groups into ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:162
+msgid "Add ${other_entity} Managing ${entity} ${primary_key}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:163
msgid "Add ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:157
+#: ipalib/plugins/internal.py:164
msgid "Add Allow ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:158
+#: ipalib/plugins/internal.py:165
msgid "Add Deny ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:159
+#: ipalib/plugins/internal.py:166
msgid "Add ${entity} ${primary_key} into ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:160
+#: ipalib/plugins/internal.py:167
msgid "Add Source ${other_entity} into ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:162
+#: ipalib/plugins/internal.py:169
msgid "Direct Membership"
msgstr ""
-#: ipalib/plugins/internal.py:163
+#: ipalib/plugins/internal.py:170
msgid "Indirect Membership"
msgstr ""
-#: ipalib/plugins/internal.py:164
+#: ipalib/plugins/internal.py:171
msgid "No entries."
msgstr ""
-#: ipalib/plugins/internal.py:165
+#: ipalib/plugins/internal.py:172
msgid "Showing ${start} to ${end} of ${total} entries."
msgstr ""
-#: ipalib/plugins/internal.py:167
+#: ipalib/plugins/internal.py:174
msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:168
+#: ipalib/plugins/internal.py:175
msgid "Remove RunAs Groups from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:169
+#: ipalib/plugins/internal.py:176
msgid "Remove ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:170
+#: ipalib/plugins/internal.py:177
msgid "Remove ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:171
+#: ipalib/plugins/internal.py:178
msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:172
+#: ipalib/plugins/internal.py:179
msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:173
+#: ipalib/plugins/internal.py:180
msgid "Remove ${entity} ${primary_key} from ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:174
+#: ipalib/plugins/internal.py:181
msgid "Remove Source ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:176
+#: ipalib/plugins/internal.py:183
msgid "Show Results"
msgstr ""
-#: ipalib/plugins/internal.py:179
+#: ipalib/plugins/internal.py:186
msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:180
+#: ipalib/plugins/internal.py:187
msgid "Add and Add Another"
msgstr ""
-#: ipalib/plugins/internal.py:181
+#: ipalib/plugins/internal.py:188
msgid "Add and Close"
msgstr ""
-#: ipalib/plugins/internal.py:182
+#: ipalib/plugins/internal.py:189
msgid "Add and Edit"
msgstr ""
-#: ipalib/plugins/internal.py:183
+#: ipalib/plugins/internal.py:190
msgid "Add Many"
msgstr ""
-#: ipalib/plugins/internal.py:184
+#: ipalib/plugins/internal.py:191
+msgid "Back"
+msgstr ""
+
+#: ipalib/plugins/internal.py:192
msgid "Cancel"
msgstr ""
-#: ipalib/plugins/internal.py:185
+#: ipalib/plugins/internal.py:193
msgid "Close"
msgstr ""
-#: ipalib/plugins/internal.py:186
+#: ipalib/plugins/internal.py:194 ipalib/plugins/internal.py:608
+msgid "Disable"
+msgstr ""
+
+#: ipalib/plugins/internal.py:195
msgid "Edit"
msgstr ""
-#: ipalib/plugins/internal.py:187
+#: ipalib/plugins/internal.py:196 ipalib/plugins/internal.py:610
+msgid "Enable"
+msgstr ""
+
+#: ipalib/plugins/internal.py:197
msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:188
+#: ipalib/plugins/internal.py:198
msgid "Get"
msgstr ""
-#: ipalib/plugins/internal.py:189
+#: ipalib/plugins/internal.py:199
msgid "Issue"
msgstr ""
-#: ipalib/plugins/internal.py:190
+#: ipalib/plugins/internal.py:200
msgid "OK"
msgstr ""
-#: ipalib/plugins/internal.py:191
+#: ipalib/plugins/internal.py:201
msgid "Refresh"
msgstr ""
-#: ipalib/plugins/internal.py:192
+#: ipalib/plugins/internal.py:202
msgid "Delete"
msgstr ""
-#: ipalib/plugins/internal.py:193
+#: ipalib/plugins/internal.py:203
msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:194
+#: ipalib/plugins/internal.py:204
+msgid "Reset Password and Login"
+msgstr ""
+
+#: ipalib/plugins/internal.py:205
msgid "Restore"
msgstr ""
-#: ipalib/plugins/internal.py:195
+#: ipalib/plugins/internal.py:206
msgid "Retry"
msgstr ""
-#: ipalib/plugins/internal.py:196
+#: ipalib/plugins/internal.py:207
msgid "Revoke"
msgstr ""
-#: ipalib/plugins/internal.py:197
+#: ipalib/plugins/internal.py:208
msgid "Set"
msgstr ""
-#: ipalib/plugins/internal.py:198
+#: ipalib/plugins/internal.py:209
msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:199
+#: ipalib/plugins/internal.py:210
msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:202
+#: ipalib/plugins/internal.py:213
msgid "Collapse All"
msgstr ""
-#: ipalib/plugins/internal.py:203
+#: ipalib/plugins/internal.py:214
msgid "Expand All"
msgstr ""
-#: ipalib/plugins/internal.py:204
+#: ipalib/plugins/internal.py:215
msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:205
+#: ipalib/plugins/internal.py:216
msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:206
+#: ipalib/plugins/internal.py:217
msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:207
+#: ipalib/plugins/internal.py:218
msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:210
+#: ipalib/plugins/internal.py:221
msgid "${entity} successfully added"
msgstr ""
-#: ipalib/plugins/internal.py:211
+#: ipalib/plugins/internal.py:222
msgid "Add ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:212
+#: ipalib/plugins/internal.py:223
msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:213
+#: ipalib/plugins/internal.py:224
msgid "Some operations failed."
msgstr ""
-#: ipalib/plugins/internal.py:214
+#: ipalib/plugins/internal.py:225
msgid "Operations Error"
msgstr ""
-#: ipalib/plugins/internal.py:215
+#: ipalib/plugins/internal.py:226
msgid "Confirmation"
msgstr ""
-#: ipalib/plugins/internal.py:216
+#: ipalib/plugins/internal.py:227
msgid "This page has unsaved changes. Please save or revert."
msgstr ""
-#: ipalib/plugins/internal.py:217
+#: ipalib/plugins/internal.py:228
msgid "Unsaved Changes"
msgstr ""
-#: ipalib/plugins/internal.py:218
+#: ipalib/plugins/internal.py:229
msgid "Edit ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:219
+#: ipalib/plugins/internal.py:230
msgid "Hide details"
msgstr ""
-#: ipalib/plugins/internal.py:220
+#: ipalib/plugins/internal.py:231
msgid "Prospective"
msgstr ""
-#: ipalib/plugins/internal.py:221
+#: ipalib/plugins/internal.py:232
msgid "Redirection"
msgstr ""
-#: ipalib/plugins/internal.py:222
+#: ipalib/plugins/internal.py:233
msgid "Select entries to be removed."
msgstr ""
-#: ipalib/plugins/internal.py:223
+#: ipalib/plugins/internal.py:234
msgid "Remove ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:224
+#: ipalib/plugins/internal.py:235
msgid "Show details"
msgstr ""
-#: ipalib/plugins/internal.py:225
+#: ipalib/plugins/internal.py:236
msgid "Validation error"
msgstr ""
-#: ipalib/plugins/internal.py:226
+#: ipalib/plugins/internal.py:237
msgid "Input form contains invalid or missing values."
msgstr ""
-#: ipalib/plugins/internal.py:230
+#: ipalib/plugins/internal.py:240
+msgid "Please try the following options:"
+msgstr ""
+
+#: ipalib/plugins/internal.py:241
+msgid "If the problem persists please contact the system administrator."
+msgstr ""
+
+#: ipalib/plugins/internal.py:242
+msgid "Refresh the page."
+msgstr ""
+
+#: ipalib/plugins/internal.py:243
+msgid "Reload the browser."
+msgstr ""
+
+#: ipalib/plugins/internal.py:244
+msgid "Return to the main page and retry the operation"
+msgstr ""
+
+#: ipalib/plugins/internal.py:245
+msgid "An error has occured (${error})"
+msgstr ""
+
+#: ipalib/plugins/internal.py:249
msgid "HTTP Error"
msgstr ""
-#: ipalib/plugins/internal.py:231
+#: ipalib/plugins/internal.py:250
msgid "Internal Error"
msgstr ""
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/internal.py:251
msgid "IPA Error"
msgstr ""
-#: ipalib/plugins/internal.py:233
+#: ipalib/plugins/internal.py:252
msgid "No response"
msgstr ""
-#: ipalib/plugins/internal.py:234
+#: ipalib/plugins/internal.py:253
msgid "Unknown Error"
msgstr ""
-#: ipalib/plugins/internal.py:235
+#: ipalib/plugins/internal.py:254
msgid "URL"
msgstr ""
-#: ipalib/plugins/internal.py:238
+#: ipalib/plugins/internal.py:257
msgid "${primary_key} is managed by:"
msgstr ""
-#: ipalib/plugins/internal.py:239
+#: ipalib/plugins/internal.py:258
msgid "${primary_key} members:"
msgstr ""
-#: ipalib/plugins/internal.py:240
+#: ipalib/plugins/internal.py:259
msgid "${primary_key} is a member of:"
msgstr ""
-#: ipalib/plugins/internal.py:243
+#: ipalib/plugins/internal.py:262
msgid "Settings"
msgstr ""
-#: ipalib/plugins/internal.py:244
+#: ipalib/plugins/internal.py:263
msgid "Search"
msgstr ""
-#: ipalib/plugins/internal.py:246
+#: ipalib/plugins/internal.py:265
msgid "False"
msgstr ""
-#: ipalib/plugins/internal.py:248
+#: ipalib/plugins/internal.py:267
+msgid ""
+"To login with username and password, enter them in the fields below then "
+"click Login."
+msgstr ""
+
+#: ipalib/plugins/internal.py:268
msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:252 ipalib/plugins/internal.py:257
+#: ipalib/plugins/internal.py:269
+msgid ""
+"To login with Kerberos, please make sure you have valid tickets (obtainable "
+"via kinit) and <a href='/ipa/config/unauthorized.html'>configured</a> the "
+"browser correctly, then click Login."
+msgstr ""
+
+#: ipalib/plugins/internal.py:270
+msgid "Login"
+msgstr ""
+
+#: ipalib/plugins/internal.py:271
+msgid "Logout"
+msgstr ""
+
+#: ipalib/plugins/internal.py:272
+msgid "Logout error"
+msgstr ""
+
+#: ipalib/plugins/internal.py:277
+msgid "number of passwords"
+msgstr ""
+
+#: ipalib/plugins/internal.py:278
+msgid "seconds"
+msgstr ""
+
+#: ipalib/plugins/internal.py:282 ipalib/plugins/internal.py:287
msgid "Attribute"
msgstr ""
-#: ipalib/plugins/internal.py:255
+#: ipalib/plugins/internal.py:285
msgid "Add Condition into ${pkey}"
msgstr ""
-#: ipalib/plugins/internal.py:256
+#: ipalib/plugins/internal.py:286
msgid "Add Rule"
msgstr ""
-#: ipalib/plugins/internal.py:258
+#: ipalib/plugins/internal.py:288
msgid "Default host group"
msgstr ""
-#: ipalib/plugins/internal.py:259
+#: ipalib/plugins/internal.py:289
msgid "Default user group"
msgstr ""
-#: ipalib/plugins/internal.py:260
+#: ipalib/plugins/internal.py:290
msgid "Exclusive"
msgstr ""
-#: ipalib/plugins/internal.py:261
+#: ipalib/plugins/internal.py:291
msgid "Expression"
msgstr ""
-#: ipalib/plugins/internal.py:262
+#: ipalib/plugins/internal.py:292
msgid "Host group rule"
msgstr ""
-#: ipalib/plugins/internal.py:263
+#: ipalib/plugins/internal.py:293
msgid "Host group rules"
msgstr ""
-#: ipalib/plugins/internal.py:264
+#: ipalib/plugins/internal.py:294
msgid "Inclusive"
msgstr ""
-#: ipalib/plugins/internal.py:265
+#: ipalib/plugins/internal.py:295
msgid "User group rule"
msgstr ""
-#: ipalib/plugins/internal.py:266
+#: ipalib/plugins/internal.py:296
msgid "User group rules"
msgstr ""
-#: ipalib/plugins/internal.py:271
+#: ipalib/plugins/internal.py:301
msgid "Automount Location Settings"
msgstr ""
-#: ipalib/plugins/internal.py:274
+#: ipalib/plugins/internal.py:304
msgid "Map Type"
msgstr ""
-#: ipalib/plugins/internal.py:275
+#: ipalib/plugins/internal.py:305
msgid "Direct"
msgstr ""
-#: ipalib/plugins/internal.py:276
+#: ipalib/plugins/internal.py:306
msgid "Indirect"
msgstr ""
-#: ipalib/plugins/internal.py:279
+#: ipalib/plugins/internal.py:309
msgid "AA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:280
+#: ipalib/plugins/internal.py:310
msgid "Affiliation Changed"
msgstr ""
-#: ipalib/plugins/internal.py:281
+#: ipalib/plugins/internal.py:311
msgid "CA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:282
+#: ipalib/plugins/internal.py:312
msgid "Certificate Hold"
msgstr ""
-#: ipalib/plugins/internal.py:283
+#: ipalib/plugins/internal.py:313
msgid "Cessation of Operation"
msgstr ""
-#: ipalib/plugins/internal.py:284
+#: ipalib/plugins/internal.py:314
msgid "Common Name"
msgstr ""
-#: ipalib/plugins/internal.py:285
+#: ipalib/plugins/internal.py:315
msgid "Expires On"
msgstr ""
-#: ipalib/plugins/internal.py:286
+#: ipalib/plugins/internal.py:316
msgid "Fingerprints"
msgstr ""
-#: ipalib/plugins/internal.py:287
+#: ipalib/plugins/internal.py:317
msgid "Issue New Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:288
+#: ipalib/plugins/internal.py:318
msgid "Issued By"
msgstr ""
-#: ipalib/plugins/internal.py:289
+#: ipalib/plugins/internal.py:319
msgid "Issued On"
msgstr ""
-#: ipalib/plugins/internal.py:290
+#: ipalib/plugins/internal.py:320
msgid "Issued To"
msgstr ""
-#: ipalib/plugins/internal.py:291
+#: ipalib/plugins/internal.py:321
msgid "Key Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:292
+#: ipalib/plugins/internal.py:322
msgid "MD5 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:293
+#: ipalib/plugins/internal.py:323
msgid "No Valid Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:294
+#: ipalib/plugins/internal.py:324
msgid "New Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:295
+#: ipalib/plugins/internal.py:325
msgid "Note"
msgstr ""
-#: ipalib/plugins/internal.py:296
+#: ipalib/plugins/internal.py:326
msgid "Organization"
msgstr ""
-#: ipalib/plugins/internal.py:297
+#: ipalib/plugins/internal.py:327
msgid "Organizational Unit"
msgstr ""
-#: ipalib/plugins/internal.py:298
+#: ipalib/plugins/internal.py:328
msgid "Privilege Withdrawn"
msgstr ""
-#: ipalib/plugins/internal.py:299
+#: ipalib/plugins/internal.py:329
msgid "Reason for Revocation"
msgstr ""
-#: ipalib/plugins/internal.py:300
+#: ipalib/plugins/internal.py:330
msgid "Remove from CRL"
msgstr ""
-#: ipalib/plugins/internal.py:301
+#: ipalib/plugins/internal.py:331
msgid ""
-"<ol><li>Create a private key in a secure location, for example:<br/># "
-"openssl genrsa -out key.pem</li><li>Create a CSR with subject CN=${hostname},"
-"O=${realm}, for example:<br/># openssl req -new -key key.pem -out cert.csr "
-"\\<br/>&nbsp;&nbsp;&nbsp;&nbsp;-subj '/O=${realm}/CN=${hostname}'</"
-"li><li>Copy and paste the CSR below:</li></ol>"
+"<ol><li>Examples uses NSS database located in current directory. Replace \"-"
+"d .\" in example with \"-d /path/to/database\" if NSS database is located "
+"elsewhere. If you don't have a NSS database you can create one in current "
+"directory by \"certutil -N -d .\" </li><li>Create a CSR with \"CN="
+"${hostname},O=${realm}\", for example:<br/># certutil -R -d . -a <em title="
+"\"key size in bits\">-g 2048</em> -s 'CN=${hostname},O=${realm}'</"
+"li><li>Copy and paste the CSR (the text block which starts with \"-----BEGIN "
+"NEW CERTIFICATE REQUEST-----\" and ends with \"-----END NEW CERTIFICATE "
+"REQUEST-----\") below:</li></ol>"
msgstr ""
-#: ipalib/plugins/internal.py:302
+#: ipalib/plugins/internal.py:332
msgid "Restore Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:303
+#: ipalib/plugins/internal.py:333
msgid ""
"To confirm your intention to restore this certificate, click the \"Restore\" "
"button."
msgstr ""
-#: ipalib/plugins/internal.py:304
+#: ipalib/plugins/internal.py:334
msgid "Revoke Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:305
+#: ipalib/plugins/internal.py:335
msgid ""
"To confirm your intention to revoke this certificate, select a reason from "
"the pull-down list, and click the \"Revoke\" button."
msgstr ""
-#: ipalib/plugins/internal.py:306
+#: ipalib/plugins/internal.py:336
msgid "Certificate Revoked"
msgstr ""
-#: ipalib/plugins/internal.py:308
+#: ipalib/plugins/internal.py:339
msgid "SHA1 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:309
+#: ipalib/plugins/internal.py:340
msgid "Superseded"
msgstr ""
-#: ipalib/plugins/internal.py:310
+#: ipalib/plugins/internal.py:341
msgid "Unspecified"
msgstr ""
-#: ipalib/plugins/internal.py:311
+#: ipalib/plugins/internal.py:342
msgid "Valid Certificate Present"
msgstr ""
-#: ipalib/plugins/internal.py:312
+#: ipalib/plugins/internal.py:343
msgid "Validity"
msgstr ""
-#: ipalib/plugins/internal.py:313
+#: ipalib/plugins/internal.py:344
msgid "Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:316
+#: ipalib/plugins/internal.py:347
msgid "Group Options"
msgstr ""
-#: ipalib/plugins/internal.py:317
+#: ipalib/plugins/internal.py:348
msgid "Search Options"
msgstr ""
-#: ipalib/plugins/internal.py:318
+#: ipalib/plugins/internal.py:349
msgid "SELinux Options"
msgstr ""
-#: ipalib/plugins/internal.py:319
+#: ipalib/plugins/internal.py:350
msgid "User Options"
msgstr ""
-#: ipalib/plugins/internal.py:324
+#: ipalib/plugins/internal.py:355
+msgid "Forward first"
+msgstr ""
+
+#: ipalib/plugins/internal.py:356
+msgid "Forward only"
+msgstr ""
+
+#: ipalib/plugins/internal.py:357 ipalib/plugins/internal.py:550
+msgid "Options"
+msgstr ""
+
+#: ipalib/plugins/internal.py:360
msgid "Data"
msgstr ""
-#: ipalib/plugins/internal.py:325
+#: ipalib/plugins/internal.py:361
msgid "DNS record was deleted because it contained no data."
msgstr ""
-#: ipalib/plugins/internal.py:326
+#: ipalib/plugins/internal.py:362
msgid "Other Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:327
+#: ipalib/plugins/internal.py:363
msgid "Address not valid, can't redirect"
msgstr ""
-#: ipalib/plugins/internal.py:328
+#: ipalib/plugins/internal.py:364
msgid "Create dns record"
msgstr ""
-#: ipalib/plugins/internal.py:329
+#: ipalib/plugins/internal.py:365
msgid "Creating record."
msgstr ""
-#: ipalib/plugins/internal.py:330
+#: ipalib/plugins/internal.py:366
msgid "Record creation failed."
msgstr ""
-#: ipalib/plugins/internal.py:331
+#: ipalib/plugins/internal.py:367
msgid "Checking if record exists."
msgstr ""
-#: ipalib/plugins/internal.py:332
+#: ipalib/plugins/internal.py:368
msgid "Record not found."
msgstr ""
-#: ipalib/plugins/internal.py:333
+#: ipalib/plugins/internal.py:369
msgid "Redirection to PTR record"
msgstr ""
-#: ipalib/plugins/internal.py:334
+#: ipalib/plugins/internal.py:370
msgid "Zone found: ${zone}"
msgstr ""
-#: ipalib/plugins/internal.py:335
+#: ipalib/plugins/internal.py:371
msgid "Target reverse zone not found."
msgstr ""
-#: ipalib/plugins/internal.py:336
+#: ipalib/plugins/internal.py:372
msgid "Fetching DNS zones."
msgstr ""
-#: ipalib/plugins/internal.py:337
-msgid "An error occurd while fetching dns zones."
+#: ipalib/plugins/internal.py:373
+msgid "An error occurred while fetching dns zones."
msgstr ""
-#: ipalib/plugins/internal.py:338
+#: ipalib/plugins/internal.py:374
msgid "You will be redirected to DNS Zone."
msgstr ""
-#: ipalib/plugins/internal.py:339
+#: ipalib/plugins/internal.py:375
msgid "Standard Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:340
+#: ipalib/plugins/internal.py:376
msgid "Records for DNS Zone"
msgstr ""
-#: ipalib/plugins/internal.py:341
+#: ipalib/plugins/internal.py:377
msgid "Record Type"
msgstr ""
-#: ipalib/plugins/internal.py:344
+#: ipalib/plugins/internal.py:380
msgid "DNS Zone Settings"
msgstr ""
-#: ipalib/plugins/internal.py:347
+#: ipalib/plugins/internal.py:381
+msgid "Add Permission"
+msgstr ""
+
+#: ipalib/plugins/internal.py:382
+msgid "Remove Permission"
+msgstr ""
+
+#: ipalib/plugins/internal.py:385 ipalib/plugins/internal.py:559
msgid "Account"
msgstr ""
-#: ipalib/plugins/internal.py:349
+#: ipalib/plugins/internal.py:387
msgid "Certificates"
msgstr ""
-#: ipalib/plugins/internal.py:350
+#: ipalib/plugins/internal.py:388
msgid "Consume"
msgstr ""
-#: ipalib/plugins/internal.py:351
+#: ipalib/plugins/internal.py:389
msgid "Consume Entitlement"
msgstr ""
-#: ipalib/plugins/internal.py:353
+#: ipalib/plugins/internal.py:391
msgid "Download"
msgstr ""
-#: ipalib/plugins/internal.py:354
+#: ipalib/plugins/internal.py:392
msgid "Download Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:356
+#: ipalib/plugins/internal.py:394
msgid "Import"
msgstr ""
-#: ipalib/plugins/internal.py:357
+#: ipalib/plugins/internal.py:395
msgid "Import Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:358
+#: ipalib/plugins/internal.py:396
msgid "Enter the Base64-encoded entitlement certificate below:"
msgstr ""
-#: ipalib/plugins/internal.py:359
+#: ipalib/plugins/internal.py:397
msgid "Loading..."
msgstr ""
-#: ipalib/plugins/internal.py:360
+#: ipalib/plugins/internal.py:398
msgid "No Certificate."
msgstr ""
-#: ipalib/plugins/internal.py:362
+#: ipalib/plugins/internal.py:400
msgid "Register"
msgstr ""
-#: ipalib/plugins/internal.py:363
+#: ipalib/plugins/internal.py:401
msgid "Registration"
msgstr ""
-#: ipalib/plugins/internal.py:365 ipalib/plugins/internal.py:420
-#: ipalib/plugins/internal.py:467 ipalib/plugins/internal.py:543
+#: ipalib/plugins/internal.py:403 ipalib/plugins/internal.py:459
+#: ipalib/plugins/internal.py:517 ipalib/plugins/internal.py:612
msgid "Status"
msgstr ""
-#: ipalib/plugins/internal.py:368
+#: ipalib/plugins/internal.py:406
msgid "Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:369
+#: ipalib/plugins/internal.py:407
msgid "POSIX group"
msgstr ""
-#: ipalib/plugins/internal.py:372 ipalib/plugins/internal.py:452
-#: ipalib/plugins/internal.py:493
+#: ipalib/plugins/internal.py:410 ipalib/plugins/internal.py:471
+#: ipalib/plugins/internal.py:502 ipalib/plugins/internal.py:543
msgid "Any Host"
msgstr ""
-#: ipalib/plugins/internal.py:373
+#: ipalib/plugins/internal.py:411
msgid "Any Service"
msgstr ""
-#: ipalib/plugins/internal.py:374 ipalib/plugins/internal.py:453
-#: ipalib/plugins/internal.py:494
+#: ipalib/plugins/internal.py:412 ipalib/plugins/internal.py:472
+#: ipalib/plugins/internal.py:503 ipalib/plugins/internal.py:544
msgid "Anyone"
msgstr ""
-#: ipalib/plugins/internal.py:375
+#: ipalib/plugins/internal.py:413
msgid "Accessing"
msgstr ""
-#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:499
+#: ipalib/plugins/internal.py:414 ipalib/plugins/internal.py:549
msgid "Rule status"
msgstr ""
-#: ipalib/plugins/internal.py:377
+#: ipalib/plugins/internal.py:415
msgid "Via Service"
msgstr ""
-#: ipalib/plugins/internal.py:378
+#: ipalib/plugins/internal.py:416
msgid "From"
msgstr ""
-#: ipalib/plugins/internal.py:379 ipalib/plugins/internal.py:455
-#: ipalib/plugins/internal.py:504
+#: ipalib/plugins/internal.py:417 ipalib/plugins/internal.py:478
+#: ipalib/plugins/internal.py:505 ipalib/plugins/internal.py:554
msgid "Specified Hosts and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:380
+#: ipalib/plugins/internal.py:418
msgid "Specified Services and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:381 ipalib/plugins/internal.py:456
-#: ipalib/plugins/internal.py:505
+#: ipalib/plugins/internal.py:419 ipalib/plugins/internal.py:479
+#: ipalib/plugins/internal.py:506 ipalib/plugins/internal.py:555
msgid "Specified Users and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:382 ipalib/plugins/internal.py:506
+#: ipalib/plugins/internal.py:420 ipalib/plugins/internal.py:556
msgid "Who"
msgstr ""
-#: ipalib/plugins/internal.py:390
+#: ipalib/plugins/internal.py:428
msgid "Access Denied"
msgstr ""
-#: ipalib/plugins/internal.py:391
+#: ipalib/plugins/internal.py:429
msgid "Access Granted"
msgstr ""
-#: ipalib/plugins/internal.py:392
+#: ipalib/plugins/internal.py:430
msgid "Include Disabled"
msgstr ""
-#: ipalib/plugins/internal.py:393
+#: ipalib/plugins/internal.py:431
msgid "Include Enabled"
msgstr ""
-#: ipalib/plugins/internal.py:394
+#: ipalib/plugins/internal.py:432
msgid "HBAC Test"
msgstr ""
-#: ipalib/plugins/internal.py:395
+#: ipalib/plugins/internal.py:433
msgid "Matched"
msgstr ""
-#: ipalib/plugins/internal.py:396
+#: ipalib/plugins/internal.py:434
+msgid "Missing values: "
+msgstr ""
+
+#: ipalib/plugins/internal.py:435
msgid "New Test"
msgstr ""
-#: ipalib/plugins/internal.py:397
+#: ipalib/plugins/internal.py:436
msgid "Rules"
msgstr ""
-#: ipalib/plugins/internal.py:398
+#: ipalib/plugins/internal.py:437
msgid "Run Test"
msgstr ""
-#: ipalib/plugins/internal.py:399
+#: ipalib/plugins/internal.py:438
msgid "Specify external ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:400
+#: ipalib/plugins/internal.py:439
msgid "Unmatched"
msgstr ""
-#: ipalib/plugins/internal.py:403
+#: ipalib/plugins/internal.py:442
msgid "Host Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:404 ipalib/plugins/internal.py:463
+#: ipalib/plugins/internal.py:443 ipalib/plugins/internal.py:513
msgid "Host Name"
msgstr ""
-#: ipalib/plugins/internal.py:405 ipalib/plugins/internal.py:461
+#: ipalib/plugins/internal.py:444 ipalib/plugins/internal.py:511
msgid "Delete Key, Unprovision"
msgstr ""
-#: ipalib/plugins/internal.py:406
+#: ipalib/plugins/internal.py:445
msgid "Host Settings"
msgstr ""
-#: ipalib/plugins/internal.py:407
+#: ipalib/plugins/internal.py:446
msgid "Enrolled"
msgstr ""
-#: ipalib/plugins/internal.py:408
+#: ipalib/plugins/internal.py:447
msgid "Enrollment"
msgstr ""
-#: ipalib/plugins/internal.py:409
+#: ipalib/plugins/internal.py:448
msgid "Fully Qualified Host Name"
msgstr ""
-#: ipalib/plugins/internal.py:410
+#: ipalib/plugins/internal.py:449
msgid "Kerberos Key"
msgstr ""
-#: ipalib/plugins/internal.py:411 ipalib/plugins/internal.py:464
+#: ipalib/plugins/internal.py:450 ipalib/plugins/internal.py:514
msgid "Kerberos Key Not Present"
msgstr ""
-#: ipalib/plugins/internal.py:412
+#: ipalib/plugins/internal.py:451
msgid "Kerberos Key Present, Host Provisioned"
msgstr ""
-#: ipalib/plugins/internal.py:413
+#: ipalib/plugins/internal.py:452
msgid "One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:414
+#: ipalib/plugins/internal.py:453
msgid "One-Time-Password Not Present"
msgstr ""
-#: ipalib/plugins/internal.py:415
+#: ipalib/plugins/internal.py:454
msgid "One-Time-Password Present"
msgstr ""
-#: ipalib/plugins/internal.py:416
+#: ipalib/plugins/internal.py:455
msgid "Reset OTP"
msgstr ""
-#: ipalib/plugins/internal.py:417
+#: ipalib/plugins/internal.py:456
msgid "Reset One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:418
+#: ipalib/plugins/internal.py:457
msgid "Set OTP"
msgstr ""
-#: ipalib/plugins/internal.py:419
+#: ipalib/plugins/internal.py:458
msgid "Set One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:421 ipalib/plugins/internal.py:468
+#: ipalib/plugins/internal.py:460 ipalib/plugins/internal.py:518
msgid "Unprovision"
msgstr ""
-#: ipalib/plugins/internal.py:422
+#: ipalib/plugins/internal.py:461
msgid "Are you sure you want to unprovision this host?"
msgstr ""
-#: ipalib/plugins/internal.py:423 ipalib/plugins/internal.py:470
+#: ipalib/plugins/internal.py:462 ipalib/plugins/internal.py:520
msgid "Unprovisioning ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:426
+#: ipalib/plugins/internal.py:465
msgid "Host Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:429 ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/internal.py:468 ipalib/plugins/krbtpolicy.py:79
#: ipalib/plugins/krbtpolicy.py:80
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/internal.py:432
+#: ipalib/plugins/internal.py:473 ipalib/plugins/internal.py:547
+msgid "External"
+msgstr ""
+
+#: ipalib/plugins/internal.py:477
msgid "Netgroup Settings"
msgstr ""
-#: ipalib/plugins/internal.py:435 ipalib/plugins/internal.py:551
+#: ipalib/plugins/internal.py:480 ipalib/plugins/internal.py:507
+#: ipalib/plugins/pwpolicy.py:433 ipalib/plugins/user.py:203
+msgid "User"
+msgstr ""
+
+#: ipalib/plugins/internal.py:485 ipalib/plugins/internal.py:620
msgid "Identity"
msgstr ""
-#: ipalib/plugins/internal.py:436
+#: ipalib/plugins/internal.py:486
msgid "Permission with invalid target specification"
msgstr ""
-#: ipalib/plugins/internal.py:441
+#: ipalib/plugins/internal.py:491
msgid "Privilege Settings"
msgstr ""
-#: ipalib/plugins/internal.py:444 ipalib/plugins/pwpolicy.py:221
+#: ipalib/plugins/internal.py:494 ipalib/plugins/pwpolicy.py:221
msgid "Password Policy"
msgstr ""
-#: ipalib/plugins/internal.py:447
+#: ipalib/plugins/internal.py:497
msgid "Role Settings"
msgstr ""
-#: ipalib/plugins/internal.py:457 ipalib/plugins/pwpolicy.py:432
-#: ipalib/plugins/user.py:177
-msgid "User"
-msgstr ""
-
-#: ipalib/plugins/internal.py:460
+#: ipalib/plugins/internal.py:510
msgid "Service Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:462
+#: ipalib/plugins/internal.py:512
msgid "Service Settings"
msgstr ""
-#: ipalib/plugins/internal.py:465
+#: ipalib/plugins/internal.py:515
msgid "Provisioning"
msgstr ""
-#: ipalib/plugins/internal.py:469
+#: ipalib/plugins/internal.py:519
msgid "Are you sure you want to unprovision this service?"
msgstr ""
-#: ipalib/plugins/internal.py:471
+#: ipalib/plugins/internal.py:521
msgid "Kerberos Key Present, Service Provisioned"
msgstr ""
-#: ipalib/plugins/internal.py:474
+#: ipalib/plugins/internal.py:524
msgid "SSH public keys"
msgstr ""
-#: ipalib/plugins/internal.py:475
+#: ipalib/plugins/internal.py:525
msgid "Base-64 encoded SSH public key:"
msgstr ""
-#: ipalib/plugins/internal.py:476
+#: ipalib/plugins/internal.py:526
msgid "Set SSH key"
msgstr ""
-#: ipalib/plugins/internal.py:477
+#: ipalib/plugins/internal.py:527
msgid "Show/Set key"
msgstr ""
-#: ipalib/plugins/internal.py:478
+#: ipalib/plugins/internal.py:528
msgid "Modified: key not set"
msgstr ""
-#: ipalib/plugins/internal.py:479
+#: ipalib/plugins/internal.py:529
msgid "Modified"
msgstr ""
-#: ipalib/plugins/internal.py:480
+#: ipalib/plugins/internal.py:530
msgid "New: key not set"
msgstr ""
-#: ipalib/plugins/internal.py:481
+#: ipalib/plugins/internal.py:531
msgid "New: key set"
msgstr ""
-#: ipalib/plugins/internal.py:484
+#: ipalib/plugins/internal.py:534
msgid "Groups"
msgstr ""
-#: ipalib/plugins/internal.py:487 ipalib/plugins/sudocmdgroup.py:82
+#: ipalib/plugins/internal.py:537 ipalib/plugins/sudocmdgroup.py:82
msgid "Commands"
msgstr ""
-#: ipalib/plugins/internal.py:490
+#: ipalib/plugins/internal.py:540
msgid "Allow"
msgstr ""
-#: ipalib/plugins/internal.py:491
+#: ipalib/plugins/internal.py:541
msgid "Any Command"
msgstr ""
-#: ipalib/plugins/internal.py:492
+#: ipalib/plugins/internal.py:542
msgid "Any Group"
msgstr ""
-#: ipalib/plugins/internal.py:495
+#: ipalib/plugins/internal.py:545
msgid "Run Commands"
msgstr ""
-#: ipalib/plugins/internal.py:496
+#: ipalib/plugins/internal.py:546
msgid "Deny"
msgstr ""
-#: ipalib/plugins/internal.py:497
-msgid "External"
-msgstr ""
-
-#: ipalib/plugins/internal.py:498
+#: ipalib/plugins/internal.py:548
msgid "Access this host"
msgstr ""
-#: ipalib/plugins/internal.py:500
-msgid "Options"
-msgstr ""
-
-#: ipalib/plugins/internal.py:501
+#: ipalib/plugins/internal.py:551
msgid "As Whom"
msgstr ""
-#: ipalib/plugins/internal.py:502
+#: ipalib/plugins/internal.py:552
msgid "Specified Commands and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:503
+#: ipalib/plugins/internal.py:553
msgid "Specified Groups"
msgstr ""
-#: ipalib/plugins/internal.py:509
+#: ipalib/plugins/internal.py:560
+msgid "Administrative account"
+msgstr ""
+
+#: ipalib/plugins/internal.py:561
+msgid "Trust Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:562
+msgid "Domain"
+msgstr ""
+
+#: ipalib/plugins/internal.py:563
+msgid "Establish using"
+msgstr ""
+
+#: ipalib/plugins/internal.py:564 ipalib/plugins/trust.py:40
+msgid "Domain NetBIOS name"
+msgstr ""
+
+#: ipalib/plugins/internal.py:565 ipalib/plugins/trust.py:42
+msgid "Domain Security Identifier"
+msgstr ""
+
+#: ipalib/plugins/internal.py:566
+msgid "Pre-shared password"
+msgstr ""
+
+#: ipalib/plugins/internal.py:567 ipalib/plugins/trust.py:44
+msgid "Trust direction"
+msgstr ""
+
+#: ipalib/plugins/internal.py:568 ipalib/plugins/trust.py:48
+msgid "Trust status"
+msgstr ""
+
+#: ipalib/plugins/internal.py:569 ipalib/plugins/trust.py:46
+msgid "Trust type"
+msgstr ""
+
+#: ipalib/plugins/internal.py:572
msgid "Account Settings"
msgstr ""
-#: ipalib/plugins/internal.py:510
+#: ipalib/plugins/internal.py:573
msgid "Account Status"
msgstr ""
-#: ipalib/plugins/internal.py:511
+#: ipalib/plugins/internal.py:574
msgid "Contact Settings"
msgstr ""
-#: ipalib/plugins/internal.py:512
+#: ipalib/plugins/internal.py:575
msgid "Employee Information"
msgstr ""
-#: ipalib/plugins/internal.py:513
+#: ipalib/plugins/internal.py:576
msgid "Error changing account status"
msgstr ""
-#: ipalib/plugins/internal.py:514
+#: ipalib/plugins/internal.py:577
msgid "Password expiration"
msgstr ""
-#: ipalib/plugins/internal.py:515
+#: ipalib/plugins/internal.py:578
msgid "Mailing Address"
msgstr ""
-#: ipalib/plugins/internal.py:516
+#: ipalib/plugins/internal.py:579
msgid "Misc. Information"
msgstr ""
-#: ipalib/plugins/internal.py:517
+#: ipalib/plugins/internal.py:580
msgid ""
"Are you sure you want to ${action} the user?<br/>The change will take effect "
"immediately."
msgstr ""
-#: ipalib/plugins/internal.py:518
+#: ipalib/plugins/internal.py:581
msgid "Click to ${action}"
msgstr ""
-#: ipalib/plugins/internal.py:522 ipalib/plugins/passwd.py:79
+#: ipalib/plugins/internal.py:585 ipalib/plugins/passwd.py:79
msgid "Current Password"
msgstr ""
-#: ipalib/plugins/internal.py:523
+#: ipalib/plugins/internal.py:586
msgid "Current password is required"
msgstr ""
-#: ipalib/plugins/internal.py:524 ipalib/plugins/passwd.py:76
+#: ipalib/plugins/internal.py:587
+msgid "Your password expires in ${days} days."
+msgstr ""
+
+#: ipalib/plugins/internal.py:588
+msgid "The password or username you entered is incorrect."
+msgstr ""
+
+#: ipalib/plugins/internal.py:589 ipalib/plugins/passwd.py:76
msgid "New Password"
msgstr ""
-#: ipalib/plugins/internal.py:525
+#: ipalib/plugins/internal.py:590
+msgid "New password is required"
+msgstr ""
+
+#: ipalib/plugins/internal.py:592
msgid "Password change complete"
msgstr ""
-#: ipalib/plugins/internal.py:526
+#: ipalib/plugins/internal.py:593
msgid "Passwords must match"
msgstr ""
-#: ipalib/plugins/internal.py:527
+#: ipalib/plugins/internal.py:594
+msgid "Password reset was not successful."
+msgstr ""
+
+#: ipalib/plugins/internal.py:595
msgid "Reset Password"
msgstr ""
-#: ipalib/plugins/internal.py:528
+#: ipalib/plugins/internal.py:596
+msgid "Reset your password."
+msgstr ""
+
+#: ipalib/plugins/internal.py:597
msgid "Verify Password"
msgstr ""
-#: ipalib/plugins/internal.py:531
+#: ipalib/plugins/internal.py:600
msgid "Are you sure you want to delete selected entries?"
msgstr ""
-#: ipalib/plugins/internal.py:532
+#: ipalib/plugins/internal.py:601
msgid "Some entries were not deleted"
msgstr ""
-#: ipalib/plugins/internal.py:533
+#: ipalib/plugins/internal.py:602
msgid "Quick Links"
msgstr ""
-#: ipalib/plugins/internal.py:534
+#: ipalib/plugins/internal.py:603
msgid "Select All"
msgstr ""
-#: ipalib/plugins/internal.py:535
+#: ipalib/plugins/internal.py:604
msgid ""
"Query returned more results than the configured size limit. Displaying the "
"first ${counter} results."
msgstr ""
-#: ipalib/plugins/internal.py:536
+#: ipalib/plugins/internal.py:605
msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/internal.py:539
-msgid "Disable"
-msgstr ""
-
-#: ipalib/plugins/internal.py:540
+#: ipalib/plugins/internal.py:609
msgid "Disabled"
msgstr ""
-#: ipalib/plugins/internal.py:541
-msgid "Enable"
-msgstr ""
-
-#: ipalib/plugins/internal.py:546
+#: ipalib/plugins/internal.py:615
msgid "Audit"
msgstr ""
-#: ipalib/plugins/internal.py:547
+#: ipalib/plugins/internal.py:616
msgid "Automember"
msgstr ""
-#: ipalib/plugins/internal.py:548
+#: ipalib/plugins/internal.py:617
msgid "Automount"
msgstr ""
-#: ipalib/plugins/internal.py:549
+#: ipalib/plugins/internal.py:618
msgid "DNS"
msgstr ""
-#: ipalib/plugins/internal.py:550
+#: ipalib/plugins/internal.py:619
msgid "Host Based Access Control"
msgstr ""
-#: ipalib/plugins/internal.py:552
+#: ipalib/plugins/internal.py:621
msgid "IPA Server"
msgstr ""
-#: ipalib/plugins/internal.py:553
+#: ipalib/plugins/internal.py:622
msgid "Policy"
msgstr ""
-#: ipalib/plugins/internal.py:554
+#: ipalib/plugins/internal.py:623
msgid "Role Based Access Control"
msgstr ""
-#: ipalib/plugins/internal.py:555
+#: ipalib/plugins/internal.py:624
msgid "Sudo"
msgstr ""
-#: ipalib/plugins/internal.py:557
+#: ipalib/plugins/internal.py:626
msgid "True"
msgstr ""
-#: ipalib/plugins/internal.py:559
+#: ipalib/plugins/internal.py:628
msgid "Next"
msgstr ""
-#: ipalib/plugins/internal.py:560
+#: ipalib/plugins/internal.py:629
msgid "Page"
msgstr ""
-#: ipalib/plugins/internal.py:561
+#: ipalib/plugins/internal.py:630
msgid "Prev"
msgstr ""
-#: ipalib/plugins/internal.py:562
+#: ipalib/plugins/internal.py:631
msgid "undo"
msgstr ""
-#: ipalib/plugins/internal.py:563
+#: ipalib/plugins/internal.py:632
msgid "undo all"
msgstr ""
-#: ipalib/plugins/internal.py:565
+#: ipalib/plugins/internal.py:634
msgid "Text does not match field pattern"
msgstr ""
-#: ipalib/plugins/internal.py:566
+#: ipalib/plugins/internal.py:635
msgid "Must be an integer"
msgstr ""
-#: ipalib/plugins/internal.py:567
+#: ipalib/plugins/internal.py:636
msgid "Not a valid IP address"
msgstr ""
-#: ipalib/plugins/internal.py:568
+#: ipalib/plugins/internal.py:637
msgid "Not a valid IPv4 address"
msgstr ""
-#: ipalib/plugins/internal.py:569
+#: ipalib/plugins/internal.py:638
msgid "Not a valid IPv6 address"
msgstr ""
-#: ipalib/plugins/internal.py:570
+#: ipalib/plugins/internal.py:639
msgid "Maximum value is ${value}"
msgstr ""
-#: ipalib/plugins/internal.py:571
+#: ipalib/plugins/internal.py:640
msgid "Minimum value is ${value}"
msgstr ""
-#: ipalib/plugins/internal.py:572
+#: ipalib/plugins/internal.py:641
+msgid "Not a valid network address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:642
+msgid "'${port}' is not a valid port"
+msgstr ""
+
+#: ipalib/plugins/internal.py:643
msgid "Required field"
msgstr ""
-#: ipalib/plugins/internal.py:577
+#: ipalib/plugins/internal.py:644
+msgid "Unsupported value"
+msgstr ""
+
+#: ipalib/plugins/internal.py:649
msgid "Dict of I18N messages"
msgstr ""
@@ -5779,7 +6310,7 @@ msgstr ""
msgid "Reset Kerberos ticket policy to the default values."
msgstr ""
-#: ipalib/plugins/migration.py:34
+#: ipalib/plugins/migration.py:36
msgid ""
"\n"
"Migration to IPA\n"
@@ -5802,6 +6333,11 @@ msgid ""
"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n"
"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n"
"\n"
+"The schema compat feature allows IPA to reformat data for systems that\n"
+"do not support RFC2307bis. It is recommended that this feature is disabled\n"
+"during migration to reduce system overhead. It can be re-enabled after\n"
+"migration. To migrate with it enabled use the \"--with-compat\" option.\n"
+"\n"
"Migrated users do not have Kerberos credentials, they have only their\n"
"LDAP password. To complete the migration process, users need to go\n"
"to http://ipa.example.com/ipa/migration and authenticate using their\n"
@@ -5812,6 +6348,10 @@ msgid ""
"\n"
" ipa config-mod --enable-migration=TRUE\n"
"\n"
+"If a base DN is not provided with --basedn then IPA will use either\n"
+"the value of defaultNamingContext if it is set or the first value\n"
+"in namingContexts set in the root of the remote LDAP server.\n"
+"\n"
"EXAMPLES:\n"
"\n"
" The simplest migration, accepting all defaults:\n"
@@ -5846,183 +6386,208 @@ msgid ""
" ldap://ds.example.com:389\n"
msgstr ""
-#: ipalib/plugins/migration.py:99
+#: ipalib/plugins/migration.py:110
#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:100
+#: ipalib/plugins/migration.py:111
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:101
+#: ipalib/plugins/migration.py:112
msgid "Migration of LDAP search reference is not supported."
msgstr ""
-#: ipalib/plugins/migration.py:102
+#: ipalib/plugins/migration.py:113
msgid "Malformed DN"
msgstr ""
-#: ipalib/plugins/migration.py:268
+#: ipalib/plugins/migration.py:137
+#, python-format
+msgid "%(user)s is not a POSIX user"
+msgstr ""
+
+#: ipalib/plugins/migration.py:348
msgid ""
". Check GID of the existing group. Use --group-overwrite-gid option to "
"overwrite the GID"
msgstr ""
-#: ipalib/plugins/migration.py:283
+#: ipalib/plugins/migration.py:363
msgid "Invalid LDAP URI."
msgstr ""
-#: ipalib/plugins/migration.py:288
+#: ipalib/plugins/migration.py:368
msgid "Migrate users and groups from DS to IPA."
msgstr ""
-#: ipalib/plugins/migration.py:335
+#: ipalib/plugins/migration.py:415
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:336
+#: ipalib/plugins/migration.py:416
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:342
+#: ipalib/plugins/migration.py:422
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:349
+#: ipalib/plugins/migration.py:429
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:355
+#: ipalib/plugins/migration.py:435
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:356
-msgid "RDN of container for users in DS"
+#: ipalib/plugins/migration.py:436
+msgid "DN of container for users in DS relative to base DN"
msgstr ""
-#: ipalib/plugins/migration.py:362
+#: ipalib/plugins/migration.py:442
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:363
-msgid "RDN of container for groups in DS"
+#: ipalib/plugins/migration.py:443
+msgid "DN of container for groups in DS relative to base DN"
msgstr ""
-#: ipalib/plugins/migration.py:369
+#: ipalib/plugins/migration.py:449
msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:370
+#: ipalib/plugins/migration.py:450
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:377
+#: ipalib/plugins/migration.py:457
msgid "Group object class"
msgstr ""
-#: ipalib/plugins/migration.py:378
+#: ipalib/plugins/migration.py:458
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:385
+#: ipalib/plugins/migration.py:465
msgid "Ignore user object class"
msgstr ""
-#: ipalib/plugins/migration.py:386
+#: ipalib/plugins/migration.py:466
msgid ""
"Comma-separated list of objectclasses to be ignored for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:393
+#: ipalib/plugins/migration.py:473
msgid "Ignore user attribute"
msgstr ""
-#: ipalib/plugins/migration.py:394
+#: ipalib/plugins/migration.py:474
msgid "Comma-separated list of attributes to be ignored for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:401
+#: ipalib/plugins/migration.py:481
msgid "Ignore group object class"
msgstr ""
-#: ipalib/plugins/migration.py:402
+#: ipalib/plugins/migration.py:482
msgid ""
"Comma-separated list of objectclasses to be ignored for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:409
+#: ipalib/plugins/migration.py:489
msgid "Ignore group attribute"
msgstr ""
-#: ipalib/plugins/migration.py:410
+#: ipalib/plugins/migration.py:490
msgid ""
"Comma-separated list of attributes to be ignored for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:417
+#: ipalib/plugins/migration.py:497
msgid "Overwrite GID"
msgstr ""
-#: ipalib/plugins/migration.py:418
+#: ipalib/plugins/migration.py:498
msgid ""
"When migrating a group already existing in IPA domain overwrite the group "
"GID and report as success"
msgstr ""
-#: ipalib/plugins/migration.py:423
+#: ipalib/plugins/migration.py:503
msgid "LDAP schema"
msgstr ""
-#: ipalib/plugins/migration.py:424
+#: ipalib/plugins/migration.py:504
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:430
+#: ipalib/plugins/migration.py:510
msgid "Continue"
msgstr ""
-#: ipalib/plugins/migration.py:431
+#: ipalib/plugins/migration.py:511
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:439
+#: ipalib/plugins/migration.py:516
+msgid "Base DN"
+msgstr ""
+
+#: ipalib/plugins/migration.py:517
+msgid "Base DN on remote LDAP server"
+msgstr ""
+
+#: ipalib/plugins/migration.py:521
+msgid "Ignore compat plugin"
+msgstr ""
+
+#: ipalib/plugins/migration.py:522
+msgid "Allows migration despite the usage of compat plugin"
+msgstr ""
+
+#: ipalib/plugins/migration.py:530
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:443
+#: ipalib/plugins/migration.py:534
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:447
+#: ipalib/plugins/migration.py:538
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:451
+#: ipalib/plugins/migration.py:542
+msgid "False if migration fails because the compatibility plug-in is enabled."
+msgstr ""
+
+#: ipalib/plugins/migration.py:546
#, python-format
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:453
+#: ipalib/plugins/migration.py:548
msgid ""
"search results for objects to be migrated\n"
"have been truncated by the server;\n"
"migration process might be incomplete\n"
msgstr ""
-#: ipalib/plugins/migration.py:458
+#: ipalib/plugins/migration.py:553
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:461
+#: ipalib/plugins/migration.py:556
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -6031,9 +6596,15 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:536
+#: ipalib/plugins/migration.py:642
#, python-format
-msgid "Container for %(container)s not found"
+msgid ""
+"%(container)s LDAP search did not return any result (search base: "
+"%(search_base)s, objectclass: %(objectclass)s)"
+msgstr ""
+
+#: ipalib/plugins/migration.py:674 ipalib/plugins/user.py:478
+msgid "Default group for new users not found"
msgstr ""
#: ipalib/plugins/misc.py:25
@@ -6105,100 +6676,100 @@ msgid ""
" ipa netgroup-del admins\n"
msgstr ""
-#: ipalib/plugins/netgroup.py:60
+#: ipalib/plugins/netgroup.py:69
msgid "Member Host"
msgstr ""
-#: ipalib/plugins/netgroup.py:72
+#: ipalib/plugins/netgroup.py:81
msgid "netgroup"
msgstr ""
-#: ipalib/plugins/netgroup.py:73
+#: ipalib/plugins/netgroup.py:82
msgid "netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:99
+#: ipalib/plugins/netgroup.py:108
msgid "Netgroups"
msgstr ""
-#: ipalib/plugins/netgroup.py:100
+#: ipalib/plugins/netgroup.py:109
msgid "Netgroup"
msgstr ""
-#: ipalib/plugins/netgroup.py:105
+#: ipalib/plugins/netgroup.py:116
msgid "Netgroup name"
msgstr ""
-#: ipalib/plugins/netgroup.py:112
+#: ipalib/plugins/netgroup.py:123
msgid "Netgroup description"
msgstr ""
-#: ipalib/plugins/netgroup.py:116
+#: ipalib/plugins/netgroup.py:129
msgid "NIS domain name"
msgstr ""
-#: ipalib/plugins/netgroup.py:121
+#: ipalib/plugins/netgroup.py:134
msgid "IPA unique ID"
msgstr ""
-#: ipalib/plugins/netgroup.py:142
+#: ipalib/plugins/netgroup.py:156
msgid "Add a new netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:145
+#: ipalib/plugins/netgroup.py:159
#, python-format
msgid "Added netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:147
+#: ipalib/plugins/netgroup.py:161
#, python-format
msgid ""
"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
"common namespace"
msgstr ""
-#: ipalib/plugins/netgroup.py:178
+#: ipalib/plugins/netgroup.py:192
msgid "Delete a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:180
+#: ipalib/plugins/netgroup.py:194
#, python-format
msgid "Deleted netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:186
+#: ipalib/plugins/netgroup.py:200
msgid "Modify a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:189
+#: ipalib/plugins/netgroup.py:203
#, python-format
msgid "Modified netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:203
+#: ipalib/plugins/netgroup.py:220
msgid "Search for a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:208
+#: ipalib/plugins/netgroup.py:225
#, python-format
msgid "%(count)d netgroup matched"
msgid_plural "%(count)d netgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/netgroup.py:218
+#: ipalib/plugins/netgroup.py:235
msgid "search for managed groups"
msgstr ""
-#: ipalib/plugins/netgroup.py:240
+#: ipalib/plugins/netgroup.py:257
msgid "Display information about a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:248
+#: ipalib/plugins/netgroup.py:265
msgid "Add members to a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:259
+#: ipalib/plugins/netgroup.py:278
msgid "Remove members from a netgroup."
msgstr ""
@@ -6232,7 +6803,7 @@ msgstr ""
msgid "Changed password for \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:27
+#: ipalib/plugins/permission.py:26
msgid ""
"\n"
"Permissions\n"
@@ -6290,87 +6861,103 @@ msgid ""
"\"Manage Group Members\"\n"
msgstr ""
-#: ipalib/plugins/permission.py:85
+#: ipalib/plugins/permission.py:84
msgid "Permission Type"
msgstr ""
-#: ipalib/plugins/permission.py:97
+#: ipalib/plugins/permission.py:106
msgid "permission"
msgstr ""
-#: ipalib/plugins/permission.py:98
+#: ipalib/plugins/permission.py:107
msgid "permissions"
msgstr ""
-#: ipalib/plugins/permission.py:117
+#: ipalib/plugins/permission.py:126
msgid "Permission name"
msgstr ""
-#: ipalib/plugins/permission.py:123
+#: ipalib/plugins/permission.py:134
msgid ""
"Comma-separated list of permissions to grant (read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/permission.py:138
+#: ipalib/plugins/permission.py:149
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
msgstr ""
-#: ipalib/plugins/permission.py:144
+#: ipalib/plugins/permission.py:155
msgid "Member of group"
msgstr ""
-#: ipalib/plugins/permission.py:145
+#: ipalib/plugins/permission.py:156
msgid "Target members of a group"
msgstr ""
-#: ipalib/plugins/permission.py:157
+#: ipalib/plugins/permission.py:168
msgid "Subtree to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:163
+#: ipalib/plugins/permission.py:174
msgid "User group to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:183
+#: ipalib/plugins/permission.py:199
msgid "Add a new permission."
msgstr ""
-#: ipalib/plugins/permission.py:185
+#: ipalib/plugins/permission.py:201 ipalib/plugins/permission.py:255
#, python-format
msgid "Added permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:241
+#: ipalib/plugins/permission.py:253
+msgid "Add a system permission without an ACI"
+msgstr ""
+
+#: ipalib/plugins/permission.py:261
+msgid "Permission type"
+msgstr ""
+
+#: ipalib/plugins/permission.py:287
msgid "Delete a permission."
msgstr ""
-#: ipalib/plugins/permission.py:243
+#: ipalib/plugins/permission.py:289
#, python-format
msgid "Deleted permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:259
+#: ipalib/plugins/permission.py:295
+msgid "force delete of SYSTEM permissions"
+msgstr ""
+
+#: ipalib/plugins/permission.py:313
msgid "Modify a permission."
msgstr ""
-#: ipalib/plugins/permission.py:261
+#: ipalib/plugins/permission.py:315
#, python-format
msgid "Modified permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:353
+#: ipalib/plugins/permission.py:344
+msgid "New name can not be empty"
+msgstr ""
+
+#: ipalib/plugins/permission.py:397
msgid "Search for permissions."
msgstr ""
-#: ipalib/plugins/permission.py:356
+#: ipalib/plugins/permission.py:400
#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/permission.py:408
+#: ipalib/plugins/permission.py:479
msgid "Display information about a permission."
msgstr ""
@@ -6474,81 +7061,81 @@ msgstr ""
msgid "privileges"
msgstr ""
-#: ipalib/plugins/privilege.py:65
+#: ipalib/plugins/privilege.py:62
msgid "Privileges"
msgstr ""
-#: ipalib/plugins/privilege.py:66
+#: ipalib/plugins/privilege.py:63
msgid "Privilege"
msgstr ""
-#: ipalib/plugins/privilege.py:71
+#: ipalib/plugins/privilege.py:68
msgid "Privilege name"
msgstr ""
-#: ipalib/plugins/privilege.py:77
+#: ipalib/plugins/privilege.py:74
msgid "Privilege description"
msgstr ""
-#: ipalib/plugins/privilege.py:85
+#: ipalib/plugins/privilege.py:82
msgid "Add a new privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:87
+#: ipalib/plugins/privilege.py:84
#, python-format
msgid "Added privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:93
+#: ipalib/plugins/privilege.py:90
msgid "Delete a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:95
+#: ipalib/plugins/privilege.py:92
#, python-format
msgid "Deleted privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:101
+#: ipalib/plugins/privilege.py:98
msgid "Modify a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:103
+#: ipalib/plugins/privilege.py:100
#, python-format
msgid "Modified privilege \"%(value)s\""
msgstr ""
-#: ipalib/plugins/privilege.py:109
+#: ipalib/plugins/privilege.py:106
msgid "Search for privileges."
msgstr ""
-#: ipalib/plugins/privilege.py:112
+#: ipalib/plugins/privilege.py:109
#, python-format
msgid "%(count)d privilege matched"
msgid_plural "%(count)d privileges matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/privilege.py:119
+#: ipalib/plugins/privilege.py:116
msgid "Display information about a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:125
+#: ipalib/plugins/privilege.py:122
msgid "Add members to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:142
+#: ipalib/plugins/privilege.py:139
msgid "Add permissions to a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:157
+#: ipalib/plugins/privilege.py:154
msgid "Number of permissions added"
msgstr ""
-#: ipalib/plugins/privilege.py:165
+#: ipalib/plugins/privilege.py:162
msgid "Remove permissions from a privilege."
msgstr ""
-#: ipalib/plugins/privilege.py:182
+#: ipalib/plugins/privilege.py:179
msgid "Number of permissions removed"
msgstr ""
@@ -6715,18 +7302,118 @@ msgstr ""
msgid "priority cannot be set on global policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:428
+#: ipalib/plugins/pwpolicy.py:429
msgid "Display information about password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:433
+#: ipalib/plugins/pwpolicy.py:434
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:456
+#: ipalib/plugins/pwpolicy.py:457
msgid "Search for group password policies."
msgstr ""
+#: ipalib/plugins/range.py:29
+msgid ""
+"\n"
+"Manage ID ranges\n"
+msgstr ""
+
+#: ipalib/plugins/range.py:48
+msgid "Ranges"
+msgstr ""
+
+#: ipalib/plugins/range.py:49
+msgid "Range"
+msgstr ""
+
+#: ipalib/plugins/range.py:54
+msgid "Range name"
+msgstr ""
+
+#: ipalib/plugins/range.py:59
+msgid "First Posix ID of the range"
+msgstr ""
+
+#: ipalib/plugins/range.py:63
+msgid "Number of IDs in the range"
+msgstr ""
+
+#: ipalib/plugins/range.py:67
+msgid "First RID of the corresponding RID range"
+msgstr ""
+
+#: ipalib/plugins/range.py:71
+msgid "First RID of the secondary RID range"
+msgstr ""
+
+#: ipalib/plugins/range.py:75
+msgid "Domain SID of the trusted domain"
+msgstr ""
+
+#: ipalib/plugins/range.py:78
+msgid "Range type"
+msgstr ""
+
+#: ipalib/plugins/range.py:86
+msgid "Active Directory domain range"
+msgstr ""
+
+#: ipalib/plugins/range.py:88
+msgid "local domain range"
+msgstr ""
+
+#: ipalib/plugins/range.py:94
+msgid "Add new ID range."
+msgstr ""
+
+#: ipalib/plugins/range.py:96
+#, python-format
+msgid "Added ID range \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/range.py:101
+msgid "Range setup"
+msgstr ""
+
+#: ipalib/plugins/range.py:102
+msgid "Ranges for local domain must have a secondary RID base"
+msgstr ""
+
+#: ipalib/plugins/range.py:117
+msgid "Delete an ID range."
+msgstr ""
+
+#: ipalib/plugins/range.py:119
+#, python-format
+msgid "Deleted ID range \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/range.py:122
+msgid "Search for ranges."
+msgstr ""
+
+#: ipalib/plugins/range.py:125
+#, python-format
+msgid "%(count)d range matched"
+msgid_plural "%(count)d ranges matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/range.py:140
+msgid "Display information about a range."
+msgstr ""
+
+#: ipalib/plugins/range.py:151
+msgid "Modify ID range."
+msgstr ""
+
+#: ipalib/plugins/range.py:153
+#, python-format
+msgid "Modified ID range \"%(value)s\""
+msgstr ""
+
#: ipalib/plugins/role.py:26
msgid ""
"\n"
@@ -6852,7 +7539,7 @@ msgstr ""
msgid "Number of privileges removed"
msgstr ""
-#: ipalib/plugins/selfservice.py:29
+#: ipalib/plugins/selfservice.py:28
msgid ""
"\n"
"Self-service Permissions\n"
@@ -6903,45 +7590,45 @@ msgstr ""
msgid "Self-service name"
msgstr ""
-#: ipalib/plugins/selfservice.py:120
+#: ipalib/plugins/selfservice.py:122
msgid "Add a new self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:122
+#: ipalib/plugins/selfservice.py:124
#, python-format
msgid "Added selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:142
+#: ipalib/plugins/selfservice.py:144
msgid "Delete a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:145
+#: ipalib/plugins/selfservice.py:147
#, python-format
msgid "Deleted selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:161
+#: ipalib/plugins/selfservice.py:162
msgid "Modify a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:163
+#: ipalib/plugins/selfservice.py:164
#, python-format
msgid "Modified selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:183
+#: ipalib/plugins/selfservice.py:184
msgid "Search for a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:186
+#: ipalib/plugins/selfservice.py:187
#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/selfservice.py:210
+#: ipalib/plugins/selfservice.py:211
msgid "Display information about a self-service permission."
msgstr ""
@@ -6993,7 +7680,7 @@ msgid ""
"SEEALSO:\n"
"\n"
" The list controlling the order in which the SELinux user map is applied\n"
-" and the default SELinux user are available in the config-show commond.\n"
+" and the default SELinux user are available in the config-show command.\n"
msgstr ""
#: ipalib/plugins/selinuxusermap.py:71
@@ -7089,41 +7776,41 @@ msgid_plural "%(count)d SELinux User Maps matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/selinuxusermap.py:330
+#: ipalib/plugins/selinuxusermap.py:331
msgid "Display the properties of a SELinux User Map rule."
msgstr ""
-#: ipalib/plugins/selinuxusermap.py:340
+#: ipalib/plugins/selinuxusermap.py:341
msgid "Enable an SELinux User Map rule."
msgstr ""
-#: ipalib/plugins/selinuxusermap.py:342
+#: ipalib/plugins/selinuxusermap.py:343
#, python-format
msgid "Enabled SELinux User Map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selinuxusermap.py:367
+#: ipalib/plugins/selinuxusermap.py:368
msgid "Disable an SELinux User Map rule."
msgstr ""
-#: ipalib/plugins/selinuxusermap.py:369
+#: ipalib/plugins/selinuxusermap.py:370
#, python-format
msgid "Disabled SELinux User Map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selinuxusermap.py:394
+#: ipalib/plugins/selinuxusermap.py:395
msgid "Add users and groups to an SELinux User Map rule."
msgstr ""
-#: ipalib/plugins/selinuxusermap.py:415
+#: ipalib/plugins/selinuxusermap.py:416
msgid "Remove users and groups from an SELinux User Map rule."
msgstr ""
-#: ipalib/plugins/selinuxusermap.py:424
+#: ipalib/plugins/selinuxusermap.py:425
msgid "Add target hosts and hostgroups to an SELinux User Map rule."
msgstr ""
-#: ipalib/plugins/selinuxusermap.py:445
+#: ipalib/plugins/selinuxusermap.py:446
msgid "Remove target hosts and hostgroups from an SELinux User Map rule."
msgstr ""
@@ -7181,77 +7868,81 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/service.py:204
+#: ipalib/plugins/service.py:213
+msgid "This principal is required by the IPA master"
+msgstr ""
+
+#: ipalib/plugins/service.py:220
msgid "service"
msgstr ""
-#: ipalib/plugins/service.py:205
+#: ipalib/plugins/service.py:221
msgid "services"
msgstr ""
-#: ipalib/plugins/service.py:229
+#: ipalib/plugins/service.py:245
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:245
+#: ipalib/plugins/service.py:261
msgid "Add a new IPA new service."
msgstr ""
-#: ipalib/plugins/service.py:247
+#: ipalib/plugins/service.py:263
#, python-format
msgid "Added service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:253
+#: ipalib/plugins/service.py:269
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:286
+#: ipalib/plugins/service.py:307
msgid "Delete an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:288
+#: ipalib/plugins/service.py:309
#, python-format
msgid "Deleted service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:322
+#: ipalib/plugins/service.py:348
msgid "Modify an existing IPA service."
msgstr ""
-#: ipalib/plugins/service.py:324
+#: ipalib/plugins/service.py:350
#, python-format
msgid "Modified service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:356
+#: ipalib/plugins/service.py:382
msgid "Search for IPA services."
msgstr ""
-#: ipalib/plugins/service.py:359
+#: ipalib/plugins/service.py:385
#, python-format
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:391
+#: ipalib/plugins/service.py:418
msgid "Display information about an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:424
+#: ipalib/plugins/service.py:451
msgid "Add hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:433
+#: ipalib/plugins/service.py:460
msgid "Remove hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:442
+#: ipalib/plugins/service.py:469
msgid "Disable the Kerberos key and SSL certificate of a service."
msgstr ""
-#: ipalib/plugins/service.py:445
+#: ipalib/plugins/service.py:472
#, python-format
msgid "Disabled service \"%(value)s\""
msgstr ""
@@ -7448,6 +8139,10 @@ msgid ""
" RunAsGroup: The group(s) whose gid rights Sudo will be invoked with.\n"
" Options: The various Sudoers Options that can modify Sudo's behavior.\n"
"\n"
+"An order can be added to a sudorule to control the order in which they\n"
+"are evaluated (if the client supports it). This order is an integer and\n"
+"must be unique.\n"
+"\n"
"FreeIPA provides a designated binddn to use with Sudo located at:\n"
"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n"
"\n"
@@ -7459,295 +8154,470 @@ msgid ""
"For more information, see the FreeIPA Documentation to Sudo.\n"
msgstr ""
-#: ipalib/plugins/sudorule.py:54
+#: ipalib/plugins/sudorule.py:58
msgid "Commands for controlling sudo configuration"
msgstr ""
-#: ipalib/plugins/sudorule.py:57
+#: ipalib/plugins/sudorule.py:61
msgid "this option has been deprecated."
msgstr ""
-#: ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/sudorule.py:77
msgid "sudo rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:74
+#: ipalib/plugins/sudorule.py:78
msgid "sudo rules"
msgstr ""
-#: ipalib/plugins/sudorule.py:95
+#: ipalib/plugins/sudorule.py:100
msgid "Sudo Rules"
msgstr ""
-#: ipalib/plugins/sudorule.py:96
+#: ipalib/plugins/sudorule.py:101
msgid "Sudo Rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:126
+#: ipalib/plugins/sudorule.py:131
msgid "Command category"
msgstr ""
-#: ipalib/plugins/sudorule.py:127
+#: ipalib/plugins/sudorule.py:132
msgid "Command category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:132
+#: ipalib/plugins/sudorule.py:137
msgid "RunAs User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:133
+#: ipalib/plugins/sudorule.py:138
msgid "RunAs User category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:138
+#: ipalib/plugins/sudorule.py:143
msgid "RunAs Group category"
msgstr ""
-#: ipalib/plugins/sudorule.py:139
+#: ipalib/plugins/sudorule.py:144
msgid "RunAs Group category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:159
+#: ipalib/plugins/sudorule.py:149
+msgid "Sudo order"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:150
+msgid "integer to order the Sudo rules"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:171
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:163
+#: ipalib/plugins/sudorule.py:175
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:167
+#: ipalib/plugins/sudorule.py:179
msgid "Sudo Allow Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:171
+#: ipalib/plugins/sudorule.py:183
msgid "Sudo Deny Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:175
+#: ipalib/plugins/sudorule.py:187
msgid "RunAs Users"
msgstr ""
-#: ipalib/plugins/sudorule.py:176
+#: ipalib/plugins/sudorule.py:188
msgid "Run as a user"
msgstr ""
-#: ipalib/plugins/sudorule.py:180
+#: ipalib/plugins/sudorule.py:192
msgid "Groups of RunAs Users"
msgstr ""
-#: ipalib/plugins/sudorule.py:181
+#: ipalib/plugins/sudorule.py:193
msgid "Run as any user within a specified group"
msgstr ""
-#: ipalib/plugins/sudorule.py:186
+#: ipalib/plugins/sudorule.py:198
msgid "External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:187
+#: ipalib/plugins/sudorule.py:199
msgid "External User the rule applies to (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:191
+#: ipalib/plugins/sudorule.py:203
msgid "RunAs External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:192
+#: ipalib/plugins/sudorule.py:204
msgid "External User the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:196
+#: ipalib/plugins/sudorule.py:208
msgid "RunAs External Group"
msgstr ""
-#: ipalib/plugins/sudorule.py:197
+#: ipalib/plugins/sudorule.py:209
msgid "External Group the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:200 ipalib/plugins/sudorule.py:553
-#: ipalib/plugins/sudorule.py:605
+#: ipalib/plugins/sudorule.py:212 ipalib/plugins/sudorule.py:595
+#: ipalib/plugins/sudorule.py:647
msgid "Sudo Option"
msgstr ""
-#: ipalib/plugins/sudorule.py:204
+#: ipalib/plugins/sudorule.py:216
msgid "RunAs Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:205
+#: ipalib/plugins/sudorule.py:217
msgid "Run with the gid of a specified POSIX group"
msgstr ""
-#: ipalib/plugins/sudorule.py:214
+#: ipalib/plugins/sudorule.py:224
+#, python-format
+msgid "order must be a unique value (%(order)d already used by %(rule)s)"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:246
msgid "Create new Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:221
+#: ipalib/plugins/sudorule.py:254
#, python-format
msgid "Added Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:227
+#: ipalib/plugins/sudorule.py:260
msgid "Delete Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:229
+#: ipalib/plugins/sudorule.py:262
#, python-format
msgid "Deleted Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:235
+#: ipalib/plugins/sudorule.py:268
msgid "Modify Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:237
+#: ipalib/plugins/sudorule.py:270
#, python-format
msgid "Modified Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:245
+#: ipalib/plugins/sudorule.py:287
msgid "user category cannot be set to 'all' while there are users"
msgstr ""
-#: ipalib/plugins/sudorule.py:247
+#: ipalib/plugins/sudorule.py:289
msgid "host category cannot be set to 'all' while there are hosts"
msgstr ""
-#: ipalib/plugins/sudorule.py:250
+#: ipalib/plugins/sudorule.py:292
msgid ""
"command category cannot be set to 'all' while there are allow or deny "
"commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:252
+#: ipalib/plugins/sudorule.py:294
msgid "user runAs category cannot be set to 'all' while there are users"
msgstr ""
-#: ipalib/plugins/sudorule.py:254
+#: ipalib/plugins/sudorule.py:296
msgid "group runAs category cannot be set to 'all' while there are groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:262
+#: ipalib/plugins/sudorule.py:304
msgid "Search for Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:265
+#: ipalib/plugins/sudorule.py:307
#, python-format
msgid "%(count)d Sudo Rule matched"
msgid_plural "%(count)d Sudo Rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudorule.py:272
+#: ipalib/plugins/sudorule.py:314
msgid "Display Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:278
+#: ipalib/plugins/sudorule.py:320
msgid "Enable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:296
+#: ipalib/plugins/sudorule.py:338
#, python-format
msgid "Enabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:302
+#: ipalib/plugins/sudorule.py:344
msgid "Disable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:320
+#: ipalib/plugins/sudorule.py:362
#, python-format
msgid "Disabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:326 ipalib/plugins/sudorule.py:354
+#: ipalib/plugins/sudorule.py:368 ipalib/plugins/sudorule.py:396
msgid "Add commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:337 ipalib/plugins/sudorule.py:365
+#: ipalib/plugins/sudorule.py:379 ipalib/plugins/sudorule.py:407
msgid "commands cannot be added when command category='all'"
msgstr ""
-#: ipalib/plugins/sudorule.py:345 ipalib/plugins/sudorule.py:372
+#: ipalib/plugins/sudorule.py:387 ipalib/plugins/sudorule.py:414
msgid "Remove commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:381
+#: ipalib/plugins/sudorule.py:423
msgid "Add users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:392
+#: ipalib/plugins/sudorule.py:434
msgid "users cannot be added when user category='all'"
msgstr ""
-#: ipalib/plugins/sudorule.py:402
+#: ipalib/plugins/sudorule.py:444
msgid "Remove users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:414
+#: ipalib/plugins/sudorule.py:456
msgid "Add hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:425
+#: ipalib/plugins/sudorule.py:467
msgid "hosts cannot be added when host category='all'"
msgstr ""
-#: ipalib/plugins/sudorule.py:435
+#: ipalib/plugins/sudorule.py:477
msgid "Remove hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:446
+#: ipalib/plugins/sudorule.py:488
msgid "Add users and groups for Sudo to execute as."
msgstr ""
-#: ipalib/plugins/sudorule.py:464 ipalib/plugins/sudorule.py:518
+#: ipalib/plugins/sudorule.py:506 ipalib/plugins/sudorule.py:560
msgid "users cannot be added when runAs user or runAs group category='all'"
msgstr ""
-#: ipalib/plugins/sudorule.py:470
+#: ipalib/plugins/sudorule.py:512
#, python-format
msgid "RunAsUser does not accept '%(name)s' as a user name"
msgstr ""
-#: ipalib/plugins/sudorule.py:476
+#: ipalib/plugins/sudorule.py:518
#, python-format
msgid "RunAsUser does not accept '%(name)s' as a group name"
msgstr ""
-#: ipalib/plugins/sudorule.py:488
+#: ipalib/plugins/sudorule.py:530
msgid "Remove users and groups for Sudo to execute as."
msgstr ""
-#: ipalib/plugins/sudorule.py:500
+#: ipalib/plugins/sudorule.py:542
msgid "Add group for Sudo to execute as."
msgstr ""
-#: ipalib/plugins/sudorule.py:524
+#: ipalib/plugins/sudorule.py:566
#, python-format
msgid "RunAsGroup does not accept '%(name)s' as a group name"
msgstr ""
-#: ipalib/plugins/sudorule.py:536
+#: ipalib/plugins/sudorule.py:578
msgid "Remove group for Sudo to execute as."
msgstr ""
-#: ipalib/plugins/sudorule.py:548
+#: ipalib/plugins/sudorule.py:590
msgid "Add an option to the Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:590
+#: ipalib/plugins/sudorule.py:632
#, python-format
msgid "Added option \"%(option)s\" to Sudo Rule \"%(rule)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:600
+#: ipalib/plugins/sudorule.py:642
msgid "Remove an option from Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:645
+#: ipalib/plugins/sudorule.py:687
#, python-format
msgid "Removed option \"%(option)s\" from Sudo Rule \"%(rule)s\""
msgstr ""
-#: ipalib/plugins/user.py:34
+#: ipalib/plugins/trust.py:34
+msgid ""
+"\n"
+"Manage trust relationship between realms\n"
+msgstr ""
+
+#: ipalib/plugins/trust.py:51
+msgid "Non-Active Directory domain"
+msgstr ""
+
+#: ipalib/plugins/trust.py:52
+msgid "Active Directory domain"
+msgstr ""
+
+#: ipalib/plugins/trust.py:53
+msgid "RFC4120-compliant Kerberos realm"
+msgstr ""
+
+#: ipalib/plugins/trust.py:54
+msgid "Trusting forest"
+msgstr ""
+
+#: ipalib/plugins/trust.py:55
+msgid "Trusted forest"
+msgstr ""
+
+#: ipalib/plugins/trust.py:56
+msgid "Two-way trust"
+msgstr ""
+
+#: ipalib/plugins/trust.py:57
+msgid "Established and verified"
+msgstr ""
+
+#: ipalib/plugins/trust.py:58
+msgid "Waiting for confirmation by remote side"
+msgstr ""
+
+#: ipalib/plugins/trust.py:59
+msgid "Unknown"
+msgstr ""
+
+#: ipalib/plugins/trust.py:90
+msgid "trust"
+msgstr ""
+
+#: ipalib/plugins/trust.py:91
+msgid "trusts"
+msgstr ""
+
+#: ipalib/plugins/trust.py:98
+msgid "Trusts"
+msgstr ""
+
+#: ipalib/plugins/trust.py:99
+msgid "Trust"
+msgstr ""
+
+#: ipalib/plugins/trust.py:104 ipa-client/ipa-rmkeytab.c:176
+msgid "Realm name"
+msgstr ""
+
+#: ipalib/plugins/trust.py:116
+msgid "Add new trust to use"
+msgstr ""
+
+#: ipalib/plugins/trust.py:121
+msgid "Trust type (ad for Active Directory, default)"
+msgstr ""
+
+#: ipalib/plugins/trust.py:128
+msgid "Active Directory domain administrator"
+msgstr ""
+
+#: ipalib/plugins/trust.py:132
+msgid "Active directory domain adminstrator's password"
+msgstr ""
+
+#: ipalib/plugins/trust.py:137
+msgid "Domain controller for the Active Directory domain (optional)"
+msgstr ""
+
+#: ipalib/plugins/trust.py:141
+msgid "Shared secret for the trust"
+msgstr ""
+
+#: ipalib/plugins/trust.py:147
+#, python-format
+msgid "Added Active Directory trust for realm \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/trust.py:154 ipalib/plugins/trust.py:156
+msgid "trust type"
+msgstr ""
+
+#: ipalib/plugins/trust.py:154
+msgid "only \"ad\" is supported"
+msgstr ""
+
+#: ipalib/plugins/trust.py:165
+msgid ""
+"Cannot perform join operation without Samba 4 support installed.\n"
+" Make sure you have installed server-trust-ad "
+"sub-package of IPA"
+msgstr ""
+
+#: ipalib/plugins/trust.py:176
+msgid ""
+"Cannot perform join operation without own domain configured.\n"
+" Make sure you have run ipa-adtrust-install on "
+"the IPA server first"
+msgstr ""
+
+#: ipalib/plugins/trust.py:189
+msgid "Trusted domain and administrator account use different realms"
+msgstr ""
+
+#: ipalib/plugins/trust.py:193
+msgid "Realm administrator password should be specified"
+msgstr ""
+
+#: ipalib/plugins/trust.py:199
+msgid "Unable to verify write permissions to the AD"
+msgstr ""
+
+#: ipalib/plugins/trust.py:209
+msgid "Not enough arguments specified to perform trust setup"
+msgstr ""
+
+#: ipalib/plugins/trust.py:212
+msgid "Delete a trust."
+msgstr ""
+
+#: ipalib/plugins/trust.py:214
+#, python-format
+msgid "Deleted trust \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/trust.py:224
+msgid "Modify a trust."
+msgstr ""
+
+#: ipalib/plugins/trust.py:226
+#, python-format
+msgid "Modified trust \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/trust.py:239
+msgid "Search for trusts."
+msgstr ""
+
+#: ipalib/plugins/trust.py:242
+#, python-format
+msgid "%(count)d trust matched"
+msgid_plural "%(count)d trusts matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/trust.py:251
+msgid "Display information about a trust."
+msgstr ""
+
+#: ipalib/plugins/user.py:37
msgid ""
"\n"
"Users\n"
@@ -7768,6 +8638,10 @@ msgid ""
"Password management is not a part of this module. For more information\n"
"about this topic please see: ipa help passwd\n"
"\n"
+"Account lockout on password failure happens per IPA master. The user-status\n"
+"command can be used to identify which master the user is locked out on.\n"
+"It is on that master the the administrator must unlock the user.\n"
+"\n"
"EXAMPLES:\n"
"\n"
" Add a new user:\n"
@@ -7789,217 +8663,241 @@ msgid ""
" ipa user-del tuser1\n"
msgstr ""
-#: ipalib/plugins/user.py:78
+#: ipalib/plugins/user.py:86
msgid "Kerberos keys available"
msgstr ""
-#: ipalib/plugins/user.py:148
+#: ipalib/plugins/user.py:92
+msgid "Server"
+msgstr ""
+
+#: ipalib/plugins/user.py:95
+msgid "Failed logins"
+msgstr ""
+
+#: ipalib/plugins/user.py:98
+msgid "Last successful authentication"
+msgstr ""
+
+#: ipalib/plugins/user.py:101
+msgid "Last failed authentication"
+msgstr ""
+
+#: ipalib/plugins/user.py:104
+msgid "Time now"
+msgstr ""
+
+#: ipalib/plugins/user.py:174
msgid "user"
msgstr ""
-#: ipalib/plugins/user.py:149
+#: ipalib/plugins/user.py:175
msgid "users"
msgstr ""
-#: ipalib/plugins/user.py:185
+#: ipalib/plugins/user.py:211
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:192
+#: ipalib/plugins/user.py:218
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:196
+#: ipalib/plugins/user.py:222
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:199
+#: ipalib/plugins/user.py:225
msgid "Full name"
msgstr ""
-#: ipalib/plugins/user.py:204
+#: ipalib/plugins/user.py:230
msgid "Display name"
msgstr ""
-#: ipalib/plugins/user.py:209
+#: ipalib/plugins/user.py:235
msgid "Initials"
msgstr ""
-#: ipalib/plugins/user.py:215
+#: ipalib/plugins/user.py:241
msgid "Home directory"
msgstr ""
-#: ipalib/plugins/user.py:218
+#: ipalib/plugins/user.py:244
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:224
+#: ipalib/plugins/user.py:250
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:228
+#: ipalib/plugins/user.py:254
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:236
+#: ipalib/plugins/user.py:262
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:241
+#: ipalib/plugins/user.py:267
msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:247
+#: ipalib/plugins/user.py:273
msgid "Generate a random user password"
msgstr ""
-#: ipalib/plugins/user.py:257
+#: ipalib/plugins/user.py:283
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:258
+#: ipalib/plugins/user.py:284
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:265
+#: ipalib/plugins/user.py:291
msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:271
+#: ipalib/plugins/user.py:298
msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:275
+#: ipalib/plugins/user.py:302
msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:279
+#: ipalib/plugins/user.py:306
msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:282
+#: ipalib/plugins/user.py:309
msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:286
+#: ipalib/plugins/user.py:313
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:289
+#: ipalib/plugins/user.py:316
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:292
+#: ipalib/plugins/user.py:319
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:296
+#: ipalib/plugins/user.py:323
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:300
+#: ipalib/plugins/user.py:327
msgid "Org. Unit"
msgstr ""
-#: ipalib/plugins/user.py:303
+#: ipalib/plugins/user.py:330
msgid "Job Title"
msgstr ""
-#: ipalib/plugins/user.py:306
+#: ipalib/plugins/user.py:333
msgid "Manager"
msgstr ""
-#: ipalib/plugins/user.py:309
+#: ipalib/plugins/user.py:336
msgid "Car License"
msgstr ""
-#: ipalib/plugins/user.py:312
+#: ipalib/plugins/user.py:339
msgid "Account disabled"
msgstr ""
-#: ipalib/plugins/user.py:363
+#: ipalib/plugins/user.py:390
#, python-format
msgid "manager %(manager)s not found"
msgstr ""
-#: ipalib/plugins/user.py:382
+#: ipalib/plugins/user.py:409
msgid "Add a new user."
msgstr ""
-#: ipalib/plugins/user.py:384
+#: ipalib/plugins/user.py:411
#, python-format
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:391
+#: ipalib/plugins/user.py:418
msgid "Don't create user private group"
msgstr ""
-#: ipalib/plugins/user.py:421
+#: ipalib/plugins/user.py:448 ipalib/plugins/user.py:571
#, python-format
msgid "can be at most %(len)d characters"
msgstr ""
-#: ipalib/plugins/user.py:512
+#: ipalib/plugins/user.py:481
+msgid "Default group for new users is not POSIX"
+msgstr ""
+
+#: ipalib/plugins/user.py:542
msgid "Delete a user."
msgstr ""
-#: ipalib/plugins/user.py:514
+#: ipalib/plugins/user.py:544
#, python-format
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:523
+#: ipalib/plugins/user.py:558
msgid "Modify a user."
msgstr ""
-#: ipalib/plugins/user.py:525
+#: ipalib/plugins/user.py:560
#, python-format
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:566
+#: ipalib/plugins/user.py:611
msgid "Search for users."
msgstr ""
-#: ipalib/plugins/user.py:573
+#: ipalib/plugins/user.py:618
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:574
+#: ipalib/plugins/user.py:619
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:596
+#: ipalib/plugins/user.py:642
#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/user.py:603
+#: ipalib/plugins/user.py:649
msgid "Display information about a user."
msgstr ""
-#: ipalib/plugins/user.py:618
+#: ipalib/plugins/user.py:664
msgid "Disable a user account."
msgstr ""
-#: ipalib/plugins/user.py:621
+#: ipalib/plugins/user.py:667
#, python-format
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:639
+#: ipalib/plugins/user.py:685
msgid "Enable a user account."
msgstr ""
-#: ipalib/plugins/user.py:643
+#: ipalib/plugins/user.py:689
#, python-format
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:660
+#: ipalib/plugins/user.py:706
msgid ""
"\n"
" Unlock a user account\n"
@@ -8011,85 +8909,152 @@ msgid ""
" an administrator."
msgstr ""
-#: ipalib/plugins/user.py:669
+#: ipalib/plugins/user.py:715
#, python-format
msgid "Unlocked account \"%(value)s\""
msgstr ""
-#: ipalib/session.py:696 ipalib/session.py:800
+#: ipalib/plugins/user.py:731
+msgid ""
+"\n"
+" Lockout status of a user account\n"
+"\n"
+" An account may become locked if the password is entered incorrectly too\n"
+" many times within a specific time period as controlled by password\n"
+" policy. A locked account is a temporary condition and may be unlocked "
+"by\n"
+" an administrator.\n"
+"\n"
+" This connects to each IPA master and displays the lockout status on\n"
+" each one.\n"
+"\n"
+" To determine whether an account is locked on a given server you need\n"
+" to compare the number of failed logins and the time of the last "
+"failure.\n"
+" For an account to be locked it must exceed the maxfail failures within\n"
+" the failinterval duration as specified in the password policy "
+"associated\n"
+" with the user.\n"
+"\n"
+" The failed login counter is modified only when a user attempts a log in\n"
+" so it is possible that an account may appear locked but the last failed\n"
+" login attempt is older than the lockouttime of the password policy. "
+"This\n"
+" means that the user may attempt a login again. "
+msgstr ""
+
+#: ipalib/plugins/user.py:790
+#, python-format
+msgid "%(host)s failed: %(error)s"
+msgstr ""
+
+#: ipalib/plugins/user.py:828
+#, python-format
+msgid "%(host)s failed"
+msgstr ""
+
+#: ipalib/plugins/user.py:838
+#, python-format
+msgid "Account disabled: %(disabled)s"
+msgstr ""
+
+#: ipalib/session.py:775 ipalib/session.py:878
msgid "could not allocate unique new session_id"
msgstr ""
-#: ipalib/util.py:194
+#: ipalib/util.py:150
#, python-format
msgid "Permission denied: %(file)s"
msgstr ""
-#: ipalib/util.py:222
+#: ipalib/util.py:182
+msgid "empty DNS label"
+msgstr ""
+
+#: ipalib/util.py:185
+msgid "DNS label cannot be longer that 63 characters"
+msgstr ""
+
+#: ipalib/util.py:188
+#, python-format
msgid ""
-"mail account may only include letters, numbers, -, _ and a dot. There may "
-"not be consecutive -, _ and . characters"
+"only letters, numbers,%(underscore)s and - are allowed. DNS label may not "
+"start or end with -"
msgstr ""
-#: ipalib/util.py:225 ipalib/util.py:267
-msgid "cannot be longer that 255 characters"
+#: ipalib/util.py:203
+msgid "top level domain label must be alphabetic"
msgstr ""
-#: ipalib/util.py:235 ipalib/util.py:243
-msgid "missing address domain"
+#: ipalib/util.py:209
+msgid ""
+"mail account may only include letters, numbers, -, _ and a dot. There may "
+"not be consecutive -, _ and . characters. Its parts may not start or end "
+"with - or _"
msgstr ""
-#: ipalib/util.py:237
+#: ipalib/util.py:215 ipalib/util.py:254
+msgid "cannot be longer that 255 characters"
+msgstr ""
+
+#: ipalib/util.py:223
msgid "too many '@' characters"
msgstr ""
-#: ipalib/util.py:256
-msgid "domain name may only include letters, numbers, and -"
+#: ipalib/util.py:236
+msgid "missing address domain"
msgstr ""
-#: ipalib/util.py:273
-msgid "not fully qualified"
+#: ipalib/util.py:241
+msgid "missing mail account"
msgstr ""
-#: ipalib/util.py:276
-msgid ""
-"only letters, numbers, and - are allowed. - must not be the last name "
-"character"
+#: ipalib/util.py:261
+msgid "not fully qualified"
msgstr ""
-#: ipalib/util.py:283
+#: ipalib/util.py:270
msgid "invalid SSH public key"
msgstr ""
-#: ipalib/x509.py:213
+#: ipalib/x509.py:227
#, python-format
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
msgstr ""
-#: ipaserver/plugins/dogtag.py:1371 ipaserver/plugins/dogtag.py:1456
-#: ipaserver/plugins/dogtag.py:1521 ipaserver/plugins/dogtag.py:1599
-#: ipaserver/plugins/dogtag.py:1658
+#: ipaserver/dcerpc.py:45
+msgid ""
+"\n"
+"Classes to manage trust joins using DCE-RPC calls\n"
+"\n"
+"The code in this module relies heavily on samba4-python package\n"
+"and Samba4 python bindings.\n"
+msgstr ""
+
+#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460
+#: ipaserver/plugins/dogtag.py:1526 ipaserver/plugins/dogtag.py:1605
+#: ipaserver/plugins/dogtag.py:1664
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
-#: ipaserver/plugins/join.py:54
+#: ipaserver/plugins/join.py:56
msgid "The hostname to register as"
msgstr ""
-#: ipaserver/plugins/join.py:62
+#: ipaserver/plugins/join.py:64
msgid "The IPA realm"
msgstr ""
-#: ipaserver/plugins/join.py:68
+#: ipaserver/plugins/join.py:70
msgid "Hardware platform of the host (e.g. Lenovo T61)"
msgstr ""
-#: ipaserver/plugins/join.py:72
+#: ipaserver/plugins/join.py:74
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
-#: ipaserver/plugins/ldap2.py:401
+#: ipaserver/plugins/ldap2.py:399
#, python-format
msgid "objectclass %s not found"
msgstr ""
@@ -8138,275 +9103,236 @@ msgstr ""
msgid "read error\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:85
-#, c-format
-msgid "Kerberos context initialization failed: %s (%d)\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:96
-#, c-format
-msgid "Unable to parse principal: %s (%d)\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:157 ipa-client/ipa-getkeytab.c:851
-#, c-format
-msgid "No system preferred enctypes ?!\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:165
-#, c-format
-msgid "Out of memory!?\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:183 ipa-client/ipa-getkeytab.c:198
-#, c-format
-msgid "Out of memory\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:213
-#, c-format
-msgid "Warning unrecognized encryption type: [%s]\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:228
-#, c-format
-msgid "Warning unrecognized salt type: [%s]\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:255
+#: ipa-client/ipa-getkeytab.c:61
#, c-format
-msgid "Enctype comparison failed!\n"
+msgid "Kerberos context initialization failed: %1$s (%2$d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:317
+#: ipa-client/ipa-getkeytab.c:72
#, c-format
-msgid "Failed to create random key!\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:330 ipa-client/ipa-getkeytab.c:347
-#: ipa-client/ipa-getkeytab.c:355 ipa-client/ipa-getkeytab.c:392
-#, c-format
-msgid "Failed to create key!\n"
+msgid "Unable to parse principal: %1$s (%2$d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370
-#: ipa-client/ipa-join.c:378 ipa-client/ipa-join.c:453
-#: ipa-client/ipa-join.c:471 ipa-client/ipa-join.c:572
-#: ipa-client/ipa-join.c:766 ipa-client/ipa-join.c:834
-#, c-format
-msgid "Out of memory!\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:381
-#, c-format
-msgid "Bad or unsupported salt type (%d)!\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:502
+#: ipa-client/ipa-getkeytab.c:127
#, c-format
msgid "No keys accepted by KDC\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:517
+#: ipa-client/ipa-getkeytab.c:142
#, c-format
msgid "Out of memory \n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:555
+#: ipa-client/ipa-getkeytab.c:181
#, c-format
msgid "Out of Memory!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:562
+#: ipa-client/ipa-getkeytab.c:188
#, c-format
msgid "Failed to create control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:586
+#: ipa-client/ipa-getkeytab.c:212
#, c-format
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:240
+#: ipa-client/ipa-getkeytab.c:220 ipa-client/ipa-join.c:240
#, c-format
msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:600
+#: ipa-client/ipa-getkeytab.c:228
#, c-format
msgid "Unable to set ldap options!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:613
+#: ipa-client/ipa-getkeytab.c:241
#, c-format
msgid "Simple bind failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:623
-#, c-format
-msgid "SASL Bind failed!\n"
-msgstr ""
-
-#: ipa-client/ipa-getkeytab.c:639 ipa-client/ipa-getkeytab.c:652
-#: ipa-client/ipa-getkeytab.c:659 ipa-client/ipa-getkeytab.c:666
+#: ipa-client/ipa-getkeytab.c:273 ipa-client/ipa-getkeytab.c:286
+#: ipa-client/ipa-getkeytab.c:293 ipa-client/ipa-getkeytab.c:300
#, c-format
msgid "Operation failed! %s\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:672 ipa-client/ipa-getkeytab.c:682
+#: ipa-client/ipa-getkeytab.c:306 ipa-client/ipa-getkeytab.c:316
#, c-format
msgid "Missing reply control!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:689
+#: ipa-client/ipa-getkeytab.c:323
#, c-format
msgid "ber_init() failed, Invalid control ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:708 ipa-client/ipa-getkeytab.c:715
+#: ipa-client/ipa-getkeytab.c:342
#, c-format
-msgid "ber_scanf() failed, Invalid control ?!\n"
+msgid "ber_scanf() failed, unable to find kvno ?!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:753
+#: ipa-client/ipa-getkeytab.c:354
+#, c-format
+msgid "Failed to retrieve encryption type type #%d\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:358
+#, c-format
+msgid "Failed to retrieve encryption type %1$s (#%2$d)\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:368
+#, c-format
+msgid "Failed to retrieve any keys"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:405
msgid "New Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:759
+#: ipa-client/ipa-getkeytab.c:411
msgid "Verify Principal Password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:445
msgid "Print as little as possible"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:793
+#: ipa-client/ipa-getkeytab.c:445
msgid "Output only on errors"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:795
+#: ipa-client/ipa-getkeytab.c:447
msgid "Contact this specific KDC Server"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:796
+#: ipa-client/ipa-getkeytab.c:448
msgid "Server Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:798 ipa-client/ipa-rmkeytab.c:171
+#: ipa-client/ipa-getkeytab.c:450 ipa-client/ipa-rmkeytab.c:171
msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:799 ipa-client/ipa-rmkeytab.c:172
+#: ipa-client/ipa-getkeytab.c:451 ipa-client/ipa-rmkeytab.c:172
msgid "Kerberos Service Principal Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:801 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:453 ipa-client/ipa-rmkeytab.c:174
msgid "File were to store the keytab information"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:802 ipa-client/ipa-rmkeytab.c:174
+#: ipa-client/ipa-getkeytab.c:454 ipa-client/ipa-rmkeytab.c:174
msgid "Keytab File Name"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:804
+#: ipa-client/ipa-getkeytab.c:456
msgid "Encryption types to request"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:805
+#: ipa-client/ipa-getkeytab.c:457
msgid "Comma separated encryption types list"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:807
+#: ipa-client/ipa-getkeytab.c:459
msgid "Show the list of permitted encryption types and exit"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:808
+#: ipa-client/ipa-getkeytab.c:460
msgid "Permitted Encryption Types"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:810
+#: ipa-client/ipa-getkeytab.c:462
msgid "Asks for a non-random password to use for the principal"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:812
+#: ipa-client/ipa-getkeytab.c:464
msgid "LDAP DN"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:812
+#: ipa-client/ipa-getkeytab.c:464
msgid "DN to bind as if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:814
+#: ipa-client/ipa-getkeytab.c:466
msgid "LDAP password"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:814
+#: ipa-client/ipa-getkeytab.c:466
msgid "password to use if not using kerberos"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:838 ipa-client/ipa-rmkeytab.c:190
+#: ipa-client/ipa-getkeytab.c:491 ipa-client/ipa-rmkeytab.c:190
#, c-format
msgid "Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:854
+#: ipa-client/ipa-getkeytab.c:504 util/ipa_krb5.c:642
+#, c-format
+msgid "No system preferred enctypes ?!\n"
+msgstr ""
+
+#: ipa-client/ipa-getkeytab.c:507
#, c-format
msgid "Supported encryption types:\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:858
+#: ipa-client/ipa-getkeytab.c:511
#, c-format
msgid "Warning: failed to convert type (#%d)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:877
+#: ipa-client/ipa-getkeytab.c:530
#, c-format
msgid "Bind password required when using a bind DN.\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:890
+#: ipa-client/ipa-getkeytab.c:543
#, c-format
msgid ""
"Warning: salt types are not honored with randomized passwords (see opt. -P)\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:902
+#: ipa-client/ipa-getkeytab.c:555
#, c-format
msgid "Invalid Service Principal Name\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:910
+#: ipa-client/ipa-getkeytab.c:563
#, c-format
msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:918
+#: ipa-client/ipa-getkeytab.c:571
#, c-format
msgid ""
"Kerberos User Principal not found. Do you have a valid Credential Cache?\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:926
+#: ipa-client/ipa-getkeytab.c:579
#, c-format
msgid "Failed to open Keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:933
+#: ipa-client/ipa-getkeytab.c:589
#, c-format
msgid "Failed to create key material\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:952
+#: ipa-client/ipa-getkeytab.c:608
#, c-format
msgid "Failed to add key to the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:961
+#: ipa-client/ipa-getkeytab.c:617
#, c-format
msgid "Failed to close the keytab\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:967
+#: ipa-client/ipa-getkeytab.c:623
#, c-format
msgid "Keytab successfully retrieved and stored in: %s\n"
msgstr ""
@@ -8423,7 +9349,7 @@ msgstr ""
#: ipa-client/ipa-join.c:111
#, c-format
-msgid "access() on %s failed: errno = %d\n"
+msgid "access() on %1$s failed: errno = %2$d\n"
msgstr ""
#: ipa-client/ipa-join.c:134 ipa-client/ipa-join.c:163
@@ -8452,213 +9378,221 @@ msgstr ""
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:301
+#: ipa-client/ipa-join.c:337
#, c-format
-msgid "Search for %s on rootdse failed with error %d"
+msgid "Search for %1$s on rootdse failed with error %2$d\n"
msgstr ""
-#: ipa-client/ipa-join.c:313 ipa-client/ipa-join.c:398
+#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:428
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:337
+#: ipa-client/ipa-join.c:367
#, c-format
msgid "Search for IPA namingContext failed with error %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:343
+#: ipa-client/ipa-join.c:373
#, c-format
msgid "IPA namingContext not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:389
+#: ipa-client/ipa-join.c:408 ipa-client/ipa-join.c:483
+#: ipa-client/ipa-join.c:501 ipa-client/ipa-join.c:602
+#: ipa-client/ipa-join.c:796 ipa-client/ipa-join.c:864 util/ipa_krb5.c:823
+#: util/ipa_krb5.c:857
+#, c-format
+msgid "Out of memory!\n"
+msgstr ""
+
+#: ipa-client/ipa-join.c:419
#, c-format
msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:460
+#: ipa-client/ipa-join.c:490
#, c-format
msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:478
+#: ipa-client/ipa-join.c:508
#, c-format
msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:486
+#: ipa-client/ipa-join.c:516
#, c-format
msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:502
+#: ipa-client/ipa-join.c:532
#, c-format
msgid "Enrollment failed. %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:631
+#: ipa-client/ipa-join.c:661
#, c-format
msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:646
+#: ipa-client/ipa-join.c:676
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:714 ipa-client/ipa-join.c:920
+#: ipa-client/ipa-join.c:744 ipa-client/ipa-join.c:950
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:730 ipa-client/ipa-join.c:935
+#: ipa-client/ipa-join.c:760 ipa-client/ipa-join.c:965
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:739 ipa-client/ipa-join.c:951
+#: ipa-client/ipa-join.c:769 ipa-client/ipa-join.c:981
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:747
+#: ipa-client/ipa-join.c:777
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:756
+#: ipa-client/ipa-join.c:786
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:774
+#: ipa-client/ipa-join.c:804
#, c-format
-msgid "Error parsing \"%s\": %s.\n"
+msgid "Error parsing \"%1$s\": %2$s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:792
+#: ipa-client/ipa-join.c:822
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:803
+#: ipa-client/ipa-join.c:833
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:811
+#: ipa-client/ipa-join.c:841
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:865
+#: ipa-client/ipa-join.c:895
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:868
+#: ipa-client/ipa-join.c:898
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:873
+#: ipa-client/ipa-join.c:903
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:941
+#: ipa-client/ipa-join.c:971
#, c-format
msgid "The hostname must not be: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:958
+#: ipa-client/ipa-join.c:988
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:966
+#: ipa-client/ipa-join.c:996
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not "
"provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:980
+#: ipa-client/ipa-join.c:1010
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:1009
+#: ipa-client/ipa-join.c:1039
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:1012
+#: ipa-client/ipa-join.c:1042
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:1015
+#: ipa-client/ipa-join.c:1045
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1027
+#: ipa-client/ipa-join.c:1057
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1033
+#: ipa-client/ipa-join.c:1063
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:1070
+#: ipa-client/ipa-join.c:1100
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:1072
+#: ipa-client/ipa-join.c:1102
msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:1074
+#: ipa-client/ipa-join.c:1104
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:1076
+#: ipa-client/ipa-join.c:1106
msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:1076 ipa-client/ipa-join.c:1078
+#: ipa-client/ipa-join.c:1106 ipa-client/ipa-join.c:1108
msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:1078
+#: ipa-client/ipa-join.c:1108
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:1080
+#: ipa-client/ipa-join.c:1110
msgid "Specifies where to store keytab information."
msgstr ""
-#: ipa-client/ipa-join.c:1080
+#: ipa-client/ipa-join.c:1110
msgid "filename"
msgstr ""
-#: ipa-client/ipa-join.c:1082
+#: ipa-client/ipa-join.c:1112
msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-join.c:1082
+#: ipa-client/ipa-join.c:1112
msgid "password"
msgstr ""
-#: ipa-client/ipa-join.c:1084
+#: ipa-client/ipa-join.c:1114
msgid "LDAP basedn"
msgstr ""
-#: ipa-client/ipa-join.c:1084
+#: ipa-client/ipa-join.c:1114
msgid "basedn"
msgstr ""
@@ -8669,7 +9603,7 @@ msgstr ""
#: ipa-client/ipa-rmkeytab.c:45
#, c-format
-msgid "krb5_parse_name %d: %s\n"
+msgid "krb5_parse_name %1$d: %2$s\n"
msgstr ""
#: ipa-client/ipa-rmkeytab.c:55
@@ -8689,7 +9623,7 @@ msgstr ""
#: ipa-client/ipa-rmkeytab.c:74
#, c-format
-msgid "krb5_kt_get_entry %d: %s\n"
+msgid "krb5_kt_get_entry %1$d: %2$s\n"
msgstr ""
#: ipa-client/ipa-rmkeytab.c:82
@@ -8704,7 +9638,7 @@ msgstr ""
#: ipa-client/ipa-rmkeytab.c:85
#, c-format
-msgid "krb5_kt_remove_entry %d: %s\n"
+msgid "krb5_kt_remove_entry %1$d: %2$s\n"
msgstr ""
#: ipa-client/ipa-rmkeytab.c:119
@@ -8714,7 +9648,7 @@ msgstr ""
#: ipa-client/ipa-rmkeytab.c:121
#, c-format
-msgid "krb5_unparse_name %d: %s\n"
+msgid "krb5_unparse_name %1$d: %2$s\n"
msgstr ""
#: ipa-client/ipa-rmkeytab.c:143
@@ -8734,13 +9668,9 @@ msgstr ""
msgid "Remove all principals in this realm"
msgstr ""
-#: ipa-client/ipa-rmkeytab.c:176
-msgid "Realm name"
-msgstr ""
-
#: ipa-client/ipa-rmkeytab.c:230 ipa-client/ipa-rmkeytab.c:237
#, c-format
-msgid "Failed to open keytab '%s': %s\n"
+msgid "Failed to open keytab '%1$s': %2$s\n"
msgstr ""
#: ipa-client/ipa-rmkeytab.c:253
@@ -8750,5 +9680,38 @@ msgstr ""
#: ipa-client/ipa-rmkeytab.c:255
#, c-format
-msgid "krb5_kt_close %d: %s\n"
+msgid "krb5_kt_close %1$d: %2$s\n"
+msgstr ""
+
+#: util/ipa_krb5.c:650
+msgid "Out of memory!?\n"
+msgstr ""
+
+#: util/ipa_krb5.c:668 util/ipa_krb5.c:683
+msgid "Out of memory\n"
+msgstr ""
+
+#: util/ipa_krb5.c:697
+msgid "Warning unrecognized encryption type.\n"
+msgstr ""
+
+#: util/ipa_krb5.c:711
+msgid "Warning unrecognized salt type.\n"
+msgstr ""
+
+#: util/ipa_krb5.c:738
+msgid "Enctype comparison failed!\n"
+msgstr ""
+
+#: util/ipa_krb5.c:803
+msgid "Failed to create random key!\n"
+msgstr ""
+
+#: util/ipa_krb5.c:816 util/ipa_krb5.c:834 util/ipa_krb5.c:842
+#: util/ipa_krb5.c:882
+msgid "Failed to create key!\n"
+msgstr ""
+
+#: util/ipa_krb5.c:868
+msgid "Bad or unsupported salt type.\n"
msgstr ""