summaryrefslogtreecommitdiffstats
path: root/install/po/ipa.pot
diff options
context:
space:
mode:
authorPetr Viktorin <pviktori@redhat.com>2013-04-15 17:01:10 +0200
committerMartin Kosek <mkosek@redhat.com>2013-04-15 18:46:27 +0200
commitddeb1cea5564093799a6352b2c25bda68d971ce3 (patch)
treea598186e2a0340e269ab01438eb2e211bb7eb9ec /install/po/ipa.pot
parent75f080132421d7f3cfe6f82ab0d446f563a5d7bf (diff)
downloadfreeipa-ddeb1cea5564093799a6352b2c25bda68d971ce3.tar.gz
freeipa-ddeb1cea5564093799a6352b2c25bda68d971ce3.tar.xz
freeipa-ddeb1cea5564093799a6352b2c25bda68d971ce3.zip
Update translations from Transifex
Diffstat (limited to 'install/po/ipa.pot')
-rw-r--r--install/po/ipa.pot3963
1 files changed, 2308 insertions, 1655 deletions
diff --git a/install/po/ipa.pot b/install/po/ipa.pot
index dea6202cd..985d5f21f 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-10-12 04:08-0400\n"
+"POT-Creation-Date: 2013-04-15 16:42+0200\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"
@@ -33,407 +33,412 @@ msgstr ""
msgid "No matching entries found"
msgstr ""
-#: ipalib/cli.py:764
-#, python-format
-msgid "Purpose: %s"
-msgstr ""
-
-#: ipalib/cli.py:781
-msgid "Usage: ipa [global-options] COMMAND ..."
-msgstr ""
-
-#: ipalib/cli.py:783
-msgid "Built-in commands:"
+#: ipalib/cli.py:668
+msgid "Topic or Command"
msgstr ""
-#: ipalib/cli.py:785
-msgid "Help subtopics:"
+#: ipalib/cli.py:669
+msgid "The topic or command name."
msgstr ""
-#: ipalib/cli.py:788
-msgid "Help topics:"
+#: ipalib/cli.py:833
+msgid "Topic commands:"
msgstr ""
-#: ipalib/cli.py:793
-msgid "Try `ipa --help` for a list of global options."
+#: ipalib/cli.py:838
+msgid "To get command help, use:"
msgstr ""
-#: ipalib/cli.py:827
-msgid "Topic commands:"
+#: ipalib/cli.py:839
+msgid " ipa <command> --help"
msgstr ""
-#: ipalib/cli.py:838
+#: ipalib/cli.py:848
msgid "Command name"
msgstr ""
-#: ipalib/cli.py:988
+#: ipalib/cli.py:998
msgid "Positional arguments"
msgstr ""
-#: ipalib/cli.py:1244
+#: ipalib/cli.py:1256
msgid "No file to read"
msgstr ""
-#: ipalib/errors.py:311
+#: ipalib/errors.py:269
#, python-format
-msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
+msgid "%(cver)s client incompatible with %(sver)s server at '%(server)s'"
msgstr ""
-#: ipalib/errors.py:329
+#: ipalib/errors.py:287
#, python-format
msgid "unknown error %(code)d from %(server)s: %(error)s"
msgstr ""
-#: ipalib/errors.py:345
+#: ipalib/errors.py:303
msgid "an internal error has occurred"
msgstr ""
-#: ipalib/errors.py:367
+#: ipalib/errors.py:325
#, python-format
-msgid "an internal error has occurred on server at %(server)r"
+msgid "an internal error has occurred on server at '%(server)s'"
msgstr ""
-#: ipalib/errors.py:383
+#: ipalib/errors.py:341
#, python-format
-msgid "unknown command %(name)r"
+msgid "unknown command '%(name)s'"
msgstr ""
-#: ipalib/errors.py:400 ipalib/errors.py:425
+#: ipalib/errors.py:358 ipalib/errors.py:383
#, python-format
-msgid "error on server %(server)r: %(error)s"
+msgid "error on server '%(server)s': %(error)s"
msgstr ""
-#: ipalib/errors.py:416
+#: ipalib/errors.py:374
#, python-format
-msgid "cannot connect to %(uri)r: %(error)s"
+msgid "cannot connect to '%(uri)s': %(error)s"
msgstr ""
-#: ipalib/errors.py:434
+#: ipalib/errors.py:392
#, python-format
msgid "Invalid JSON-RPC request: %(error)s"
msgstr ""
-#: ipalib/errors.py:450
+#: ipalib/errors.py:408
#, python-format
msgid "error marshalling data for XML-RPC transport: %(error)s"
msgstr ""
-#: ipalib/errors.py:466
+#: ipalib/errors.py:424
#, python-format
msgid "Missing or invalid HTTP Referer, %(referer)s"
msgstr ""
-#: ipalib/errors.py:493
+#: ipalib/errors.py:451
#, python-format
msgid "Kerberos error: %(major)s/%(minor)s"
msgstr ""
-#: ipalib/errors.py:510
+#: ipalib/errors.py:468
msgid "did not receive Kerberos credentials"
msgstr ""
-#: ipalib/errors.py:526
+#: ipalib/errors.py:484
#, python-format
-msgid "Service %(service)r not found in Kerberos database"
+msgid "Service '%(service)s' not found in Kerberos database"
msgstr ""
-#: ipalib/errors.py:542
+#: ipalib/errors.py:500
msgid "No credentials cache found"
msgstr ""
-#: ipalib/errors.py:558
+#: ipalib/errors.py:516
msgid "Ticket expired"
msgstr ""
-#: ipalib/errors.py:574
+#: ipalib/errors.py:532
msgid "Credentials cache permissions incorrect"
msgstr ""
-#: ipalib/errors.py:590
+#: ipalib/errors.py:548
msgid "Bad format in credentials cache"
msgstr ""
-#: ipalib/errors.py:606
+#: ipalib/errors.py:564
msgid "Cannot resolve KDC for requested realm"
msgstr ""
-#: ipalib/errors.py:618
+#: ipalib/errors.py:576
msgid "Session error"
msgstr ""
-#: ipalib/errors.py:626
+#: ipalib/errors.py:584
#, python-format
msgid "Principal %(principal)s cannot be authenticated: %(message)s"
msgstr ""
-#: ipalib/errors.py:644
+#: ipalib/errors.py:602
#, python-format
msgid "Insufficient access: %(info)s"
msgstr ""
-#: ipalib/errors.py:688
+#: ipalib/errors.py:646
#, python-format
-msgid "command %(name)r takes no arguments"
+msgid "command '%(name)s' takes no arguments"
msgstr ""
-#: ipalib/errors.py:708
+#: ipalib/errors.py:666
#, python-format
-msgid "command %(name)r takes at most %(count)d argument"
-msgid_plural "command %(name)r takes at most %(count)d arguments"
+msgid "command '%(name)s' takes at most %(count)d argument"
+msgid_plural "command '%(name)s' takes at most %(count)d arguments"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/errors.py:738
+#: ipalib/errors.py:696
#, python-format
-msgid "overlapping arguments and options: %(names)r"
+msgid "overlapping arguments and options: %(names)s"
msgstr ""
-#: ipalib/errors.py:754
+#: ipalib/errors.py:712
#, python-format
-msgid "%(name)r is required"
+msgid "'%(name)s' is required"
msgstr ""
-#: ipalib/errors.py:770 ipalib/errors.py:786
+#: ipalib/errors.py:728 ipalib/errors.py:744
#, python-format
-msgid "invalid %(name)r: %(error)s"
+msgid "invalid '%(name)s': %(error)s"
msgstr ""
-#: ipalib/errors.py:802
+#: ipalib/errors.py:760
#, python-format
-msgid "api has no such namespace: %(name)r"
+msgid "api has no such namespace: '%(name)s'"
msgstr ""
-#: ipalib/errors.py:811
+#: ipalib/errors.py:769
msgid "Passwords do not match"
msgstr ""
-#: ipalib/errors.py:820
+#: ipalib/errors.py:778
msgid "Command not implemented"
msgstr ""
-#: ipalib/errors.py:829
+#: ipalib/errors.py:787
msgid "Client is not configured. Run ipa-client-install."
msgstr ""
-#: ipalib/errors.py:838
+#: ipalib/errors.py:796
#, python-format
msgid "Could not get %(name)s interactively"
msgstr ""
-#: ipalib/errors.py:866 ipalib/errors.py:1106 ipalib/errors.py:1200
-#: ipalib/errors.py:1581 ipalib/errors.py:1598
+#: ipalib/errors.py:811
+#, python-format
+msgid "Command '%(name)s' has been deprecated"
+msgstr ""
+
+#: ipalib/errors.py:839 ipalib/errors.py:1079 ipalib/errors.py:1173
+#: ipalib/errors.py:1570 ipalib/errors.py:1587
#, python-format
msgid "%(reason)s"
msgstr ""
-#: ipalib/errors.py:882
+#: ipalib/errors.py:855
msgid "This entry already exists"
msgstr ""
-#: ipalib/errors.py:898
+#: ipalib/errors.py:871
msgid "You must enroll a host in order to create a host service"
msgstr ""
-#: ipalib/errors.py:914
+#: ipalib/errors.py:887
#, python-format
msgid ""
"Service principal is not of the form: service/fully-qualified host name: "
"%(reason)s"
msgstr ""
-#: ipalib/errors.py:930
+#: ipalib/errors.py:903
msgid ""
"The realm for the principal does not match the realm for this IPA server"
msgstr ""
-#: ipalib/errors.py:946
+#: ipalib/errors.py:919
msgid "This command requires root access"
msgstr ""
-#: ipalib/errors.py:962
+#: ipalib/errors.py:935
msgid "This is already a posix group"
msgstr ""
-#: ipalib/errors.py:978
+#: ipalib/errors.py:951
#, python-format
-msgid "Principal is not of the form user@REALM: %(principal)r"
+msgid "Principal is not of the form user@REALM: '%(principal)s'"
msgstr ""
-#: ipalib/errors.py:994
+#: ipalib/errors.py:967
msgid "This entry is already enabled"
msgstr ""
-#: ipalib/errors.py:1010
+#: ipalib/errors.py:983
msgid "This entry is already disabled"
msgstr ""
-#: ipalib/errors.py:1026
+#: ipalib/errors.py:999
msgid "This entry cannot be enabled or disabled"
msgstr ""
-#: ipalib/errors.py:1042
+#: ipalib/errors.py:1015
msgid "This entry is not a member"
msgstr ""
-#: ipalib/errors.py:1058
+#: ipalib/errors.py:1031
msgid "A group may not be a member of itself"
msgstr ""
-#: ipalib/errors.py:1074
+#: ipalib/errors.py:1047
msgid "This entry is already a member"
msgstr ""
-#: ipalib/errors.py:1090
+#: ipalib/errors.py:1063
#, python-format
msgid "Base64 decoding failed: %(reason)s"
msgstr ""
-#: ipalib/errors.py:1122
+#: ipalib/errors.py:1095
msgid "A group may not be added as a member of itself"
msgstr ""
-#: ipalib/errors.py:1138
+#: ipalib/errors.py:1111
msgid "The default users group cannot be removed"
msgstr ""
-#: ipalib/errors.py:1154
+#: ipalib/errors.py:1127
msgid "Host does not have corresponding DNS A record"
msgstr ""
-#: ipalib/errors.py:1169
+#: ipalib/errors.py:1142
msgid "Deleting a managed group is not allowed. It must be detached first."
msgstr ""
-#: ipalib/errors.py:1184
+#: ipalib/errors.py:1157
msgid "A managed group cannot have a password policy."
msgstr ""
-#: ipalib/errors.py:1216
+#: ipalib/errors.py:1189
#, python-format
msgid "'%(entry)s' doesn't have a certificate."
msgstr ""
-#: ipalib/errors.py:1232
+#: ipalib/errors.py:1205
#, python-format
msgid "Unable to create private group. A group '%(group)s' already exists."
msgstr ""
-#: ipalib/errors.py:1248
+#: ipalib/errors.py:1221
#, python-format
msgid ""
"A problem was encountered when verifying that all members were %(verb)s: "
"%(exc)s"
msgstr ""
-#: ipalib/errors.py:1266
+#: ipalib/errors.py:1239
#, python-format
msgid "%(attr)s does not contain '%(value)s'"
msgstr ""
-#: ipalib/errors.py:1283
+#: ipalib/errors.py:1256
#, python-format
msgid ""
"The search criteria was not specific enough. Expected 1 and found %(found)d."
msgstr ""
-#: ipalib/errors.py:1300
+#: ipalib/errors.py:1273
msgid "This group already allows external members"
msgstr ""
-#: ipalib/errors.py:1317
+#: ipalib/errors.py:1290
msgid "This group cannot be posix because it is external"
msgstr ""
-#: ipalib/errors.py:1334
+#: ipalib/errors.py:1307
msgid "This is already a posix group and cannot be converted to external one"
msgstr ""
-#: ipalib/errors.py:1357
+#: ipalib/errors.py:1330
#, python-format
-msgid "no command nor help topic %(topic)r"
+msgid "no command nor help topic '%(topic)s'"
msgstr ""
-#: ipalib/errors.py:1381
+#: ipalib/errors.py:1354
msgid "change collided with another change"
msgstr ""
-#: ipalib/errors.py:1397
+#: ipalib/errors.py:1370
msgid "no modifications to be performed"
msgstr ""
-#: ipalib/errors.py:1413
+#: ipalib/errors.py:1386
#, python-format
msgid "%(desc)s: %(info)s"
msgstr ""
-#: ipalib/errors.py:1429
+#: ipalib/errors.py:1402
msgid "limits exceeded for this query"
msgstr ""
-#: ipalib/errors.py:1444
+#: ipalib/errors.py:1417
#, python-format
msgid "%(info)s"
msgstr ""
-#: ipalib/errors.py:1459
+#: ipalib/errors.py:1432
msgid "modifying primary key is not allowed"
msgstr ""
-#: ipalib/errors.py:1475
+#: ipalib/errors.py:1448
#, python-format
msgid "%(attr)s: Only one value allowed."
msgstr ""
-#: ipalib/errors.py:1491
+#: ipalib/errors.py:1464
#, python-format
msgid "%(attr)s: Invalid syntax."
msgstr ""
-#: ipalib/errors.py:1507
+#: ipalib/errors.py:1480
#, python-format
msgid "Bad search filter %(info)s"
msgstr ""
-#: ipalib/errors.py:1523
+#: ipalib/errors.py:1496
msgid "Not allowed on non-leaf entry"
msgstr ""
-#: ipalib/errors.py:1548
+#: ipalib/errors.py:1512
+msgid "LDAP timeout"
+msgstr ""
+
+#: ipalib/errors.py:1537
#, python-format
msgid "Certificate operation cannot be completed: %(error)s"
msgstr ""
-#: ipalib/errors.py:1564
+#: ipalib/errors.py:1553
#, python-format
msgid "Certificate format error: %(error)s"
msgstr ""
-#: ipalib/errors.py:1615
+#: ipalib/errors.py:1604
msgid "Already registered"
msgstr ""
-#: ipalib/errors.py:1631
+#: ipalib/errors.py:1620
msgid "Not registered yet"
msgstr ""
-#: ipalib/errors.py:1647
+#: ipalib/errors.py:1636
#, python-format
msgid "%(key)s cannot be deleted because %(label)s %(dependent)s requires it"
msgstr ""
-#: ipalib/errors.py:1663
+#: ipalib/errors.py:1652
#, python-format
msgid ""
"%(key)s cannot be deleted or disabled because it is the last member of "
"%(label)s %(container)s"
msgstr ""
-#: ipalib/errors.py:1679
+#: ipalib/errors.py:1668
#, python-format
msgid "%(label)s %(key)s cannot be deleted/modified: %(reason)s"
msgstr ""
-#: ipalib/frontend.py:411
+#: ipalib/errors.py:1685
+#, python-format
+msgid "%(name)s certificate is not valid"
+msgstr ""
+
+#: ipalib/frontend.py:412
msgid "Results are truncated, try a more specific search"
msgstr ""
@@ -442,23 +447,34 @@ msgstr ""
msgid "Unknown option: %(option)s"
msgstr ""
-#: ipalib/frontend.py:890
+#: ipalib/frontend.py:877
msgid ""
"Retrieve and print all attributes from the server. Affects command output."
msgstr ""
-#: ipalib/frontend.py:896
+#: ipalib/frontend.py:883
msgid "Print entries as stored on the server. Only affects output format."
msgstr ""
-#: ipalib/frontend.py:901 ipalib/plugins/batch.py:69
+#: ipalib/frontend.py:889 ipalib/plugins/batch.py:69
msgid "Client version. Used to determine if server will accept request."
msgstr ""
-#: ipalib/frontend.py:1058
+#: ipalib/frontend.py:1062
msgid "Forward to server instead of running locally"
msgstr ""
+#: ipalib/messages.py:73
+msgid "Additional instructions:"
+msgstr ""
+
+#: ipalib/messages.py:134
+#, python-format
+msgid ""
+"API Version number was not sent, forward compatibility not guaranteed. "
+"Assuming server's API version, %(server_version)s"
+msgstr ""
+
#: ipalib/output.py:92
msgid "A dictionary representing an LDAP entry"
msgstr ""
@@ -495,119 +511,123 @@ msgstr ""
msgid "True means the operation was successful"
msgstr ""
-#: ipalib/parameters.py:371
+#: ipalib/parameters.py:366
msgid "incorrect type"
msgstr ""
-#: ipalib/parameters.py:374
+#: ipalib/parameters.py:369
msgid "Only one value is allowed"
msgstr ""
-#: ipalib/parameters.py:997
+#: ipalib/parameters.py:935
msgid "must be True or False"
msgstr ""
-#: ipalib/parameters.py:1098
+#: ipalib/parameters.py:1036
msgid "must be an integer"
msgstr ""
-#: ipalib/parameters.py:1150
+#: ipalib/parameters.py:1087
#, python-format
msgid "must be at least %(minvalue)d"
msgstr ""
-#: ipalib/parameters.py:1160
+#: ipalib/parameters.py:1097
#, python-format
msgid "can be at most %(maxvalue)d"
msgstr ""
-#: ipalib/parameters.py:1203
+#: ipalib/parameters.py:1138
msgid "must be a decimal number"
msgstr ""
-#: ipalib/parameters.py:1249
+#: ipalib/parameters.py:1184
#, python-format
msgid "must be at least %(minvalue)s"
msgstr ""
-#: ipalib/parameters.py:1259
+#: ipalib/parameters.py:1194
#, python-format
msgid "can be at most %(maxvalue)s"
msgstr ""
-#: ipalib/parameters.py:1268
+#: ipalib/parameters.py:1202
#, python-format
msgid ""
"number class '%(cls)s' is not included in a list of allowed number classes: "
"%(allowed)s"
msgstr ""
-#: ipalib/parameters.py:1392
+#: ipalib/parameters.py:1326
#, python-format
msgid "must match pattern \"%(pattern)s\""
msgstr ""
-#: ipalib/parameters.py:1410
+#: ipalib/parameters.py:1344
msgid "must be binary data"
msgstr ""
-#: ipalib/parameters.py:1426
+#: ipalib/parameters.py:1360
#, python-format
msgid "must be at least %(minlength)d bytes"
msgstr ""
-#: ipalib/parameters.py:1436
+#: ipalib/parameters.py:1370
#, python-format
msgid "can be at most %(maxlength)d bytes"
msgstr ""
-#: ipalib/parameters.py:1446
+#: ipalib/parameters.py:1380
#, python-format
msgid "must be exactly %(length)d bytes"
msgstr ""
-#: ipalib/parameters.py:1476
+#: ipalib/parameters.py:1410
msgid "must be Unicode text"
msgstr ""
-#: ipalib/parameters.py:1509
+#: ipalib/parameters.py:1443
msgid "Leading and trailing spaces are not allowed"
msgstr ""
-#: ipalib/parameters.py:1517
+#: ipalib/parameters.py:1451
#, python-format
msgid "must be at least %(minlength)d characters"
msgstr ""
-#: ipalib/parameters.py:1527
+#: ipalib/parameters.py:1461
#, python-format
msgid "can be at most %(maxlength)d characters"
msgstr ""
-#: ipalib/parameters.py:1537
+#: ipalib/parameters.py:1471
#, python-format
msgid "must be exactly %(length)d characters"
msgstr ""
-#: ipalib/parameters.py:1556
+#: ipalib/parameters.py:1490
#, python-format
-msgid "The character '%(char)r' is not allowed."
+msgid "The character %(char)r is not allowed."
msgstr ""
-#: ipalib/parameters.py:1605
+#: ipalib/parameters.py:1539
#, python-format
msgid "must be '%(value)s'"
msgstr ""
-#: ipalib/parameters.py:1608
+#: ipalib/parameters.py:1542
#, python-format
msgid "must be one of %(values)s"
msgstr ""
-#: ipalib/parameters.py:1847
+#: ipalib/parameters.py:1781
msgid "incomplete time value"
msgstr ""
+#: ipalib/parameters.py:1818
+msgid "this option is deprecated"
+msgstr ""
+
#: ipalib/plugins/aci.py:154
msgid "A list of ACI values"
msgstr ""
@@ -638,165 +658,168 @@ msgstr ""
msgid "One of group, permission or self is required"
msgstr ""
-#: ipalib/plugins/aci.py:254
+#: ipalib/plugins/aci.py:257
#, python-format
msgid "Group '%s' does not exist"
msgstr ""
-#: ipalib/plugins/aci.py:280
+#: ipalib/plugins/aci.py:283
msgid "empty filter"
msgstr ""
-#: ipalib/plugins/aci.py:301
+#: ipalib/plugins/aci.py:304
#, python-format
msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/plugins/aci.py:390
+#: ipalib/plugins/aci.py:350
+#, python-format
+msgid "invalid DN (%s)"
+msgstr ""
+
+#: ipalib/plugins/aci.py:397
#, python-format
msgid "ACI with name \"%s\" not found"
msgstr ""
-#: ipalib/plugins/aci.py:411
+#: ipalib/plugins/aci.py:415
msgid "ACI prefix"
msgstr ""
-#: ipalib/plugins/aci.py:412
+#: ipalib/plugins/aci.py:416
msgid ""
"Prefix used to distinguish ACI types (permission, delegation, selfservice, "
"none)"
msgstr ""
-#: ipalib/plugins/aci.py:423
+#: ipalib/plugins/aci.py:427
msgid "ACIs"
msgstr ""
-#: ipalib/plugins/aci.py:428
+#: ipalib/plugins/aci.py:432
msgid "ACI name"
msgstr ""
-#: ipalib/plugins/aci.py:434 ipalib/plugins/permission.py:122
+#: ipalib/plugins/aci.py:438 ipalib/plugins/permission.py:123
msgid "Permission"
msgstr ""
-#: ipalib/plugins/aci.py:435
+#: ipalib/plugins/aci.py:439
msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:102
+#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:101
msgid "User group"
msgstr ""
-#: ipalib/plugins/aci.py:441 ipalib/plugins/delegation.py:103
+#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:102
msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:446 ipalib/plugins/baseldap.py:65
-#: ipalib/plugins/delegation.py:83 ipalib/plugins/permission.py:121
-#: ipalib/plugins/permission.py:134 ipalib/plugins/selfservice.py:85
+#: ipalib/plugins/aci.py:450 ipalib/plugins/baseldap.py:65
+#: ipalib/plugins/delegation.py:83 ipalib/plugins/permission.py:122
+#: ipalib/plugins/permission.py:135 ipalib/plugins/selfservice.py:87
msgid "Permissions"
msgstr ""
-#: ipalib/plugins/aci.py:447
-msgid ""
-"comma-separated list of permissions to grant(read, write, add, delete, all)"
+#: ipalib/plugins/aci.py:451
+msgid "Permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/aci.py:455 ipalib/plugins/delegation.py:90
-#: ipalib/plugins/permission.py:141 ipalib/plugins/selfservice.py:92
-msgid "Attributes"
+#: ipalib/plugins/aci.py:459 ipalib/plugins/permission.py:143
+msgid "Attributes to which the permission applies"
msgstr ""
-#: ipalib/plugins/aci.py:456 ipalib/plugins/delegation.py:91
+#: ipalib/plugins/aci.py:460 ipalib/plugins/delegation.py:89
#: ipalib/plugins/permission.py:142 ipalib/plugins/selfservice.py:93
-msgid "Comma-separated list of attributes"
+msgid "Attributes"
msgstr ""
-#: ipalib/plugins/aci.py:462 ipalib/plugins/permission.py:149
+#: ipalib/plugins/aci.py:466 ipalib/plugins/permission.py:150
msgid "Type"
msgstr ""
-#: ipalib/plugins/aci.py:463
+#: ipalib/plugins/aci.py:467
msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/plugins/aci.py:469
+#: ipalib/plugins/aci.py:473
msgid "Member of"
msgstr ""
-#: ipalib/plugins/aci.py:470
+#: ipalib/plugins/aci.py:474
msgid "Member of a group"
msgstr ""
-#: ipalib/plugins/aci.py:475 ipalib/plugins/permission.py:162
+#: ipalib/plugins/aci.py:479 ipalib/plugins/permission.py:163
msgid "Filter"
msgstr ""
-#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:163
+#: ipalib/plugins/aci.py:480 ipalib/plugins/permission.py:164
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/plugins/aci.py:481 ipalib/plugins/permission.py:168
+#: ipalib/plugins/aci.py:485 ipalib/plugins/permission.py:169
msgid "Subtree"
msgstr ""
-#: ipalib/plugins/aci.py:482
+#: ipalib/plugins/aci.py:486
msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:487 ipalib/plugins/permission.py:174
+#: ipalib/plugins/aci.py:491 ipalib/plugins/permission.py:175
msgid "Target group"
msgstr ""
-#: ipalib/plugins/aci.py:488
+#: ipalib/plugins/aci.py:492
msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:493
+#: ipalib/plugins/aci.py:497
msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:494
+#: ipalib/plugins/aci.py:498
msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:506
+#: ipalib/plugins/aci.py:510
#, python-format
msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:511
+#: ipalib/plugins/aci.py:515
msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/plugins/aci.py:562
+#: ipalib/plugins/aci.py:566
#, python-format
msgid "Deleted ACI \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:605 ipalib/plugins/aci.py:880
-#: ipalib/plugins/aci.py:921 ipalib/plugins/delegation.py:59
-#: ipalib/plugins/permission.py:88 ipalib/plugins/selfservice.py:58
+#: ipalib/plugins/aci.py:609 ipalib/plugins/aci.py:885
+#: ipalib/plugins/aci.py:926 ipalib/plugins/delegation.py:59
+#: ipalib/plugins/permission.py:88 ipalib/plugins/selfservice.py:60
msgid "ACI"
msgstr ""
-#: ipalib/plugins/aci.py:613
+#: ipalib/plugins/aci.py:617
#, python-format
msgid "Modified ACI \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:688
+#: ipalib/plugins/aci.py:692
#, python-format
msgid "%(count)d ACI matched"
msgid_plural "%(count)d ACIs matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/aci.py:928
+#: ipalib/plugins/aci.py:933
msgid "New ACI name"
msgstr ""
-#: ipalib/plugins/aci.py:932
+#: ipalib/plugins/aci.py:937
#, python-format
msgid "Renamed ACI to \"%(value)s\""
msgstr ""
@@ -928,12 +951,12 @@ msgid "Auto Membership Rule"
msgstr ""
#: ipalib/plugins/automember.py:176 ipalib/plugins/automount.py:579
-#: ipalib/plugins/group.py:152 ipalib/plugins/hbacrule.py:184
+#: ipalib/plugins/group.py:155 ipalib/plugins/hbacrule.py:179
#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
-#: ipalib/plugins/host.py:259 ipalib/plugins/hostgroup.py:90
+#: ipalib/plugins/host.py:265 ipalib/plugins/hostgroup.py:90
#: ipalib/plugins/netgroup.py:122 ipalib/plugins/privilege.py:73
#: ipalib/plugins/role.py:92 ipalib/plugins/selinuxusermap.py:184
-#: ipalib/plugins/sudocmd.py:76 ipalib/plugins/sudocmdgroup.py:78
+#: ipalib/plugins/sudocmd.py:77 ipalib/plugins/sudocmdgroup.py:78
#: ipalib/plugins/sudorule.py:111
msgid "Description"
msgstr ""
@@ -942,7 +965,7 @@ msgstr ""
msgid "A description of this auto member rule"
msgstr ""
-#: ipalib/plugins/automember.py:181 ipalib/plugins/automember.py:514
+#: ipalib/plugins/automember.py:181 ipalib/plugins/automember.py:511
msgid "Default (fallback) Group"
msgstr ""
@@ -1000,12 +1023,12 @@ msgstr ""
msgid "Number of conditions added"
msgstr ""
-#: ipalib/plugins/automember.py:290 ipalib/plugins/automember.py:377
+#: ipalib/plugins/automember.py:290 ipalib/plugins/automember.py:376
#, python-format
msgid "Auto member rule: %s not found!"
msgstr ""
-#: ipalib/plugins/automember.py:333
+#: ipalib/plugins/automember.py:332
msgid ""
"\n"
" Override this so we can add completed and failed to the return "
@@ -1013,112 +1036,112 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/automember.py:349
+#: ipalib/plugins/automember.py:348
msgid ""
"\n"
" Remove conditions from an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/automember.py:354
+#: ipalib/plugins/automember.py:353
#, python-format
msgid "Removed condition(s) from \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automember.py:363
+#: ipalib/plugins/automember.py:362
msgid "Conditions that could not be removed"
msgstr ""
-#: ipalib/plugins/automember.py:367
+#: ipalib/plugins/automember.py:366
msgid "Number of conditions removed"
msgstr ""
-#: ipalib/plugins/automember.py:423
+#: ipalib/plugins/automember.py:420
msgid ""
"\n"
" Override this so we can set completed and failed.\n"
" "
msgstr ""
-#: ipalib/plugins/automember.py:439
+#: ipalib/plugins/automember.py:436
msgid ""
"\n"
" Modify an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/automember.py:444
+#: ipalib/plugins/automember.py:441
#, python-format
msgid "Modified automember rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automember.py:455
+#: ipalib/plugins/automember.py:452
msgid ""
"\n"
" Delete an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/automember.py:460
+#: ipalib/plugins/automember.py:457
#, python-format
msgid "Deleted automember rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automember.py:471
+#: ipalib/plugins/automember.py:468
msgid ""
"\n"
" Search for automember rules.\n"
" "
msgstr ""
-#: ipalib/plugins/automember.py:478
+#: ipalib/plugins/automember.py:475
#, python-format
msgid "%(count)d rules matched"
msgid_plural "%(count)d rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/automember.py:491
+#: ipalib/plugins/automember.py:488
msgid ""
"\n"
" Display information about an automember rule.\n"
" "
msgstr ""
-#: ipalib/plugins/automember.py:507
+#: ipalib/plugins/automember.py:504
msgid ""
"\n"
" Set default (fallback) group for all unmatched entries.\n"
" "
msgstr ""
-#: ipalib/plugins/automember.py:515
+#: ipalib/plugins/automember.py:512
msgid "Default (fallback) group for entries to land"
msgstr ""
-#: ipalib/plugins/automember.py:519
+#: ipalib/plugins/automember.py:516
#, python-format
msgid "Set default (fallback) group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automember.py:535
+#: ipalib/plugins/automember.py:533
msgid ""
"\n"
" Remove default (fallback) group for all unmatched entries.\n"
" "
msgstr ""
-#: ipalib/plugins/automember.py:540
+#: ipalib/plugins/automember.py:538
#, python-format
msgid "Removed default (fallback) group for automember \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automember.py:551 ipalib/plugins/automember.py:559
-#: ipalib/plugins/automember.py:583
+#: ipalib/plugins/automember.py:548 ipalib/plugins/automember.py:556
+#: ipalib/plugins/automember.py:581
msgid "No default (fallback) group set"
msgstr ""
-#: ipalib/plugins/automember.py:571
+#: ipalib/plugins/automember.py:568
msgid ""
"\n"
" Display information about the default (fallback) automember groups.\n"
@@ -1249,7 +1272,7 @@ msgstr ""
msgid "Automount Location"
msgstr ""
-#: ipalib/plugins/automount.py:215 ipalib/plugins/host.py:269
+#: ipalib/plugins/automount.py:215 ipalib/plugins/host.py:275
msgid "Location"
msgstr ""
@@ -1530,9 +1553,9 @@ msgstr[1] ""
msgid "Display an automount key."
msgstr ""
-#: ipalib/plugins/baseldap.py:41 ipalib/plugins/entitle.py:493
-#: ipalib/plugins/internal.py:276 ipalib/plugins/internal.py:618
-#: ipalib/plugins/migration.py:406 ipalib/plugins/user.py:288
+#: ipalib/plugins/baseldap.py:41 ipalib/plugins/entitle.py:495
+#: ipalib/plugins/internal.py:280 ipalib/plugins/internal.py:650
+#: ipalib/plugins/migration.py:490 ipalib/plugins/user.py:289
msgid "Password"
msgstr ""
@@ -1669,199 +1692,192 @@ msgstr ""
msgid "Invalid format. Should be name=value"
msgstr ""
-#: ipalib/plugins/baseldap.py:321
+#: ipalib/plugins/baseldap.py:286
msgid "External host"
msgstr ""
-#: ipalib/plugins/baseldap.py:450
+#: ipalib/plugins/baseldap.py:419
msgid "An IPA master host cannot be deleted or disabled"
msgstr ""
-#: ipalib/plugins/baseldap.py:465
+#: ipalib/plugins/baseldap.py:433
msgid "entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:466
+#: ipalib/plugins/baseldap.py:434
msgid "entries"
msgstr ""
-#: ipalib/plugins/baseldap.py:498 ipalib/plugins/baseldap.py:499
+#: ipalib/plugins/baseldap.py:466 ipalib/plugins/baseldap.py:467
msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:501
+#: ipalib/plugins/baseldap.py:469
#, python-format
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:502
+#: ipalib/plugins/baseldap.py:470
#, python-format
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:503
+#: ipalib/plugins/baseldap.py:471
#, python-format
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:504
+#: ipalib/plugins/baseldap.py:472
#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:695 ipalib/plugins/baseldap.py:703
-#: ipalib/plugins/baseldap.py:708
+#: ipalib/plugins/baseldap.py:664 ipalib/plugins/baseldap.py:672
+#: ipalib/plugins/baseldap.py:677
#, python-format
msgid "attribute \"%(attribute)s\" not allowed"
msgstr ""
-#: ipalib/plugins/baseldap.py:770
+#: ipalib/plugins/baseldap.py:739
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:776
+#: ipalib/plugins/baseldap.py:745
msgid ""
"Add an attribute/value pair. Format is attr=value. The attribute\n"
"must be part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:782
+#: ipalib/plugins/baseldap.py:751
msgid ""
"Delete an attribute/value pair. The option will be evaluated\n"
"last, after all sets and adds."
msgstr ""
-#: ipalib/plugins/baseldap.py:810
+#: ipalib/plugins/baseldap.py:779
msgid "attribute is not configurable"
msgstr ""
-#: ipalib/plugins/baseldap.py:919
+#: ipalib/plugins/baseldap.py:882
msgid "No such attribute on this entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:1178
+#: ipalib/plugins/baseldap.py:1145
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:1203 ipalib/plugins/baseldap.py:1270
-#: ipalib/plugins/internal.py:500
+#: ipalib/plugins/baseldap.py:1170 ipalib/plugins/baseldap.py:1240
+#: ipalib/plugins/internal.py:522
msgid "Rights"
msgstr ""
-#: ipalib/plugins/baseldap.py:1204 ipalib/plugins/baseldap.py:1271
+#: ipalib/plugins/baseldap.py:1171 ipalib/plugins/baseldap.py:1241
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
msgstr ""
-#: ipalib/plugins/baseldap.py:1280
+#: ipalib/plugins/baseldap.py:1250
msgid "Rename"
msgstr ""
-#: ipalib/plugins/baseldap.py:1281
+#: ipalib/plugins/baseldap.py:1251
#, python-format
msgid "Rename the %(ldap_obj_name)s object"
msgstr ""
-#: ipalib/plugins/baseldap.py:1359
+#: ipalib/plugins/baseldap.py:1330
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:1483 ipalib/plugins/baseldap.py:1946
+#: ipalib/plugins/baseldap.py:1457 ipalib/plugins/baseldap.py:1924
#, python-format
-msgid "comma-separated list of %s"
+msgid "%s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1495
+#: ipalib/plugins/baseldap.py:1469
#, python-format
msgid "member %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1525 ipalib/plugins/baseldap.py:1971
+#: ipalib/plugins/baseldap.py:1499 ipalib/plugins/baseldap.py:1949
#, python-format
-msgid "comma-separated list of %s to add"
+msgid "%s to add"
msgstr ""
-#: ipalib/plugins/baseldap.py:1533 ipalib/plugins/baseldap.py:1983
+#: ipalib/plugins/baseldap.py:1507 ipalib/plugins/baseldap.py:1961
#: 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:1537 ipalib/plugins/baseldap.py:1987
+#: ipalib/plugins/baseldap.py:1511 ipalib/plugins/baseldap.py:1965
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1621 ipalib/plugins/baseldap.py:2073
+#: ipalib/plugins/baseldap.py:1598 ipalib/plugins/baseldap.py:2051
#, python-format
-msgid "comma-separated list of %s to remove"
+msgid "%s to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:1628 ipalib/plugins/baseldap.py:2085
+#: ipalib/plugins/baseldap.py:1605 ipalib/plugins/baseldap.py:2063
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1632 ipalib/plugins/baseldap.py:2089
+#: ipalib/plugins/baseldap.py:1609 ipalib/plugins/baseldap.py:2067
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1718
+#: ipalib/plugins/baseldap.py:1697
msgid "Primary key only"
msgstr ""
-#: ipalib/plugins/baseldap.py:1719
+#: ipalib/plugins/baseldap.py:1698
#, python-format
msgid "Results should contain primary key attribute only (\"%s\")"
msgstr ""
-#: ipalib/plugins/baseldap.py:1727
+#: ipalib/plugins/baseldap.py:1706
#, python-format
msgid ""
"Search for %(searched_object)s with these %(relationship)s %(ldap_object)s."
msgstr ""
-#: ipalib/plugins/baseldap.py:1728
+#: ipalib/plugins/baseldap.py:1707
#, python-format
msgid ""
"Search for %(searched_object)s without these %(relationship)s "
"%(ldap_object)s."
msgstr ""
-#: ipalib/plugins/baseldap.py:1737
+#: ipalib/plugins/baseldap.py:1716
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1738
+#: ipalib/plugins/baseldap.py:1717
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:1744 ipalib/plugins/hbactest.py:214
+#: ipalib/plugins/baseldap.py:1723 ipalib/plugins/cert.py:697
+#: ipalib/plugins/hbactest.py:285
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1745
+#: ipalib/plugins/baseldap.py:1724
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/baseldap.py:1758
+#: ipalib/plugins/baseldap.py:1737
msgid "A string searched in all relevant object attributes"
msgstr ""
-#: ipalib/plugins/baseldap.py:2036
-msgid "added"
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:2138
-msgid "removed"
-msgstr ""
-
#: ipalib/plugins/batch.py:62
msgid "Nested Methods to execute"
msgstr ""
-#: ipalib/plugins/cert.py:43
+#: ipalib/plugins/cert.py:45
msgid ""
"\n"
"IPA certificate operations\n"
@@ -1885,6 +1901,18 @@ msgid ""
"* The service must exist (or you use the --add option to automatically add "
"it)\n"
"\n"
+"SEARCHING:\n"
+"\n"
+"Certificates may be searched on by certificate subject, serial number,\n"
+"revocation reason, validity dates and the issued date.\n"
+"\n"
+"When searching on dates the _from date does a >= search and the _to date\n"
+"does a <= search. When combined these are done as an AND.\n"
+"\n"
+"Dates are treated as GMT to match the dates in the certificates.\n"
+"\n"
+"The date format is YYYY-mm-dd.\n"
+"\n"
"EXAMPLES:\n"
"\n"
" Request a new certificate and add the principal:\n"
@@ -1902,6 +1930,15 @@ msgid ""
" Check the status of a signing request:\n"
" ipa cert-status 10\n"
"\n"
+" Search for certificates by hostname:\n"
+" ipa cert-find --subject=ipaserver.example.com\n"
+"\n"
+" Search for revoked certificates by reason:\n"
+" ipa cert-find --revocation-reason=5\n"
+"\n"
+" Search for certificates based on issuance date\n"
+" ipa cert-find --issuedon-from=2013-02-01 --issuedon-to=2013-02-07\n"
+"\n"
"IPA currently immediately issues (or declines) all certificate requests so\n"
"the status of a request is not normally useful. This is for future use\n"
"or the case where a CA does not immediately issue a certificate.\n"
@@ -1925,186 +1962,261 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/cert.py:112
+#: ipalib/plugins/cert.py:146
msgid "Failure decoding Certificate Signing Request:"
msgstr ""
-#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142
+#: ipalib/plugins/cert.py:159 ipalib/plugins/cert.py:176
msgid "Failure decoding Certificate Signing Request"
msgstr ""
-#: ipalib/plugins/cert.py:144
+#: ipalib/plugins/cert.py:178
#, python-format
msgid "Failure decoding Certificate Signing Request: %s"
msgstr ""
-#: ipalib/plugins/cert.py:207
+#: ipalib/plugins/cert.py:241
msgid "Submit a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:211
+#: ipalib/plugins/cert.py:245
msgid "CSR"
msgstr ""
-#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:246
+#: ipalib/plugins/cert.py:254 ipalib/plugins/service.py:321
msgid "Principal"
msgstr ""
-#: ipalib/plugins/cert.py:221
+#: ipalib/plugins/cert.py:255
msgid "Service principal for this certificate (e.g. HTTP/test.example.com)"
msgstr ""
-#: ipalib/plugins/cert.py:228
+#: ipalib/plugins/cert.py:262
msgid "automatically add the principal if it doesn't exist"
msgstr ""
-#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:443
-#: ipalib/plugins/entitle.py:175 ipalib/plugins/host.py:298
-#: ipalib/plugins/internal.py:392 ipalib/plugins/service.py:253
+#: ipalib/plugins/cert.py:270 ipalib/plugins/cert.py:482
+#: ipalib/plugins/entitle.py:176 ipalib/plugins/host.py:304
+#: ipalib/plugins/internal.py:319 ipalib/plugins/internal.py:415
+#: ipalib/plugins/service.py:328
msgid "Certificate"
msgstr ""
-#: ipalib/plugins/cert.py:239 ipalib/plugins/cert.py:446
-#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:97
+#: ipalib/plugins/cert.py:273 ipalib/plugins/cert.py:485
+#: ipalib/plugins/cert.py:639 ipalib/plugins/cert.py:640
+#: ipalib/plugins/host.py:165 ipalib/plugins/internal.py:332
+#: ipalib/plugins/service.py:102
msgid "Subject"
msgstr ""
-#: ipalib/plugins/cert.py:242 ipalib/plugins/cert.py:449
-#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:106
+#: ipalib/plugins/cert.py:276 ipalib/plugins/cert.py:488
+#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:111
msgid "Issuer"
msgstr ""
-#: ipalib/plugins/cert.py:245 ipalib/plugins/cert.py:452
-#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:109
+#: ipalib/plugins/cert.py:279 ipalib/plugins/cert.py:491
+#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:114
msgid "Not Before"
msgstr ""
-#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:455
-#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:112
+#: ipalib/plugins/cert.py:282 ipalib/plugins/cert.py:494
+#: ipalib/plugins/host.py:180 ipalib/plugins/service.py:117
msgid "Not After"
msgstr ""
-#: ipalib/plugins/cert.py:251 ipalib/plugins/cert.py:458
-#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:115
+#: ipalib/plugins/cert.py:285 ipalib/plugins/cert.py:497
+#: ipalib/plugins/host.py:183 ipalib/plugins/service.py:120
msgid "Fingerprint (MD5)"
msgstr ""
-#: ipalib/plugins/cert.py:254 ipalib/plugins/cert.py:461
-#: ipalib/plugins/host.py:180 ipalib/plugins/service.py:118
+#: ipalib/plugins/cert.py:288 ipalib/plugins/cert.py:500
+#: ipalib/plugins/host.py:186 ipalib/plugins/service.py:123
msgid "Fingerprint (SHA1)"
msgstr ""
-#: ipalib/plugins/cert.py:257 ipalib/plugins/cert.py:431
+#: ipalib/plugins/cert.py:291 ipalib/plugins/cert.py:470
+#: ipalib/plugins/cert.py:711
msgid "Serial number"
msgstr ""
-#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:467
+#: ipalib/plugins/cert.py:294 ipalib/plugins/cert.py:506
+#: ipalib/plugins/cert.py:708
msgid "Serial number (hex)"
msgstr ""
-#: ipalib/plugins/cert.py:267 ipalib/plugins/entitle.py:231
-#: ipalib/plugins/entitle.py:590 ipalib/plugins/misc.py:57
+#: ipalib/plugins/cert.py:301 ipalib/plugins/entitle.py:232
+#: ipalib/plugins/entitle.py:593 ipalib/plugins/misc.py:57
msgid "Dictionary mapping variable name to value"
msgstr ""
-#: ipalib/plugins/cert.py:302
+#: ipalib/plugins/cert.py:334
+msgid "No hostname was found in subject of request."
+msgstr ""
+
+#: ipalib/plugins/cert.py:339
#, python-format
msgid ""
"hostname in subject of request '%(subject_host)s' does not match principal "
"hostname '%(hostname)s'"
msgstr ""
-#: ipalib/plugins/cert.py:320
+#: ipalib/plugins/cert.py:357
msgid "The service principal for this request doesn't exist."
msgstr ""
-#: ipalib/plugins/cert.py:326
+#: ipalib/plugins/cert.py:363
msgid "You need to be a member of the serviceadmin role to add services"
msgstr ""
-#: ipalib/plugins/cert.py:331
+#: ipalib/plugins/cert.py:368
#, python-format
msgid ""
"Insufficient 'write' privilege to the 'userCertificate' attribute of entry "
"'%s'."
msgstr ""
-#: ipalib/plugins/cert.py:346
+#: ipalib/plugins/cert.py:384
#, python-format
msgid "no host record for subject alt name %s in certificate request"
msgstr ""
-#: ipalib/plugins/cert.py:352
+#: ipalib/plugins/cert.py:390
#, python-format
msgid ""
"Insufficient privilege to create a certificate with subject alt name '%s'."
msgstr ""
-#: ipalib/plugins/cert.py:404
+#: ipalib/plugins/cert.py:443
msgid "Check the status of a certificate signing request."
msgstr ""
-#: ipalib/plugins/cert.py:408
+#: ipalib/plugins/cert.py:447
msgid "Request id"
msgstr ""
-#: ipalib/plugins/cert.py:414
+#: ipalib/plugins/cert.py:453
msgid "Request status"
msgstr ""
-#: ipalib/plugins/cert.py:432
+#: ipalib/plugins/cert.py:471
msgid "Serial number in decimal or if prefixed with 0x in hexadecimal"
msgstr ""
-#: ipalib/plugins/cert.py:437
+#: ipalib/plugins/cert.py:476
msgid "Retrieve an existing certificate."
msgstr ""
-#: ipalib/plugins/cert.py:464 ipalib/plugins/host.py:183
-#: ipalib/plugins/service.py:121
+#: ipalib/plugins/cert.py:503 ipalib/plugins/host.py:189
+#: ipalib/plugins/internal.py:329 ipalib/plugins/internal.py:358
+#: ipalib/plugins/service.py:126
msgid "Revocation reason"
msgstr ""
-#: ipalib/plugins/cert.py:473
+#: ipalib/plugins/cert.py:512
msgid "Output filename"
msgstr ""
-#: ipalib/plugins/cert.py:474
+#: ipalib/plugins/cert.py:513
msgid "File to store the certificate in."
msgstr ""
-#: ipalib/plugins/cert.py:525
+#: ipalib/plugins/cert.py:564
msgid "Revoke a certificate."
msgstr ""
-#: ipalib/plugins/cert.py:531
+#: ipalib/plugins/cert.py:570
msgid "Revoked"
msgstr ""
-#: ipalib/plugins/cert.py:539
+#: ipalib/plugins/cert.py:578 ipalib/plugins/cert.py:644
msgid "Reason"
msgstr ""
-#: ipalib/plugins/cert.py:540
+#: ipalib/plugins/cert.py:579 ipalib/plugins/cert.py:645
msgid "Reason for revoking the certificate (0-10)"
msgstr ""
-#: ipalib/plugins/cert.py:561
+#: ipalib/plugins/cert.py:601
msgid "7 is not a valid revocation reason"
msgstr ""
-#: ipalib/plugins/cert.py:570
+#: ipalib/plugins/cert.py:611
msgid "Take a revoked certificate off hold."
msgstr ""
-#: ipalib/plugins/cert.py:576
+#: ipalib/plugins/cert.py:617
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:579 ipalib/plugins/internal.py:251
+#: ipalib/plugins/cert.py:620 ipalib/plugins/internal.py:249
msgid "Error"
msgstr ""
+#: ipalib/plugins/cert.py:635
+msgid "Search for existing certificates."
+msgstr ""
+
+#: ipalib/plugins/cert.py:651
+msgid "minimum serial number"
+msgstr ""
+
+#: ipalib/plugins/cert.py:656
+msgid "maximum serial number"
+msgstr ""
+
+#: ipalib/plugins/cert.py:661
+msgid "match the common name exactly"
+msgstr ""
+
+#: ipalib/plugins/cert.py:665
+msgid "Valid not after from this date (YYYY-mm-dd)"
+msgstr ""
+
+#: ipalib/plugins/cert.py:669
+msgid "Valid not after to this date (YYYY-mm-dd)"
+msgstr ""
+
+#: ipalib/plugins/cert.py:673
+msgid "Valid not before from this date (YYYY-mm-dd)"
+msgstr ""
+
+#: ipalib/plugins/cert.py:677
+msgid "Valid not before to this date (YYYY-mm-dd)"
+msgstr ""
+
+#: ipalib/plugins/cert.py:681
+msgid "Issued on from this date (YYYY-mm-dd)"
+msgstr ""
+
+#: ipalib/plugins/cert.py:685
+msgid "Issued on to this date (YYYY-mm-dd)"
+msgstr ""
+
+#: ipalib/plugins/cert.py:689
+msgid "Revoked on from this date (YYYY-mm-dd)"
+msgstr ""
+
+#: ipalib/plugins/cert.py:693
+msgid "Revoked on to this date (YYYY-mm-dd)"
+msgstr ""
+
+#: ipalib/plugins/cert.py:698
+msgid "Maximum number of certs returned"
+msgstr ""
+
+#: ipalib/plugins/cert.py:714 ipalib/plugins/internal.py:366
+#: ipalib/plugins/internal.py:432 ipalib/plugins/internal.py:493
+#: ipalib/plugins/internal.py:569 ipalib/plugins/internal.py:676
+msgid "Status"
+msgstr ""
+
+#: ipalib/plugins/cert.py:719
+#, python-format
+msgid "%(count)d certificate matched"
+msgid_plural "%(count)d certificates matched"
+msgstr[0] ""
+msgstr[1] ""
+
#: ipalib/plugins/config.py:32
msgid ""
"\n"
@@ -2355,7 +2467,7 @@ msgid ""
"\n"
" When managing the list of attributes you need to include all attributes\n"
" in the list, including existing ones. Add postalCode to the list:\n"
-" ipa delegation-mod --attrs=street,postalCode --group=managers --"
+" ipa delegation-mod --attrs=street --attrs=postalCode --group=managers --"
"membergroup=employees \"managers edit employees' street\"\n"
"\n"
" Display our updated rule:\n"
@@ -2385,58 +2497,61 @@ msgstr ""
msgid "Delegation name"
msgstr ""
-#: ipalib/plugins/delegation.py:84 ipalib/plugins/selfservice.py:86
-msgid ""
-"Comma-separated list of permissions to grant (read, write). Default is write."
+#: ipalib/plugins/delegation.py:84 ipalib/plugins/selfservice.py:88
+msgid "Permissions to grant (read, write). Default is write."
msgstr ""
-#: ipalib/plugins/delegation.py:97
+#: ipalib/plugins/delegation.py:90
+msgid "Attributes to which the delegation applies"
+msgstr ""
+
+#: ipalib/plugins/delegation.py:96
msgid "Member user group"
msgstr ""
-#: ipalib/plugins/delegation.py:98
+#: ipalib/plugins/delegation.py:97
msgid "User group to apply delegation to"
msgstr ""
-#: ipalib/plugins/delegation.py:131
+#: ipalib/plugins/delegation.py:130
msgid "Add a new delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:133
+#: ipalib/plugins/delegation.py:132
#, python-format
msgid "Added delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:152
+#: ipalib/plugins/delegation.py:151
msgid "Delete a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:155
+#: ipalib/plugins/delegation.py:154
#, python-format
msgid "Deleted delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:170
+#: ipalib/plugins/delegation.py:169
msgid "Modify a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:172
+#: ipalib/plugins/delegation.py:171
#, python-format
msgid "Modified delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:189
+#: ipalib/plugins/delegation.py:188
msgid "Search for delegations."
msgstr ""
-#: ipalib/plugins/delegation.py:192
+#: ipalib/plugins/delegation.py:191
#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/delegation.py:215
+#: ipalib/plugins/delegation.py:214
msgid "Display information about a delegation."
msgstr ""
@@ -2482,8 +2597,9 @@ msgid ""
"EXAMPLES:\n"
"\n"
" Add new zone:\n"
-" ipa dnszone-add example.com --name-server=nameserver.example.com \\\n"
-" --admin-email=admin@example.com\n"
+" ipa dnszone-add example.com --name-server=ns \\\n"
+" --admin-email=admin@example.com \\\n"
+" --ip-address=10.0.0.1\n"
"\n"
" Add system permission that can be used for per-zone privilege delegation:\n"
" ipa dnszone-add-permission example.com\n"
@@ -2502,7 +2618,7 @@ msgid ""
"\n"
" Add new reverse zone specified by network IP address:\n"
" ipa dnszone-add --name-from-ip=80.142.15.0/24 \\\n"
-" --name-server=nameserver.example.com\n"
+" --name-server=ns.example.com.\n"
"\n"
" Add second nameserver for example.com:\n"
" ipa dnsrecord-add example.com @ --ns-rec=nameserver2.example.com\n"
@@ -2606,6 +2722,17 @@ msgid ""
" Show records for resource www in zone example.com\n"
" ipa dnsrecord-show example.com www\n"
"\n"
+" Delegate zone sub.example to another nameserver:\n"
+" ipa dnsrecord-add example.com ns.sub --a-rec=10.0.100.5\n"
+" ipa dnsrecord-add example.com sub --ns-rec=ns.sub.example.com.\n"
+"\n"
+" If global forwarder is configured, all requests to sub.example.com will be\n"
+" routed through the global forwarder. To change the behavior for example."
+"com\n"
+" zone only and forward the request directly to ns.sub.example.com., global\n"
+" forwarding may be disabled per-zone:\n"
+" ipa dnszone-mod example.com --forward-policy=none\n"
+"\n"
" Forward all requests for the zone external.com to another nameserver using\n"
" a \"first\" policy (it will send the queries to the selected forwarder and "
"if\n"
@@ -2639,243 +2766,243 @@ msgid ""
" ipa dnsconfig-mod --forwarder=10.0.0.1\n"
msgstr ""
-#: ipalib/plugins/dns.py:281
+#: ipalib/plugins/dns.py:292
#, python-format
msgid "invalid IP address version (is %(value)d, must be %(required_value)d)!"
msgstr ""
-#: ipalib/plugins/dns.py:284
+#: ipalib/plugins/dns.py:295
msgid "invalid IP address format"
msgstr ""
-#: ipalib/plugins/dns.py:297
+#: ipalib/plugins/dns.py:308
msgid "invalid IP network format"
msgstr ""
-#: ipalib/plugins/dns.py:306
+#: ipalib/plugins/dns.py:317
msgid "each ACL element must be terminated with a semicolon"
msgstr ""
-#: ipalib/plugins/dns.py:323
+#: ipalib/plugins/dns.py:334
msgid "invalid address format"
msgstr ""
-#: ipalib/plugins/dns.py:365 ipalib/plugins/dns.py:408
+#: ipalib/plugins/dns.py:378 ipalib/plugins/dns.py:421
#, python-format
msgid "invalid domain-name: %s"
msgstr ""
-#: ipalib/plugins/dns.py:394
+#: ipalib/plugins/dns.py:407
#, python-format
msgid "%(port)s is not a valid port"
msgstr ""
-#: ipalib/plugins/dns.py:470
+#: ipalib/plugins/dns.py:483
#, python-format
msgid "DNS reverse zone for IP address %(addr)s not found"
msgstr ""
-#: ipalib/plugins/dns.py:482
+#: ipalib/plugins/dns.py:495
#, python-format
msgid "DNS zone %(zone)s not found"
msgstr ""
-#: ipalib/plugins/dns.py:496
+#: ipalib/plugins/dns.py:509
#, python-format
msgid "IP address %(ip)s is already assigned in domain %(domain)s."
msgstr ""
-#: ipalib/plugins/dns.py:509
+#: ipalib/plugins/dns.py:522
#, python-format
msgid ""
"Reverse record for IP address %(ip)s already exists in reverse zone %(zone)s."
msgstr ""
-#: ipalib/plugins/dns.py:545
+#: ipalib/plugins/dns.py:558
#, python-format
msgid "%s record"
msgstr ""
-#: ipalib/plugins/dns.py:547
+#: ipalib/plugins/dns.py:560
#, python-format
-msgid "Comma-separated list of raw %s records"
+msgid "Raw %s records"
msgstr ""
-#: ipalib/plugins/dns.py:548
+#: ipalib/plugins/dns.py:561
#, python-format
msgid "%s Record"
msgstr ""
-#: ipalib/plugins/dns.py:549
+#: ipalib/plugins/dns.py:562
#, python-format
msgid "(see RFC %s for details)"
msgstr ""
-#: ipalib/plugins/dns.py:605
+#: ipalib/plugins/dns.py:618
#, python-format
msgid "'%s' is a required part of DNS record"
msgstr ""
-#: ipalib/plugins/dns.py:612
+#: ipalib/plugins/dns.py:625
msgid "Invalid number of parts!"
msgstr ""
-#: ipalib/plugins/dns.py:667
+#: ipalib/plugins/dns.py:680
#, python-format
msgid "DNS RR type \"%s\" is not supported by bind-dyndb-ldap plugin"
msgstr ""
-#: ipalib/plugins/dns.py:683
+#: ipalib/plugins/dns.py:696
#, python-format
msgid "format must be specified as \"%(format)s\" %(rfcs)s"
msgstr ""
-#: ipalib/plugins/dns.py:818
+#: ipalib/plugins/dns.py:831
msgid "Create reverse"
msgstr ""
-#: ipalib/plugins/dns.py:819
+#: ipalib/plugins/dns.py:832
msgid "Create reverse record for this IP Address"
msgstr ""
-#: ipalib/plugins/dns.py:854
+#: ipalib/plugins/dns.py:867
#, python-format
msgid "Cannot create reverse record for \"%(value)s\": %(exc)s"
msgstr ""
-#: ipalib/plugins/dns.py:863 ipalib/plugins/dns.py:886
-#: ipalib/plugins/host.py:390
+#: ipalib/plugins/dns.py:876 ipalib/plugins/dns.py:899
+#: ipalib/plugins/host.py:396
msgid "IP Address"
msgstr ""
-#: ipalib/plugins/dns.py:872 ipalib/plugins/dns.py:1483
+#: ipalib/plugins/dns.py:885 ipalib/plugins/dns.py:1496
msgid "Record data"
msgstr ""
-#: ipalib/plugins/dns.py:895
+#: ipalib/plugins/dns.py:908
msgid "Subtype"
msgstr ""
-#: ipalib/plugins/dns.py:901 ipalib/plugins/dns.py:940
-#: ipalib/plugins/dns.py:1193 ipalib/plugins/dns.py:1290
-#: ipalib/plugins/dns.py:2780
+#: ipalib/plugins/dns.py:914 ipalib/plugins/dns.py:953
+#: ipalib/plugins/dns.py:1206 ipalib/plugins/dns.py:1303
+#: ipalib/plugins/dns.py:2896
msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:915
+#: ipalib/plugins/dns.py:928
msgid "Certificate Type"
msgstr ""
-#: ipalib/plugins/dns.py:920 ipalib/plugins/dns.py:975
-#: ipalib/plugins/dns.py:1373
+#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:988
+#: ipalib/plugins/dns.py:1386
msgid "Key Tag"
msgstr ""
-#: ipalib/plugins/dns.py:925 ipalib/plugins/dns.py:980
-#: ipalib/plugins/dns.py:1014 ipalib/plugins/dns.py:1351
-#: ipalib/plugins/dns.py:1399
+#: ipalib/plugins/dns.py:938 ipalib/plugins/dns.py:993
+#: ipalib/plugins/dns.py:1027 ipalib/plugins/dns.py:1364
+#: ipalib/plugins/dns.py:1412
msgid "Algorithm"
msgstr ""
-#: ipalib/plugins/dns.py:930
+#: ipalib/plugins/dns.py:943
msgid "Certificate/CRL"
msgstr ""
-#: ipalib/plugins/dns.py:941
+#: ipalib/plugins/dns.py:954
msgid "A hostname which this alias hostname points to"
msgstr ""
-#: ipalib/plugins/dns.py:961 ipalib/plugins/dns.py:1327
-#: ipalib/plugins/internal.py:501
+#: ipalib/plugins/dns.py:974 ipalib/plugins/dns.py:1340
+#: ipalib/plugins/internal.py:523
msgid "Target"
msgstr ""
-#: ipalib/plugins/dns.py:985
+#: ipalib/plugins/dns.py:998
msgid "Digest Type"
msgstr ""
-#: ipalib/plugins/dns.py:990
+#: ipalib/plugins/dns.py:1003
msgid "Digest"
msgstr ""
-#: ipalib/plugins/dns.py:1004 ipalib/plugins/dns.py:1269
+#: ipalib/plugins/dns.py:1017 ipalib/plugins/dns.py:1282
msgid "Flags"
msgstr ""
-#: ipalib/plugins/dns.py:1009
+#: ipalib/plugins/dns.py:1022
msgid "Protocol"
msgstr ""
-#: ipalib/plugins/dns.py:1019
+#: ipalib/plugins/dns.py:1032
msgid "Public Key"
msgstr ""
-#: ipalib/plugins/dns.py:1033 ipalib/plugins/dns.py:1174
-#: ipalib/plugins/dns.py:1263
+#: ipalib/plugins/dns.py:1046 ipalib/plugins/dns.py:1187
+#: ipalib/plugins/dns.py:1276
msgid "Preference"
msgstr ""
-#: ipalib/plugins/dns.py:1034 ipalib/plugins/dns.py:1175
+#: ipalib/plugins/dns.py:1047 ipalib/plugins/dns.py:1188
msgid "Preference given to this exchanger. Lower values are more preferred"
msgstr ""
-#: ipalib/plugins/dns.py:1040 ipalib/plugins/dns.py:1181
+#: ipalib/plugins/dns.py:1053 ipalib/plugins/dns.py:1194
msgid "Exchanger"
msgstr ""
-#: ipalib/plugins/dns.py:1041
+#: ipalib/plugins/dns.py:1054
msgid "A host willing to act as a key exchanger"
msgstr ""
-#: ipalib/plugins/dns.py:1050
+#: ipalib/plugins/dns.py:1063
msgid "Degrees Latitude"
msgstr ""
-#: ipalib/plugins/dns.py:1055
+#: ipalib/plugins/dns.py:1068
msgid "Minutes Latitude"
msgstr ""
-#: ipalib/plugins/dns.py:1060
+#: ipalib/plugins/dns.py:1073
msgid "Seconds Latitude"
msgstr ""
-#: ipalib/plugins/dns.py:1066
+#: ipalib/plugins/dns.py:1079
msgid "Direction Latitude"
msgstr ""
-#: ipalib/plugins/dns.py:1070
+#: ipalib/plugins/dns.py:1083
msgid "Degrees Longitude"
msgstr ""
-#: ipalib/plugins/dns.py:1075
+#: ipalib/plugins/dns.py:1088
msgid "Minutes Longitude"
msgstr ""
-#: ipalib/plugins/dns.py:1080
+#: ipalib/plugins/dns.py:1093
msgid "Seconds Longitude"
msgstr ""
-#: ipalib/plugins/dns.py:1086
+#: ipalib/plugins/dns.py:1099
msgid "Direction Longitude"
msgstr ""
-#: ipalib/plugins/dns.py:1090
+#: ipalib/plugins/dns.py:1103
msgid "Altitude"
msgstr ""
-#: ipalib/plugins/dns.py:1096
+#: ipalib/plugins/dns.py:1109
msgid "Size"
msgstr ""
-#: ipalib/plugins/dns.py:1102
+#: ipalib/plugins/dns.py:1115
msgid "Horizontal Precision"
msgstr ""
-#: ipalib/plugins/dns.py:1108
+#: ipalib/plugins/dns.py:1121
msgid "Vertical Precision"
msgstr ""
-#: ipalib/plugins/dns.py:1115
+#: ipalib/plugins/dns.py:1128
msgid ""
"format must be specified as\n"
" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz"
@@ -2890,499 +3017,543 @@ msgid ""
" See RFC 1876 for details"
msgstr ""
-#: ipalib/plugins/dns.py:1164
+#: ipalib/plugins/dns.py:1177
#, python-format
msgid "'%(required)s' must not be empty when '%(name)s' is set"
msgstr ""
-#: ipalib/plugins/dns.py:1182
+#: ipalib/plugins/dns.py:1195
msgid "A host willing to act as a mail exchanger"
msgstr ""
-#: ipalib/plugins/dns.py:1200
+#: ipalib/plugins/dns.py:1213
msgid ""
"format must be specified as \"NEXT TYPE1 [TYPE2 [TYPE3 [...]]]\" (see RFC "
"4034 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:1207
+#: ipalib/plugins/dns.py:1220
msgid "Next Domain Name"
msgstr ""
-#: ipalib/plugins/dns.py:1210
+#: ipalib/plugins/dns.py:1223
msgid "Type Map"
msgstr ""
-#: ipalib/plugins/dns.py:1250
+#: ipalib/plugins/dns.py:1263
msgid "flags must be one of \"S\", \"A\", \"U\", or \"P\""
msgstr ""
-#: ipalib/plugins/dns.py:1258
+#: ipalib/plugins/dns.py:1271
msgid "Order"
msgstr ""
-#: ipalib/plugins/dns.py:1273 ipalib/plugins/hbactest.py:194
-#: ipalib/plugins/internal.py:540 ipalib/plugins/service.py:241
+#: ipalib/plugins/dns.py:1286 ipalib/plugins/hbactest.py:265
+#: ipalib/plugins/internal.py:568 ipalib/plugins/service.py:316
msgid "Service"
msgstr ""
-#: ipalib/plugins/dns.py:1276
+#: ipalib/plugins/dns.py:1289
msgid "Regular Expression"
msgstr ""
-#: ipalib/plugins/dns.py:1279
+#: ipalib/plugins/dns.py:1292
msgid "Replacement"
msgstr ""
-#: ipalib/plugins/dns.py:1291
+#: ipalib/plugins/dns.py:1304
msgid "The hostname this reverse record points to"
msgstr ""
-#: ipalib/plugins/dns.py:1311 ipalib/plugins/pwpolicy.py:265
+#: ipalib/plugins/dns.py:1324 ipalib/plugins/pwpolicy.py:265
msgid "Priority"
msgstr ""
-#: ipalib/plugins/dns.py:1316
+#: ipalib/plugins/dns.py:1329
msgid "Weight"
msgstr ""
-#: ipalib/plugins/dns.py:1321
+#: ipalib/plugins/dns.py:1334
msgid "Port"
msgstr ""
-#: ipalib/plugins/dns.py:1328
+#: ipalib/plugins/dns.py:1341
msgid ""
"The domain name of the target host or '.' if the service is decidedly not "
"available at this domain"
msgstr ""
-#: ipalib/plugins/dns.py:1337
+#: ipalib/plugins/dns.py:1350
msgid "the value does not follow \"YYYYMMDDHHMMSS\" time format"
msgstr ""
-#: ipalib/plugins/dns.py:1347
+#: ipalib/plugins/dns.py:1360
msgid "Type Covered"
msgstr ""
-#: ipalib/plugins/dns.py:1356
+#: ipalib/plugins/dns.py:1369
msgid "Labels"
msgstr ""
-#: ipalib/plugins/dns.py:1361
+#: ipalib/plugins/dns.py:1374
msgid "Original TTL"
msgstr ""
-#: ipalib/plugins/dns.py:1366
+#: ipalib/plugins/dns.py:1379
msgid "Signature Expiration"
msgstr ""
-#: ipalib/plugins/dns.py:1370
+#: ipalib/plugins/dns.py:1383
msgid "Signature Inception"
msgstr ""
-#: ipalib/plugins/dns.py:1378
+#: ipalib/plugins/dns.py:1391
msgid "Signer's Name"
msgstr ""
-#: ipalib/plugins/dns.py:1381
+#: ipalib/plugins/dns.py:1394
msgid "Signature"
msgstr ""
-#: ipalib/plugins/dns.py:1404
+#: ipalib/plugins/dns.py:1417
msgid "Fingerprint Type"
msgstr ""
-#: ipalib/plugins/dns.py:1409
+#: ipalib/plugins/dns.py:1422
msgid "Fingerprint"
msgstr ""
-#: ipalib/plugins/dns.py:1430
+#: ipalib/plugins/dns.py:1443
msgid "Text Data"
msgstr ""
-#: ipalib/plugins/dns.py:1477
+#: ipalib/plugins/dns.py:1490
msgid "Records"
msgstr ""
-#: ipalib/plugins/dns.py:1480
+#: ipalib/plugins/dns.py:1493
msgid "Record type"
msgstr ""
-#: ipalib/plugins/dns.py:1511
+#: ipalib/plugins/dns.py:1526
#, python-format
msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
msgstr ""
-#: ipalib/plugins/dns.py:1529
+#: ipalib/plugins/dns.py:1544
msgid "Managedby permission"
msgstr ""
-#: ipalib/plugins/dns.py:1538
+#: ipalib/plugins/dns.py:1553
msgid "DNS zone"
msgstr ""
-#: ipalib/plugins/dns.py:1539
+#: ipalib/plugins/dns.py:1554
msgid "DNS zones"
msgstr ""
-#: ipalib/plugins/dns.py:1548
+#: ipalib/plugins/dns.py:1563
msgid "DNS Zones"
msgstr ""
-#: ipalib/plugins/dns.py:1549
+#: ipalib/plugins/dns.py:1564
msgid "DNS Zone"
msgstr ""
-#: ipalib/plugins/dns.py:1555
+#: ipalib/plugins/dns.py:1570
msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:1556
+#: ipalib/plugins/dns.py:1571
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:1562
+#: ipalib/plugins/dns.py:1577
msgid "Reverse zone IP network"
msgstr ""
-#: ipalib/plugins/dns.py:1563
+#: ipalib/plugins/dns.py:1578
msgid "IP network to create reverse zone name from"
msgstr ""
-#: ipalib/plugins/dns.py:1568
+#: ipalib/plugins/dns.py:1583
msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:1569
+#: ipalib/plugins/dns.py:1584
msgid "Authoritative nameserver domain name"
msgstr ""
-#: ipalib/plugins/dns.py:1574 ipalib/plugins/dns.py:1575
+#: ipalib/plugins/dns.py:1590 ipalib/plugins/dns.py:1591
msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:1581
+#: ipalib/plugins/dns.py:1597
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:1582
+#: ipalib/plugins/dns.py:1598
msgid "SOA record serial number"
msgstr ""
-#: ipalib/plugins/dns.py:1590
+#: ipalib/plugins/dns.py:1606
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:1591
+#: ipalib/plugins/dns.py:1607
msgid "SOA record refresh time"
msgstr ""
-#: ipalib/plugins/dns.py:1599
+#: ipalib/plugins/dns.py:1615
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:1600
+#: ipalib/plugins/dns.py:1616
msgid "SOA record retry time"
msgstr ""
-#: ipalib/plugins/dns.py:1608
+#: ipalib/plugins/dns.py:1624
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:1609
+#: ipalib/plugins/dns.py:1625
msgid "SOA record expire time"
msgstr ""
-#: ipalib/plugins/dns.py:1617
+#: ipalib/plugins/dns.py:1633
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:1618
+#: ipalib/plugins/dns.py:1634
msgid "How long should negative responses be cached"
msgstr ""
-#: ipalib/plugins/dns.py:1626
+#: ipalib/plugins/dns.py:1642
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:1627
+#: ipalib/plugins/dns.py:1643
msgid "SOA record time to live"
msgstr ""
-#: ipalib/plugins/dns.py:1633
+#: ipalib/plugins/dns.py:1649
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:1634
+#: ipalib/plugins/dns.py:1650
msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:1639 ipalib/plugins/dns.py:1640
+#: ipalib/plugins/dns.py:1655 ipalib/plugins/dns.py:1656
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:1646
+#: ipalib/plugins/dns.py:1662
msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:1647
+#: ipalib/plugins/dns.py:1663
msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:1653
+#: ipalib/plugins/dns.py:1669
msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:1654
+#: ipalib/plugins/dns.py:1670
msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:1663
+#: ipalib/plugins/dns.py:1679
msgid "Allow query"
msgstr ""
-#: ipalib/plugins/dns.py:1664
+#: ipalib/plugins/dns.py:1680
msgid ""
"Semicolon separated list of IP addresses or networks which are allowed to "
"issue queries"
msgstr ""
-#: ipalib/plugins/dns.py:1672
+#: ipalib/plugins/dns.py:1688
msgid "Allow transfer"
msgstr ""
-#: ipalib/plugins/dns.py:1673
+#: ipalib/plugins/dns.py:1689
msgid ""
"Semicolon separated list of IP addresses or networks which are allowed to "
"transfer the zone"
msgstr ""
-#: ipalib/plugins/dns.py:1680
+#: ipalib/plugins/dns.py:1696
msgid "Zone forwarders"
msgstr ""
-#: ipalib/plugins/dns.py:1681
+#: ipalib/plugins/dns.py:1697
msgid ""
-"A list of per-zone forwarders. A custom port can be specified for each "
-"forwarder using a standard format \"IP_ADDRESS port PORT\""
+"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:1687 ipalib/plugins/dns.py:2850
+#: ipalib/plugins/dns.py:1703 ipalib/plugins/dns.py:2966
msgid "Forward policy"
msgstr ""
-#: ipalib/plugins/dns.py:1692 ipalib/plugins/dns.py:2855
+#: ipalib/plugins/dns.py:1704
+msgid ""
+"Per-zone conditional forwarding policy. Set to \"none\" to disable "
+"forwarding to global forwarder for this zone. In that case, conditional zone "
+"forwarders are disregarded."
+msgstr ""
+
+#: ipalib/plugins/dns.py:1711 ipalib/plugins/dns.py:2973
msgid "Allow PTR sync"
msgstr ""
-#: ipalib/plugins/dns.py:1693
+#: ipalib/plugins/dns.py:1712
msgid ""
"Allow synchronization of forward (A, AAAA) and reverse (PTR) records in the "
"zone"
msgstr ""
-#: ipalib/plugins/dns.py:1723
+#: ipalib/plugins/dns.py:1774
msgid "Create new DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:1728 ipalib/plugins/dns.py:2210
-#: ipalib/plugins/host.py:382 ipalib/plugins/permission.py:297
-#: ipalib/plugins/service.py:293
+#: ipalib/plugins/dns.py:1779 ipalib/plugins/dns.py:1870
+#: ipalib/plugins/dns.py:2331 ipalib/plugins/host.py:388
+#: ipalib/plugins/permission.py:298 ipalib/plugins/realmdomains.py:90
+#: ipalib/plugins/service.py:369
msgid "Force"
msgstr ""
-#: ipalib/plugins/dns.py:1729
-msgid "Force DNS zone creation even if nameserver not in DNS."
+#: ipalib/plugins/dns.py:1780
+msgid "Force DNS zone creation even if nameserver is not resolvable."
msgstr ""
-#: ipalib/plugins/dns.py:1732
-msgid "Add the nameserver to DNS with this IP address"
+#: ipalib/plugins/dns.py:1783
+msgid "Add forward record for nameserver located in the created zone"
msgstr ""
-#: ipalib/plugins/dns.py:1739
+#: ipalib/plugins/dns.py:1790
msgid "DNS is not configured"
msgstr ""
-#: ipalib/plugins/dns.py:1749
-msgid "Nameserver address is not a fully qualified domain name"
+#: ipalib/plugins/dns.py:1800
+msgid "Nameserver address is not a domain name"
msgstr ""
-#: ipalib/plugins/dns.py:1776
+#: ipalib/plugins/dns.py:1813
+msgid "Nameserver for reverse zone cannot be a relative DNS name"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1817
+msgid "Nameserver DNS record is created for for forward zones only"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1821
+msgid "Nameserver DNS record is created only for nameservers in current zone"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1850
msgid "Delete DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:1790
+#: ipalib/plugins/dns.py:1852
+#, python-format
+msgid "Deleted DNS zone \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:1866
msgid "Modify DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:1798
+#: ipalib/plugins/dns.py:1871
+msgid "Force nameserver change even if nameserver not in DNS"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1888
msgid "Search for DNS zones (SOA records)."
msgstr ""
-#: ipalib/plugins/dns.py:1822
+#: ipalib/plugins/dns.py:1912
msgid "Forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:1824
+#: ipalib/plugins/dns.py:1914
msgid "Search for forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:1844
+#: ipalib/plugins/dns.py:1934
msgid "Display information about a DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:1852
+#: ipalib/plugins/dns.py:1942
msgid "Disable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:1855
+#: ipalib/plugins/dns.py:1945
#, python-format
msgid "Disabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:1873
+#: ipalib/plugins/dns.py:1963
msgid "Enable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:1876
+#: ipalib/plugins/dns.py:1966
#, python-format
msgid "Enabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:1893
+#: ipalib/plugins/dns.py:1983
msgid "Add a permission for per-zone access delegation."
msgstr ""
-#: ipalib/plugins/dns.py:1896
+#: ipalib/plugins/dns.py:1986
#, python-format
msgid "Added system permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:1929
+#: ipalib/plugins/dns.py:2019
msgid "Remove a permission for per-zone access delegation."
msgstr ""
-#: ipalib/plugins/dns.py:1932
+#: ipalib/plugins/dns.py:2022
#, python-format
msgid "Removed system permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:1963
+#: ipalib/plugins/dns.py:2053
msgid "DNS resource record"
msgstr ""
-#: ipalib/plugins/dns.py:1964
+#: ipalib/plugins/dns.py:2054
msgid "DNS resource records"
msgstr ""
-#: ipalib/plugins/dns.py:1969
+#: ipalib/plugins/dns.py:2059
msgid "DNS Resource Records"
msgstr ""
-#: ipalib/plugins/dns.py:1970
+#: ipalib/plugins/dns.py:2060
msgid "DNS Resource Record"
msgstr ""
-#: ipalib/plugins/dns.py:1976 ipalib/plugins/dns.py:1977
+#: ipalib/plugins/dns.py:2066 ipalib/plugins/dns.py:2067
msgid "Record name"
msgstr ""
-#: ipalib/plugins/dns.py:1982 ipalib/plugins/dns.py:1983
+#: ipalib/plugins/dns.py:2072 ipalib/plugins/dns.py:2073
msgid "Time to live"
msgstr ""
-#: ipalib/plugins/dns.py:1987
+#: ipalib/plugins/dns.py:2077
msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:1988
+#: ipalib/plugins/dns.py:2078
msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:1994
+#: ipalib/plugins/dns.py:2084
msgid "Structured"
msgstr ""
-#: ipalib/plugins/dns.py:1995
+#: ipalib/plugins/dns.py:2085
msgid "Parse all raw DNS records and return them in a structured way"
msgstr ""
-#: ipalib/plugins/dns.py:2026
+#: ipalib/plugins/dns.py:2116
#, 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:2032
+#: ipalib/plugins/dns.py:2122
#, python-format
msgid ""
"Reverse zone %(name)s requires exactly %(count)d IP address components, "
"%(user_count)d given"
msgstr ""
-#: ipalib/plugins/dns.py:2197
+#: ipalib/plugins/dns.py:2294
+msgid "only one CNAME record is allowed per name (RFC 2136, section 1.1.5)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:2300
+msgid ""
+"CNAME record is not allowed to coexist with any other record (RFC 1034, "
+"section 3.6.2)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:2312
+msgid "only one DNAME record is allowed per name (RFC 6672, section 2.4)"
+msgstr ""
+
+#: ipalib/plugins/dns.py:2317
msgid ""
-"CNAME record is not allowed to coexist with any other records except PTR"
+"DNAME record is not allowed to coexist with an NS record except when located "
+"in a zone root record (RFC 6672, section 2.3)"
msgstr ""
-#: ipalib/plugins/dns.py:2204
+#: ipalib/plugins/dns.py:2325
msgid "Add new DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:2212
+#: ipalib/plugins/dns.py:2333
msgid "force NS record creation even if its hostname is not in DNS"
msgstr ""
-#: ipalib/plugins/dns.py:2249
+#: ipalib/plugins/dns.py:2370
msgid "Please choose a type of DNS resource record to be added"
msgstr ""
-#: ipalib/plugins/dns.py:2250
+#: ipalib/plugins/dns.py:2371
#, python-format
msgid "The most common types for this type of zone are: %s\n"
msgstr ""
-#: ipalib/plugins/dns.py:2255
+#: ipalib/plugins/dns.py:2376
msgid "DNS resource record type"
msgstr ""
-#: ipalib/plugins/dns.py:2271
+#: ipalib/plugins/dns.py:2392
#, python-format
msgid "Invalid or unsupported type. Allowed values are: %s"
msgstr ""
-#: ipalib/plugins/dns.py:2299
+#: ipalib/plugins/dns.py:2420
#, python-format
msgid "Raw value of a DNS record was already set by \"%(name)s\" option"
msgstr ""
-#: ipalib/plugins/dns.py:2396
+#: ipalib/plugins/dns.py:2515
msgid "Modify a DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:2413
+#: ipalib/plugins/dns.py:2532
msgid "DNS zone root record cannot be renamed"
msgstr ""
-#: ipalib/plugins/dns.py:2431
+#: ipalib/plugins/dns.py:2550
msgid "DNS records can be only updated one at a time"
msgstr ""
-#: ipalib/plugins/dns.py:2514
+#: ipalib/plugins/dns.py:2630
msgid "No option to modify specific record provided."
msgstr ""
-#: ipalib/plugins/dns.py:2517 ipalib/plugins/dns.py:2689
+#: ipalib/plugins/dns.py:2633 ipalib/plugins/dns.py:2805
msgid "Current DNS record contents:\n"
msgstr ""
-#: ipalib/plugins/dns.py:2539
+#: ipalib/plugins/dns.py:2655
#, python-format
msgid "Modify %(name)s '%(value)s'?"
msgstr ""
-#: ipalib/plugins/dns.py:2547
+#: ipalib/plugins/dns.py:2663
#, python-format
msgid ""
"%(count)d %(type)s record skipped. Only one value per DNS record type can be "
@@ -3393,104 +3564,110 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/dns.py:2559
+#: ipalib/plugins/dns.py:2675
#, python-format
msgid "Deleted record \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:2566
+#: ipalib/plugins/dns.py:2682
msgid "Delete DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:2568
+#: ipalib/plugins/dns.py:2686
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:2574
+#: ipalib/plugins/dns.py:2692
msgid "Delete all associated records"
msgstr ""
-#: ipalib/plugins/dns.py:2642
+#: ipalib/plugins/dns.py:2758
#, python-format
msgid "Zone record '%s' cannot be deleted"
msgstr ""
-#: ipalib/plugins/dns.py:2681
+#: ipalib/plugins/dns.py:2797
msgid "No option to delete specific record provided."
msgstr ""
-#: ipalib/plugins/dns.py:2682
+#: ipalib/plugins/dns.py:2798
msgid "Delete all?"
msgstr ""
-#: ipalib/plugins/dns.py:2710
+#: ipalib/plugins/dns.py:2826
#, python-format
msgid "Delete %(name)s '%(value)s'?"
msgstr ""
-#: ipalib/plugins/dns.py:2721
+#: ipalib/plugins/dns.py:2837
msgid "Display DNS resource."
msgstr ""
-#: ipalib/plugins/dns.py:2738
+#: ipalib/plugins/dns.py:2854
msgid "Search for DNS resources."
msgstr ""
-#: ipalib/plugins/dns.py:2773
+#: ipalib/plugins/dns.py:2889
msgid "Resolve a host name in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:2776
+#: ipalib/plugins/dns.py:2892
#, python-format
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:2793
+#: ipalib/plugins/dns.py:2909
#, python-format
msgid "Host '%(host)s' not found"
msgstr ""
-#: ipalib/plugins/dns.py:2830
+#: ipalib/plugins/dns.py:2946
msgid "DNS configuration options"
msgstr ""
-#: ipalib/plugins/dns.py:2836 ipalib/plugins/dns.py:2837
+#: ipalib/plugins/dns.py:2952 ipalib/plugins/dns.py:2953
msgid "DNS Global Configuration"
msgstr ""
-#: ipalib/plugins/dns.py:2843
+#: ipalib/plugins/dns.py:2959
msgid "Global forwarders"
msgstr ""
-#: ipalib/plugins/dns.py:2844
+#: ipalib/plugins/dns.py:2960
+msgid ""
+"Global forwarders. A custom port can be specified for each forwarder using a "
+"standard format \"IP_ADDRESS port PORT\""
+msgstr ""
+
+#: ipalib/plugins/dns.py:2967
msgid ""
-"A list of global forwarders. A custom port can be specified for each "
-"forwarder using a standard format \"IP_ADDRESS port PORT\""
+"Global forwarding policy. Set to \"none\" to disable any configured global "
+"forwarders."
msgstr ""
-#: ipalib/plugins/dns.py:2856
+#: ipalib/plugins/dns.py:2974
msgid "Allow synchronization of forward (A, AAAA) and reverse (PTR) records"
msgstr ""
-#: ipalib/plugins/dns.py:2860
+#: ipalib/plugins/dns.py:2978
msgid "Zone refresh interval"
msgstr ""
-#: ipalib/plugins/dns.py:2861
+#: ipalib/plugins/dns.py:2979
msgid "An interval between regular polls of the name server for new DNS zones"
msgstr ""
-#: ipalib/plugins/dns.py:2877
+#: ipalib/plugins/dns.py:2994
msgid "Global DNS configuration is empty"
msgstr ""
-#: ipalib/plugins/dns.py:2883
+#: ipalib/plugins/dns.py:3000
msgid "Modify global DNS configuration."
msgstr ""
-#: ipalib/plugins/dns.py:2894
+#: ipalib/plugins/dns.py:3011
msgid "Show the current global DNS configuration."
msgstr ""
@@ -3531,137 +3708,137 @@ msgid ""
"Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n"
msgstr ""
-#: ipalib/plugins/entitle.py:151 ipalib/plugins/virtual.py:65
+#: ipalib/plugins/entitle.py:152 ipalib/plugins/virtual.py:65
msgid "not allowed to perform this command"
msgstr ""
-#: ipalib/plugins/entitle.py:184
+#: ipalib/plugins/entitle.py:185
msgid "entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:185
+#: ipalib/plugins/entitle.py:186
msgid "entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:191
+#: ipalib/plugins/entitle.py:192
msgid "Entitlements"
msgstr ""
-#: ipalib/plugins/entitle.py:192
+#: ipalib/plugins/entitle.py:193
msgid "Entitlement"
msgstr ""
-#: ipalib/plugins/entitle.py:209
+#: ipalib/plugins/entitle.py:210
msgid "Display current entitlements."
msgstr ""
-#: ipalib/plugins/entitle.py:215 ipalib/plugins/entitle.py:604
+#: ipalib/plugins/entitle.py:216 ipalib/plugins/entitle.py:607
msgid "UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:218 ipalib/plugins/entitle.py:305
-#: ipalib/plugins/entitle.py:389 ipalib/plugins/entitle.py:577
-#: ipalib/plugins/entitle.py:691 ipalib/plugins/internal.py:405
+#: ipalib/plugins/entitle.py:219 ipalib/plugins/entitle.py:306
+#: ipalib/plugins/entitle.py:391 ipalib/plugins/entitle.py:580
+#: ipalib/plugins/entitle.py:692 ipalib/plugins/internal.py:428
msgid "Product"
msgstr ""
-#: ipalib/plugins/entitle.py:221 ipalib/plugins/entitle.py:285
-#: ipalib/plugins/entitle.py:295 ipalib/plugins/entitle.py:392
-#: ipalib/plugins/entitle.py:580 ipalib/plugins/entitle.py:681
+#: ipalib/plugins/entitle.py:222 ipalib/plugins/entitle.py:286
+#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:394
+#: ipalib/plugins/entitle.py:583 ipalib/plugins/entitle.py:682
msgid "Quantity"
msgstr ""
-#: ipalib/plugins/entitle.py:224 ipalib/plugins/entitle.py:308
-#: ipalib/plugins/entitle.py:583 ipalib/plugins/entitle.py:694
-#: ipalib/plugins/internal.py:396
+#: ipalib/plugins/entitle.py:225 ipalib/plugins/entitle.py:309
+#: ipalib/plugins/entitle.py:586 ipalib/plugins/entitle.py:695
+#: ipalib/plugins/internal.py:419
msgid "Consumed"
msgstr ""
-#: ipalib/plugins/entitle.py:277
+#: ipalib/plugins/entitle.py:278
msgid "Consume an entitlement."
msgstr ""
-#: ipalib/plugins/entitle.py:281
+#: ipalib/plugins/entitle.py:282
#, python-format
msgid "Consumed %(value)s entitlement(s)."
msgstr ""
-#: ipalib/plugins/entitle.py:344
+#: ipalib/plugins/entitle.py:346
#, python-format
msgid "There are only %d entitlements left"
msgstr ""
-#: ipalib/plugins/entitle.py:383
+#: ipalib/plugins/entitle.py:385
msgid "Retrieve the entitlement certs."
msgstr ""
-#: ipalib/plugins/entitle.py:395 ipalib/plugins/internal.py:408
+#: ipalib/plugins/entitle.py:397 ipalib/plugins/internal.py:431
msgid "Start"
msgstr ""
-#: ipalib/plugins/entitle.py:398 ipalib/plugins/internal.py:399
+#: ipalib/plugins/entitle.py:400 ipalib/plugins/internal.py:422
msgid "End"
msgstr ""
-#: ipalib/plugins/entitle.py:401 ipalib/plugins/host.py:162
-#: ipalib/plugins/internal.py:342 ipalib/plugins/service.py:100
+#: ipalib/plugins/entitle.py:403 ipalib/plugins/host.py:168
+#: ipalib/plugins/internal.py:363 ipalib/plugins/service.py:105
msgid "Serial Number"
msgstr ""
-#: ipalib/plugins/entitle.py:436 ipalib/plugins/entitle.py:629
-#: ipalib/plugins/entitle.py:631
+#: ipalib/plugins/entitle.py:438 ipalib/plugins/entitle.py:632
+#: ipalib/plugins/entitle.py:634
msgid "Not an entitlement certificate"
msgstr ""
-#: ipalib/plugins/entitle.py:461
+#: ipalib/plugins/entitle.py:463
msgid "Search for entitlement accounts."
msgstr ""
-#: ipalib/plugins/entitle.py:474
+#: ipalib/plugins/entitle.py:476
msgid "Register to the entitlement system."
msgstr ""
-#: ipalib/plugins/entitle.py:478
+#: ipalib/plugins/entitle.py:480
msgid "Registered to entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:482 ipalib/plugins/internal.py:277
+#: ipalib/plugins/entitle.py:484 ipalib/plugins/internal.py:281
msgid "Username"
msgstr ""
-#: ipalib/plugins/entitle.py:489
+#: ipalib/plugins/entitle.py:491
msgid "Enrollment UUID (not implemented)"
msgstr ""
-#: ipalib/plugins/entitle.py:494
+#: ipalib/plugins/entitle.py:496
msgid "Registration password"
msgstr ""
-#: ipalib/plugins/entitle.py:514
+#: ipalib/plugins/entitle.py:516
msgid "No permission to register"
msgstr ""
-#: ipalib/plugins/entitle.py:520
+#: ipalib/plugins/entitle.py:522
msgid "Registering to specific UUID is not supported yet."
msgstr ""
-#: ipalib/plugins/entitle.py:573
+#: ipalib/plugins/entitle.py:576
msgid "Import an entitlement certificate."
msgstr ""
-#: ipalib/plugins/entitle.py:605
+#: ipalib/plugins/entitle.py:608
msgid "Enrollment UUID"
msgstr ""
-#: ipalib/plugins/entitle.py:670
+#: ipalib/plugins/entitle.py:671
msgid "Re-sync the local entitlement cache with the entitlement server."
msgstr ""
-#: ipalib/plugins/entitle.py:674
+#: ipalib/plugins/entitle.py:675
msgid "Entitlement(s) synchronized."
msgstr ""
-#: ipalib/plugins/group.py:32
+#: ipalib/plugins/group.py:33
msgid ""
"\n"
"Groups of users\n"
@@ -3703,8 +3880,8 @@ msgid ""
" To add the \"remoteadmins\" group to the \"localadmins\" group:\n"
" ipa group-add-member --groups=remoteadmins localadmins\n"
"\n"
-" Add a list of users to the \"localadmins\" group:\n"
-" ipa group-add-member --users=test1,test2 localadmins\n"
+" Add multiple users to the \"localadmins\" group:\n"
+" ipa group-add-member --users=test1 --users=test2 localadmins\n"
"\n"
" Remove a user from the \"localadmins\" group:\n"
" ipa group-remove-member --users=test2 localadmins\n"
@@ -3719,190 +3896,202 @@ msgid ""
"POSIX\n"
"groups.\n"
"\n"
-"An external group member is currently a Security Identifier as defined by\n"
-"the trusted domain.\n"
+"An external group member is currently a Security Identifier (SID) as defined "
+"by\n"
+"the trusted domain. When adding external group members, it is possible to\n"
+"specify them in either SID, or DOM\\name, or name@domain format. IPA will "
+"attempt\n"
+"to resolve passed name to SID with the use of Global Catalog of the trusted "
+"domain.\n"
"\n"
"Example:\n"
"\n"
-"1. Make note of the trusted domain security identifier\n"
-"\n"
-" domainsid = `ipa trust-show <ad.domain> | grep Identifier | cut -d: -f2`\n"
-"\n"
-"2. Create group for the trusted domain admins' mapping and their local POSIX "
+"1. Create group for the trusted domain admins' mapping and their local POSIX "
"group:\n"
"\n"
" ipa group-add --desc='<ad.domain> admins external map' ad_admins_external "
"--external\n"
" ipa group-add --desc='<ad.domain> admins' ad_admins\n"
"\n"
-"3. Add security identifier of Domain Admins of the <ad.domain> to the "
+"2. Add security identifier of Domain Admins of the <ad.domain> to the "
"ad_admins_external\n"
-" group (security identifier of <ad.domain SID>-513 is Domain Admins "
-"group):\n"
+" group:\n"
"\n"
-" ipa group-add-member ad_admins_external --external ${domainsid}-513\n"
+" ipa group-add-member ad_admins_external --external 'AD\\Domain Admins'\n"
"\n"
-"4. Allow members of ad_admins_external group to be associated with ad_admins "
+"3. Allow members of ad_admins_external group to be associated with ad_admins "
"POSIX group:\n"
"\n"
" ipa group-add-member ad_admins --groups ad_admins_external\n"
+"\n"
+"4. List members of external members of ad_admins_external group to see their "
+"SIDs:\n"
+"\n"
+" ipa group-show ad_admins_external\n"
msgstr ""
-#: ipalib/plugins/group.py:117 ipalib/plugins/group.py:226
-#: ipalib/plugins/group.py:416 ipalib/plugins/user.py:188
+#: ipalib/plugins/group.py:120 ipalib/plugins/group.py:229
+#: ipalib/plugins/group.py:449 ipalib/plugins/user.py:189
msgid "group"
msgstr ""
-#: ipalib/plugins/group.py:118
+#: ipalib/plugins/group.py:121
msgid "groups"
msgstr ""
-#: ipalib/plugins/group.py:137 ipalib/plugins/hbacrule.py:195
-#: ipalib/plugins/internal.py:494 ipalib/plugins/selinuxusermap.py:195
+#: ipalib/plugins/group.py:140 ipalib/plugins/hbacrule.py:190
+#: ipalib/plugins/internal.py:516 ipalib/plugins/selinuxusermap.py:195
#: ipalib/plugins/sudorule.py:159
msgid "User Groups"
msgstr ""
-#: ipalib/plugins/group.py:138
+#: ipalib/plugins/group.py:141
msgid "User Group"
msgstr ""
-#: ipalib/plugins/group.py:146
+#: ipalib/plugins/group.py:149
msgid "Group name"
msgstr ""
-#: ipalib/plugins/group.py:153 ipalib/plugins/sudocmdgroup.py:79
+#: ipalib/plugins/group.py:156 ipalib/plugins/sudocmdgroup.py:79
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:157 ipalib/plugins/user.py:312
+#: ipalib/plugins/group.py:160 ipalib/plugins/user.py:311
msgid "GID"
msgstr ""
-#: ipalib/plugins/group.py:158
+#: ipalib/plugins/group.py:161
msgid "GID (use this option to set it manually)"
msgstr ""
-#: ipalib/plugins/group.py:167
+#: ipalib/plugins/group.py:170
msgid "External member"
msgstr ""
-#: ipalib/plugins/group.py:168
-msgid "comma-separated SIDs of members of a trusted domain"
+#: ipalib/plugins/group.py:171
+msgid "Members of a trusted domain in DOM\\name or name@domain form"
msgstr ""
-#: ipalib/plugins/group.py:174
+#: ipalib/plugins/group.py:177
msgid "Create a new group."
msgstr ""
-#: ipalib/plugins/group.py:176
+#: ipalib/plugins/group.py:179
#, python-format
msgid "Added group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:181
+#: ipalib/plugins/group.py:184
msgid "Create as a non-POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:186
+#: ipalib/plugins/group.py:189
msgid "Allow adding external non-IPA members from trusted domains"
msgstr ""
-#: ipalib/plugins/group.py:211
+#: ipalib/plugins/group.py:214
msgid "Delete group."
msgstr ""
-#: ipalib/plugins/group.py:213
+#: ipalib/plugins/group.py:216
#, python-format
msgid "Deleted group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:227
+#: ipalib/plugins/group.py:230
msgid "privileged group"
msgstr ""
-#: ipalib/plugins/group.py:245
+#: ipalib/plugins/group.py:248
msgid "Modify a group."
msgstr ""
-#: ipalib/plugins/group.py:247
+#: ipalib/plugins/group.py:250
#, python-format
msgid "Modified group \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:252
+#: ipalib/plugins/group.py:255
msgid "change to a POSIX group"
msgstr ""
-#: ipalib/plugins/group.py:256
+#: ipalib/plugins/group.py:259
msgid "change to support external non-IPA members from trusted domains"
msgstr ""
-#: ipalib/plugins/group.py:315
+#: ipalib/plugins/group.py:318
msgid "Search for groups."
msgstr ""
-#: ipalib/plugins/group.py:320
+#: ipalib/plugins/group.py:323
#, python-format
msgid "%(count)d group matched"
msgid_plural "%(count)d groups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/group.py:326
+#: ipalib/plugins/group.py:329
msgid "search for private groups"
msgstr ""
-#: ipalib/plugins/group.py:357
+#: ipalib/plugins/group.py:333
+msgid "search for POSIX groups"
+msgstr ""
+
+#: ipalib/plugins/group.py:337
+msgid ""
+"search for groups with support of external non-IPA members from trusted "
+"domains"
+msgstr ""
+
+#: ipalib/plugins/group.py:341
+msgid "search for non-POSIX groups"
+msgstr ""
+
+#: ipalib/plugins/group.py:388
msgid "Display information about a named group."
msgstr ""
-#: ipalib/plugins/group.py:363
+#: ipalib/plugins/group.py:394
msgid "Add members to a group."
msgstr ""
-#: ipalib/plugins/group.py:372
+#: ipalib/plugins/group.py:403 ipalib/plugins/group.py:457
+#: ipalib/plugins/hbactest.py:382
msgid ""
"Cannot perform external member validation without Samba 4 support installed. "
"Make sure you have installed server-trust-ad sub-package of IPA on the server"
msgstr ""
-#: ipalib/plugins/group.py:377
+#: ipalib/plugins/group.py:408 ipalib/plugins/group.py:462
msgid ""
"Cannot perform join operation without own domain configured. Make sure you "
"have run ipa-adtrust-install on the IPA server first"
msgstr ""
-#: ipalib/plugins/group.py:387
-msgid "external member"
-msgstr ""
-
-#: ipalib/plugins/group.py:388
-msgid "values are not recognized as valid SIDs from trusted domain"
-msgstr ""
-
-#: ipalib/plugins/group.py:403
+#: ipalib/plugins/group.py:436
msgid "Remove members from a group."
msgstr ""
-#: ipalib/plugins/group.py:438
+#: ipalib/plugins/group.py:490
msgid "Detach a managed group from a user."
msgstr ""
-#: ipalib/plugins/group.py:441
+#: ipalib/plugins/group.py:493
#, python-format
msgid "Detached group \"%(value)s\" from user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/group.py:462
+#: ipalib/plugins/group.py:514
msgid "not allowed to modify user entries"
msgstr ""
-#: ipalib/plugins/group.py:468
+#: ipalib/plugins/group.py:520
msgid "not allowed to modify group entries"
msgstr ""
-#: ipalib/plugins/group.py:487
+#: ipalib/plugins/group.py:539
msgid "Not a managed group"
msgstr ""
@@ -3911,15 +4100,15 @@ msgid ""
"\n"
"Host-based access control\n"
"\n"
-"Control who can access what services on what hosts and from where. You\n"
-"can use HBAC to control which users or groups on a source host can\n"
+"Control who can access what services on what hosts. You\n"
+"can use HBAC to control which users or groups can\n"
"access a service, or group of services, on a target host.\n"
"\n"
-"You can also specify a category of users, target hosts, and source\n"
-"hosts. This is currently limited to \"all\", but might be expanded in the\n"
+"You can also specify a category of users and target hosts.\n"
+"This is currently limited to \"all\", but might be expanded in the\n"
"future.\n"
"\n"
-"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n"
+"Target hosts in HBAC rules must be hosts managed by IPA.\n"
"\n"
"The available services and groups of services are controlled by the\n"
"hbacsvc and hbacsvcgroup plug-ins respectively.\n"
@@ -3929,7 +4118,7 @@ msgid ""
" Create a rule, \"test1\", that grants all users access to the host \"server"
"\" from\n"
" anywhere:\n"
-" ipa hbacrule-add --usercat=all --srchostcat=all test1\n"
+" ipa hbacrule-add --usercat=all test1\n"
" ipa hbacrule-add-host --hosts=server.example.com test1\n"
"\n"
" Display the properties of a named HBAC rule:\n"
@@ -3937,7 +4126,7 @@ msgid ""
"\n"
" Create a rule for a specific service. This lets the user john access\n"
" the sshd service on any machine from any machine:\n"
-" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n"
+" ipa hbacrule-add --hostcat=all john_sshd\n"
" ipa hbacrule-add-user --users=john john_sshd\n"
" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n"
"\n"
@@ -3945,8 +4134,8 @@ msgid ""
" the FTP service on any machine from any machine:\n"
" ipa hbacsvcgroup-add ftpers\n"
" ipa hbacsvc-add sftp\n"
-" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n"
-" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=ftp --hbacsvcs=sftp ftpers\n"
+" ipa hbacrule-add --hostcat=all john_ftp\n"
" ipa hbacrule-add-user --users=john john_ftp\n"
" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n"
"\n"
@@ -4014,194 +4203,160 @@ msgstr ""
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:168
-msgid "Source host category"
-msgstr ""
-
#: ipalib/plugins/hbacrule.py:169
-msgid "Source host category the rule applies to"
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:174
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:175
+#: ipalib/plugins/hbacrule.py:170
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:187 ipalib/plugins/internal.py:643
+#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:675
#: ipalib/plugins/selinuxusermap.py:187 ipalib/plugins/sudorule.py:114
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbacrule.py:191 ipalib/plugins/internal.py:495
+#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/internal.py:517
#: ipalib/plugins/selinuxusermap.py:191 ipalib/plugins/sudorule.py:155
-#: ipalib/plugins/user.py:224
+#: ipalib/plugins/user.py:225
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbacrule.py:199 ipalib/plugins/host.py:247
-#: ipalib/plugins/internal.py:489 ipalib/plugins/selinuxusermap.py:199
+#: ipalib/plugins/hbacrule.py:194 ipalib/plugins/host.py:253
+#: ipalib/plugins/internal.py:511 ipalib/plugins/selinuxusermap.py:199
#: ipalib/plugins/sudorule.py:163
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:203 ipalib/plugins/hostgroup.py:75
-#: ipalib/plugins/internal.py:488 ipalib/plugins/selinuxusermap.py:203
+#: ipalib/plugins/hbacrule.py:198 ipalib/plugins/hostgroup.py:75
+#: ipalib/plugins/internal.py:510 ipalib/plugins/selinuxusermap.py:203
#: ipalib/plugins/sudorule.py:167
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:207
-msgid "Source Hosts"
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:211
-msgid "Source Host Groups"
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:215 ipalib/plugins/internal.py:436
-#: ipalib/plugins/service.py:240
+#: ipalib/plugins/hbacrule.py:204 ipalib/plugins/internal.py:458
+#: ipalib/plugins/service.py:315
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbacrule.py:219
+#: ipalib/plugins/hbacrule.py:208
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:229
+#: ipalib/plugins/hbacrule.py:218
msgid "Create a new HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:231
+#: ipalib/plugins/hbacrule.py:220
#, python-format
msgid "Added HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:243
+#: ipalib/plugins/hbacrule.py:232
msgid "Delete an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:245
+#: ipalib/plugins/hbacrule.py:234
#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:260
+#: ipalib/plugins/hbacrule.py:249
msgid "Modify an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:262
+#: ipalib/plugins/hbacrule.py:251
#, python-format
msgid "Modified HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:272 ipalib/plugins/netgroup.py:213
+#: ipalib/plugins/hbacrule.py:261 ipalib/plugins/netgroup.py:213
#: ipalib/plugins/sudorule.py:289
msgid "user category cannot be set to 'all' while there are allowed users"
msgstr ""
-#: ipalib/plugins/hbacrule.py:274 ipalib/plugins/netgroup.py:215
+#: ipalib/plugins/hbacrule.py:263 ipalib/plugins/netgroup.py:215
#: ipalib/plugins/sudorule.py:291
msgid "host category cannot be set to 'all' while there are allowed hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:276
-msgid ""
-"sourcehost category cannot be set to 'all' while there are allowed "
-"sourcehosts"
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:278
+#: ipalib/plugins/hbacrule.py:265
msgid ""
"service category cannot be set to 'all' while there are allowed services"
msgstr ""
-#: ipalib/plugins/hbacrule.py:285
+#: ipalib/plugins/hbacrule.py:272
msgid "Search for HBAC rules."
msgstr ""
-#: ipalib/plugins/hbacrule.py:288
+#: ipalib/plugins/hbacrule.py:275
#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hbacrule.py:295
+#: ipalib/plugins/hbacrule.py:282
msgid "Display the properties of an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:301
+#: ipalib/plugins/hbacrule.py:288
msgid "Enable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:303
+#: ipalib/plugins/hbacrule.py:290
#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:328
+#: ipalib/plugins/hbacrule.py:315
msgid "Disable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:330
+#: ipalib/plugins/hbacrule.py:317
#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:362 ipalib/plugins/hbacrule.py:402
+#: ipalib/plugins/hbacrule.py:349 ipalib/plugins/hbacrule.py:389
msgid "Access time"
msgstr ""
-#: ipalib/plugins/hbacrule.py:436
+#: ipalib/plugins/hbacrule.py:423
msgid "Add users and groups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:450 ipalib/plugins/selinuxusermap.py:460
+#: ipalib/plugins/hbacrule.py:437 ipalib/plugins/selinuxusermap.py:460
#: ipalib/plugins/sudorule.py:439
msgid "users cannot be added when user category='all'"
msgstr ""
-#: ipalib/plugins/hbacrule.py:457
+#: ipalib/plugins/hbacrule.py:444
msgid "Remove users and groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:466
+#: ipalib/plugins/hbacrule.py:453
msgid "Add target hosts and hostgroups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:480 ipalib/plugins/selinuxusermap.py:492
+#: ipalib/plugins/hbacrule.py:467 ipalib/plugins/selinuxusermap.py:492
#: ipalib/plugins/sudorule.py:475
msgid "hosts cannot be added when host category='all'"
msgstr ""
-#: ipalib/plugins/hbacrule.py:487
+#: ipalib/plugins/hbacrule.py:474
msgid "Remove target hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:496
-msgid "Add source hosts and hostgroups from a HBAC rule."
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:510
-msgid "source hosts cannot be added when sourcehost category='all'"
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:521
-msgid "Remove source hosts and hostgroups from an HBAC rule."
-msgstr ""
-
-#: ipalib/plugins/hbacrule.py:534
+#: ipalib/plugins/hbacrule.py:507
msgid "Add services to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:548
+#: ipalib/plugins/hbacrule.py:521
msgid "services cannot be added when service category='all'"
msgstr ""
-#: ipalib/plugins/hbacrule.py:555
+#: ipalib/plugins/hbacrule.py:528
msgid "Remove service and service groups from an HBAC rule."
msgstr ""
@@ -4314,14 +4469,14 @@ msgid ""
" ipa hbacsvcgroup-add --desc=\"login services\" login\n"
"\n"
" Add members to an HBAC service group:\n"
-" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=sshd --hbacsvcs=login login\n"
"\n"
" Display information about a named group:\n"
" ipa hbacsvcgroup-show login\n"
"\n"
" Add a new group to the \"login\" group:\n"
" ipa hbacsvcgroup-add --desc=\"switch users\" login\n"
-" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n"
+" ipa hbacsvcgroup-add-member --hbacsvcs=su --hbacsvcs=su-l login\n"
"\n"
" Delete an HBAC service group:\n"
" ipa hbacsvcgroup-del login\n"
@@ -4401,13 +4556,12 @@ msgstr ""
msgid "Remove members from an HBAC service group."
msgstr ""
-#: ipalib/plugins/hbactest.py:27
+#: ipalib/plugins/hbactest.py:35
msgid ""
"\n"
"Simulate use of Host-based access controls\n"
"\n"
-"HBAC rules control who can access what services on what hosts and from "
-"where.\n"
+"HBAC rules control who can access what services on what hosts.\n"
"You can use HBAC to control which users or groups can access a service,\n"
"or group of services, on a target host.\n"
"\n"
@@ -4420,7 +4574,7 @@ msgid ""
"\n"
" ipa hbactest --user= --host= --service=\n"
" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n"
-" [--srchost= ] [--sizelimit= ]\n"
+" [--sizelimit= ]\n"
"\n"
" --user, --host, and --service are mandatory, others are optional.\n"
"\n"
@@ -4445,9 +4599,6 @@ msgid ""
"change it\n"
" with --sizelimit option.\n"
"\n"
-" If --srchost is specified, it will be ignored. It is left because of "
-"compatibility reasons only.\n"
-"\n"
"EXAMPLES:\n"
"\n"
" 1. Use all enabled HBAC rules in IPA database to simulate:\n"
@@ -4455,10 +4606,10 @@ msgid ""
" --------------------\n"
" Access granted: True\n"
" --------------------\n"
-" notmatched: my-second-rule\n"
-" notmatched: my-third-rule\n"
-" notmatched: myrule\n"
-" matched: allow_all\n"
+" Not matched rules: my-second-rule\n"
+" Not matched rules: my-third-rule\n"
+" Not matched rules: myrule\n"
+" Matched rules: allow_all\n"
"\n"
" 2. Disable detailed summary of how rules were applied:\n"
" $ ipa hbactest --user=a1a --host=bar --service=sshd --nodetail\n"
@@ -4467,125 +4618,206 @@ msgid ""
" --------------------\n"
"\n"
" 3. Test explicitly specified HBAC rules:\n"
-" $ ipa hbactest --user=a1a --host=bar --service=sshd --rules=my-"
-"second-rule,myrule\n"
+" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n"
+" --rules=myrule --rules=my-second-rule\n"
" ---------------------\n"
" Access granted: False\n"
" ---------------------\n"
-" notmatched: my-second-rule\n"
-" notmatched: myrule\n"
+" Not matched rules: my-second-rule\n"
+" Not matched rules: myrule\n"
"\n"
" 4. Use all enabled HBAC rules in IPA database + explicitly specified "
"rules:\n"
-" $ ipa hbactest --user=a1a --host=bar --service=sshd --rules=my-"
-"second-rule,myrule --enabled\n"
+" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n"
+" --rules=myrule --rules=my-second-rule --enabled\n"
" --------------------\n"
" Access granted: True\n"
" --------------------\n"
-" notmatched: my-second-rule\n"
-" notmatched: my-third-rule\n"
-" notmatched: myrule\n"
-" matched: allow_all\n"
+" Not matched rules: my-second-rule\n"
+" Not matched rules: my-third-rule\n"
+" Not matched rules: myrule\n"
+" Matched rules: allow_all\n"
"\n"
" 5. Test all disabled HBAC rules in IPA database:\n"
" $ ipa hbactest --user=a1a --host=bar --service=sshd --disabled\n"
" ---------------------\n"
" Access granted: False\n"
" ---------------------\n"
-" notmatched: new-rule\n"
+" Not matched rules: new-rule\n"
"\n"
" 6. Test all disabled HBAC rules in IPA database + explicitly specified "
"rules:\n"
-" $ ipa hbactest --user=a1a --host=bar --service=sshd --rules=my-"
-"second-rule,myrule --disabled\n"
+" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n"
+" --rules=myrule --rules=my-second-rule --disabled\n"
" ---------------------\n"
" Access granted: False\n"
" ---------------------\n"
-" notmatched: my-second-rule\n"
-" notmatched: my-third-rule\n"
-" notmatched: myrule\n"
+" Not matched rules: my-second-rule\n"
+" Not matched rules: my-third-rule\n"
+" Not matched rules: myrule\n"
"\n"
" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n"
-" $ ipa hbactest --user=a1a --host=bar --service=sshd --enabled "
-"--disabled\n"
+" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n"
+" --enabled --disabled\n"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" Not matched rules: my-second-rule\n"
+" Not matched rules: my-third-rule\n"
+" Not matched rules: myrule\n"
+" Not matched rules: new-rule\n"
+" Matched rules: allow_all\n"
+"\n"
+"\n"
+"HBACTEST AND TRUSTED DOMAINS\n"
+"\n"
+"When an external trusted domain is configured in IPA, HBAC rules are also "
+"applied\n"
+"on users accessing IPA resources from the trusted domain. Trusted domain "
+"users and\n"
+"groups (and their SIDs) can be then assigned to external groups which can "
+"be\n"
+"members of POSIX groups in IPA which can be used in HBAC rules and thus "
+"allowing\n"
+"access to resources protected by the HBAC system.\n"
+"\n"
+"hbactest plugin is capable of testing access for both local IPA users and "
+"users\n"
+"from the trusted domains, either by a fully qualified user name or by user "
+"SID.\n"
+"Such user names need to have a trusted domain specified as a short name\n"
+"(DOMAIN\\Administrator) or with a user principal name (UPN), "
+"Administrator@ad.test.\n"
+"\n"
+"Please note that hbactest executed with a trusted domain user as --user "
+"parameter\n"
+"can be only run by members of \"trust admins\" group.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" 1. Test if a user from a trusted domain specified by its shortname "
+"matches any\n"
+" rule:\n"
+"\n"
+" $ ipa hbactest --user 'DOMAIN\\Administrator' --host `hostname` --"
+"service sshd\n"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" Matched rules: allow_all\n"
+" Matched rules: can_login\n"
+"\n"
+" 2. Test if a user from a trusted domain specified by its domain name "
+"matches\n"
+" any rule:\n"
+"\n"
+" $ ipa hbactest --user 'Administrator@domain.com' --host `hostname` --"
+"service sshd\n"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" Matched rules: allow_all\n"
+" Matched rules: can_login\n"
+"\n"
+" 3. Test if a user from a trusted domain specified by its SID matches any "
+"rule:\n"
+"\n"
+" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-500 \\\n"
+" --host `hostname` --service sshd\n"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" Matched rules: allow_all\n"
+" Matched rules: can_login\n"
+"\n"
+" 4. Test if other user from a trusted domain specified by its SID matches "
+"any rule:\n"
+"\n"
+" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-500 \\\n"
+" --host `hostname` --service sshd\n"
" --------------------\n"
" Access granted: True\n"
" --------------------\n"
-" notmatched: my-second-rule\n"
-" notmatched: my-third-rule\n"
-" notmatched: myrule\n"
-" notmatched: new-rule\n"
-" matched: allow_all\n"
+" Matched rules: allow_all\n"
+" Matched rules: can_login\n"
"\n"
+" 5. Test if other user from a trusted domain specified by its shortname "
+"matches\n"
+" any rule:\n"
+"\n"
+" $ ipa hbactest --user 'DOMAIN\\Otheruser' --host `hostname` --service "
+"sshd\n"
+" --------------------\n"
+" Access granted: True\n"
+" --------------------\n"
+" Matched rules: allow_all\n"
+" Not matched rules: can_login\n"
msgstr ""
-#: ipalib/plugins/hbactest.py:167
+#: ipalib/plugins/hbactest.py:241
msgid "Simulate use of Host-based access controls"
msgstr ""
-#: ipalib/plugins/hbactest.py:171
+#: ipalib/plugins/hbactest.py:245
msgid "Warning"
msgstr ""
-#: ipalib/plugins/hbactest.py:172
+#: ipalib/plugins/hbactest.py:246
msgid "Matched rules"
msgstr ""
-#: ipalib/plugins/hbactest.py:173
+#: ipalib/plugins/hbactest.py:247
msgid "Not matched rules"
msgstr ""
-#: ipalib/plugins/hbactest.py:174
+#: ipalib/plugins/hbactest.py:248
msgid "Non-existent or invalid rules"
msgstr ""
-#: ipalib/plugins/hbactest.py:175
+#: ipalib/plugins/hbactest.py:249
msgid "Result of simulation"
msgstr ""
-#: ipalib/plugins/hbactest.py:181 ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/hbactest.py:255 ipalib/plugins/krbtpolicy.py:85
#: ipalib/plugins/passwd.py:70
msgid "User name"
msgstr ""
-#: ipalib/plugins/hbactest.py:186
-msgid "Source host"
-msgstr ""
-
-#: ipalib/plugins/hbactest.py:190
+#: ipalib/plugins/hbactest.py:261
msgid "Target host"
msgstr ""
-#: ipalib/plugins/hbactest.py:198
+#: ipalib/plugins/hbactest.py:269
msgid "Rules to test. If not specified, --enabled is assumed"
msgstr ""
-#: ipalib/plugins/hbactest.py:203
+#: ipalib/plugins/hbactest.py:274
msgid "Hide details which rules are matched, not matched, or invalid"
msgstr ""
-#: ipalib/plugins/hbactest.py:207
+#: ipalib/plugins/hbactest.py:278
msgid "Include all enabled IPA rules into test [default]"
msgstr ""
-#: ipalib/plugins/hbactest.py:211
+#: ipalib/plugins/hbactest.py:282
msgid "Include all disabled IPA rules into test"
msgstr ""
-#: ipalib/plugins/hbactest.py:215
+#: ipalib/plugins/hbactest.py:286
msgid "Maximum number of rules to process when no --rules is specified"
msgstr ""
-#: ipalib/plugins/hbactest.py:293
+#: ipalib/plugins/hbactest.py:364
msgid "Unresolved rules in --rules"
msgstr ""
-#: ipalib/plugins/hbactest.py:362
-#, python-format
-msgid "Sourcehost value of rule \"%s\" is ignored"
+#: ipalib/plugins/hbactest.py:388
+msgid ""
+"Cannot search in trusted domains without own domain configured. Make sure "
+"you have run ipa-adtrust-install on the IPA server first"
msgstr ""
-#: ipalib/plugins/hbactest.py:376
+#: ipalib/plugins/hbactest.py:475
#, python-format
msgid "Access granted: %s"
msgstr ""
@@ -4650,210 +4882,210 @@ msgid ""
" ipa host-add-managedby --hosts=test2 test\n"
msgstr ""
-#: ipalib/plugins/host.py:150 ipalib/plugins/service.py:91
+#: ipalib/plugins/host.py:156 ipalib/plugins/service.py:96
msgid "Keytab"
msgstr ""
-#: ipalib/plugins/host.py:165 ipalib/plugins/internal.py:343
-#: ipalib/plugins/service.py:103
+#: ipalib/plugins/host.py:171 ipalib/plugins/internal.py:364
+#: ipalib/plugins/service.py:108
msgid "Serial Number (hex)"
msgstr ""
-#: ipalib/plugins/host.py:186
+#: ipalib/plugins/host.py:192
msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/host.py:189 ipalib/plugins/user.py:91
+#: ipalib/plugins/host.py:195 ipalib/plugins/user.py:92
msgid "SSH public key fingerprint"
msgstr ""
-#: ipalib/plugins/host.py:215
+#: ipalib/plugins/host.py:221
msgid "host"
msgstr ""
-#: ipalib/plugins/host.py:216
+#: ipalib/plugins/host.py:222
msgid "hosts"
msgstr ""
-#: ipalib/plugins/host.py:248 ipalib/plugins/internal.py:487
-#: ipalib/plugins/internal.py:528
+#: ipalib/plugins/host.py:254 ipalib/plugins/internal.py:509
+#: ipalib/plugins/internal.py:556
msgid "Host"
msgstr ""
-#: ipalib/plugins/host.py:253
+#: ipalib/plugins/host.py:259
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:260
+#: ipalib/plugins/host.py:266
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:264
+#: ipalib/plugins/host.py:270
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:265
+#: ipalib/plugins/host.py:271
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:270
+#: ipalib/plugins/host.py:276
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:274
+#: ipalib/plugins/host.py:280
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:275
+#: ipalib/plugins/host.py:281
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:279
+#: ipalib/plugins/host.py:285
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:280
+#: ipalib/plugins/host.py:286
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:284
+#: ipalib/plugins/host.py:290
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:285
+#: ipalib/plugins/host.py:291
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:288
+#: ipalib/plugins/host.py:294
msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:293 ipalib/plugins/user.py:300
+#: ipalib/plugins/host.py:299 ipalib/plugins/user.py:301
msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:299 ipalib/plugins/service.py:254
+#: ipalib/plugins/host.py:305 ipalib/plugins/service.py:329
msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:302 ipalib/plugins/host.py:607
+#: ipalib/plugins/host.py:308 ipalib/plugins/host.py:618
msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:310
+#: ipalib/plugins/host.py:316
msgid "MAC address"
msgstr ""
-#: ipalib/plugins/host.py:311
+#: ipalib/plugins/host.py:317
msgid "Hardware MAC address(es) on this host"
msgstr ""
-#: ipalib/plugins/host.py:315 ipalib/plugins/user.py:366
+#: ipalib/plugins/host.py:321 ipalib/plugins/user.py:363
msgid "SSH public key"
msgstr ""
-#: ipalib/plugins/host.py:375
+#: ipalib/plugins/host.py:381
msgid "Add a new host."
msgstr ""
-#: ipalib/plugins/host.py:378
+#: ipalib/plugins/host.py:384
#, python-format
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:383
+#: ipalib/plugins/host.py:389
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:386
+#: ipalib/plugins/host.py:392
msgid "skip reverse DNS detection"
msgstr ""
-#: ipalib/plugins/host.py:389
+#: ipalib/plugins/host.py:395
msgid "Add the host to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/host.py:468
+#: ipalib/plugins/host.py:476
#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
msgstr ""
-#: ipalib/plugins/host.py:488
+#: ipalib/plugins/host.py:497
msgid "Delete a host."
msgstr ""
-#: ipalib/plugins/host.py:490
+#: ipalib/plugins/host.py:499
#, python-format
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:495
+#: ipalib/plugins/host.py:504
msgid "Remove entries from DNS"
msgstr ""
-#: ipalib/plugins/host.py:598
+#: ipalib/plugins/host.py:609
msgid "Modify information about a host."
msgstr ""
-#: ipalib/plugins/host.py:601
+#: ipalib/plugins/host.py:612
#, python-format
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:608
+#: ipalib/plugins/host.py:619
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:612
+#: ipalib/plugins/host.py:623
msgid "Update DNS entries"
msgstr ""
-#: ipalib/plugins/host.py:625
+#: ipalib/plugins/host.py:636
msgid "Password cannot be set on enrolled host."
msgstr ""
-#: ipalib/plugins/host.py:629
+#: ipalib/plugins/host.py:640
msgid "cn is immutable"
msgstr ""
-#: ipalib/plugins/host.py:733
+#: ipalib/plugins/host.py:759
msgid "Search for hosts."
msgstr ""
-#: ipalib/plugins/host.py:737
+#: ipalib/plugins/host.py:763
#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/host.py:818
+#: ipalib/plugins/host.py:845
msgid "Display information about a host."
msgstr ""
-#: ipalib/plugins/host.py:823 ipalib/plugins/service.py:472
+#: ipalib/plugins/host.py:850 ipalib/plugins/service.py:560
msgid "file to store certificate in"
msgstr ""
-#: ipalib/plugins/host.py:854 ipalib/plugins/service.py:491
+#: ipalib/plugins/host.py:882 ipalib/plugins/service.py:580
#, python-format
msgid "Certificate stored in file '%(file)s'"
msgstr ""
-#: ipalib/plugins/host.py:865
+#: ipalib/plugins/host.py:893
msgid "Disable the Kerberos key, SSL certificate and all services of a host."
msgstr ""
-#: ipalib/plugins/host.py:868
+#: ipalib/plugins/host.py:896
#, python-format
msgid "Disabled host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:957
+#: ipalib/plugins/host.py:989
msgid "Add hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/host.py:972
+#: ipalib/plugins/host.py:1004
msgid "Remove hosts that can manage this host."
msgstr ""
@@ -4873,8 +5105,8 @@ msgid ""
" Add another new host group:\n"
" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n"
"\n"
-" Add members to the hostgroup:\n"
-" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n"
+" Add members to the hostgroup (using Bash brace expansion):\n"
+" ipa hostgroup-add-member --hosts={box1,box2,box3} baltimore\n"
"\n"
" Add a hostgroup as a member of another hostgroup:\n"
" ipa hostgroup-add-member --hostgroups=baltimore maryland\n"
@@ -4996,7 +5228,7 @@ msgid ""
"\n"
"and an ID range of a trusted domain must set\n"
" - rid-base: the first RID of the corresponding RID range\n"
-" - dom_sid: domain SID of the trusted domain\n"
+" - sid: domain SID of the trusted domain\n"
"\n"
"\n"
"\n"
@@ -5061,7 +5293,6 @@ msgid ""
"during installation or upgrade from an older version. The ID range for a\n"
"trusted domain will be created together with the trust by 'ipa trust-"
"add ...'.\n"
-"The use cases for this CLI are\n"
"\n"
"USE CASES:\n"
"\n"
@@ -5102,75 +5333,94 @@ msgid ""
"the\n"
"user. RIDs are unique in a domain, 32bit values and are used for users and\n"
"groups.\n"
+"\n"
+"WARNING:\n"
+"\n"
+"DNA plugin in 389-ds will allocate IDs based on the ranges configured for "
+"the\n"
+"local domain. Currently the DNA plugin *cannot* be reconfigured itself "
+"based\n"
+"on the local ranges set via this family of commands.\n"
+"\n"
+"Manual configuration change has to be done in the DNA plugin configuration "
+"for\n"
+"the new local range. Specifically, The dnaNextRange attribute of 'cn=Posix\n"
+"IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has to "
+"be\n"
+"modified to match the new range.\n"
msgstr ""
-#: ipalib/plugins/idrange.py:161
+#: ipalib/plugins/idrange.py:171
msgid "ID Ranges"
msgstr ""
-#: ipalib/plugins/idrange.py:162
+#: ipalib/plugins/idrange.py:172
msgid "ID Range"
msgstr ""
-#: ipalib/plugins/idrange.py:167
+#: ipalib/plugins/idrange.py:177
msgid "Range name"
msgstr ""
-#: ipalib/plugins/idrange.py:172
+#: ipalib/plugins/idrange.py:182
msgid "First Posix ID of the range"
msgstr ""
-#: ipalib/plugins/idrange.py:176
+#: ipalib/plugins/idrange.py:186
msgid "Number of IDs in the range"
msgstr ""
-#: ipalib/plugins/idrange.py:180
+#: ipalib/plugins/idrange.py:190
msgid "First RID of the corresponding RID range"
msgstr ""
-#: ipalib/plugins/idrange.py:184
+#: ipalib/plugins/idrange.py:194
msgid "First RID of the secondary RID range"
msgstr ""
-#: ipalib/plugins/idrange.py:188
+#: ipalib/plugins/idrange.py:198
msgid "Domain SID of the trusted domain"
msgstr ""
-#: ipalib/plugins/idrange.py:191 ipalib/plugins/internal.py:516
+#: ipalib/plugins/idrange.py:203
+msgid "Name of the trusted domain"
+msgstr ""
+
+#: ipalib/plugins/idrange.py:206 ipalib/plugins/internal.py:538
msgid "Range type"
msgstr ""
-#: ipalib/plugins/idrange.py:199
+#: ipalib/plugins/idrange.py:214
msgid "Active Directory domain range"
msgstr ""
-#: ipalib/plugins/idrange.py:201
+#: ipalib/plugins/idrange.py:216
msgid "local domain range"
msgstr ""
-#: ipalib/plugins/idrange.py:255
+#: ipalib/plugins/idrange.py:270
msgid ""
"range modification leaving objects with ID out of the defined range is not "
"allowed"
msgstr ""
-#: ipalib/plugins/idrange.py:260
+#: ipalib/plugins/idrange.py:275
msgid ""
"Cannot perform SID validation without Samba 4 support installed. Make sure "
"you have installed server-trust-ad sub-package of IPA on the server"
msgstr ""
-#: ipalib/plugins/idrange.py:264
+#: ipalib/plugins/idrange.py:282
msgid ""
"Cross-realm trusts are not configured. Make sure you have run ipa-adtrust-"
"install on the IPA server first"
msgstr ""
-#: ipalib/plugins/idrange.py:268
+#: ipalib/plugins/idrange.py:294
msgid "SID is not recognized as a valid SID for a trusted domain"
msgstr ""
-#: ipalib/plugins/idrange.py:271
+#: ipalib/plugins/idrange.py:330
msgid ""
"\n"
" Add new ID range.\n"
@@ -5191,59 +5441,97 @@ msgid ""
" --dom-sid\n"
"\n"
" must be given to add a new range for a trusted AD domain.\n"
+"\n"
+" WARNING:\n"
+"\n"
+" DNA plugin in 389-ds will allocate IDs based on the ranges configured "
+"for the\n"
+" local domain. Currently the DNA plugin *cannot* be reconfigured itself "
+"based\n"
+" on the local ranges set via this family of commands.\n"
+"\n"
+" Manual configuration change has to be done in the DNA plugin "
+"configuration for\n"
+" the new local range. Specifically, The dnaNextRange attribute of "
+"'cn=Posix\n"
+" IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has "
+"to be\n"
+" modified to match the new range.\n"
" "
msgstr ""
-#: ipalib/plugins/idrange.py:292
+#: ipalib/plugins/idrange.py:362
#, python-format
msgid "Added ID range \"%(value)s\""
msgstr ""
-#: ipalib/plugins/idrange.py:300
-msgid "Options dom_sid and secondary_rid_base cannot be used together"
+#: ipalib/plugins/idrange.py:374 ipalib/plugins/idrange.py:504
+msgid "Options dom-sid and dom-name cannot be used together"
msgstr ""
-#: ipalib/plugins/idrange.py:305
-msgid "Options dom_sid and rid_base must be used together"
+#: ipalib/plugins/idrange.py:384 ipalib/plugins/idrange.py:516
+msgid ""
+"SID for the specified trusted domain name could not be found. Please specify "
+"the SID directly using dom-sid option."
msgstr ""
-#: ipalib/plugins/idrange.py:315
-msgid "Options secondary_rid_base and rid_base must be used together"
+#: ipalib/plugins/idrange.py:391
+msgid "Options dom-sid/dom-name and secondary-rid-base cannot be used together"
msgstr ""
-#: ipalib/plugins/idrange.py:328
+#: ipalib/plugins/idrange.py:396
+msgid "Options dom-sid/dom-name and rid-base must be used together"
+msgstr ""
+
+#: ipalib/plugins/idrange.py:408 ipalib/plugins/idrange.py:546
+msgid "Options secondary-rid-base and rid-base must be used together"
+msgstr ""
+
+#: ipalib/plugins/idrange.py:418 ipalib/plugins/idrange.py:569
+msgid "Primary RID range and secondary RID range cannot overlap"
+msgstr ""
+
+#: ipalib/plugins/idrange.py:431
msgid "Delete an ID range."
msgstr ""
-#: ipalib/plugins/idrange.py:330
+#: ipalib/plugins/idrange.py:433
#, python-format
msgid "Deleted ID range \"%(value)s\""
msgstr ""
-#: ipalib/plugins/idrange.py:345
+#: ipalib/plugins/idrange.py:448
msgid "Search for ranges."
msgstr ""
-#: ipalib/plugins/idrange.py:348
+#: ipalib/plugins/idrange.py:451
#, python-format
msgid "%(count)d range matched"
msgid_plural "%(count)d ranges matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/idrange.py:364
+#: ipalib/plugins/idrange.py:467
msgid "Display information about a range."
msgstr ""
-#: ipalib/plugins/idrange.py:377
+#: ipalib/plugins/idrange.py:480
msgid "Modify ID range."
msgstr ""
-#: ipalib/plugins/idrange.py:379
+#: ipalib/plugins/idrange.py:482
#, python-format
msgid "Modified ID range \"%(value)s\""
msgstr ""
+#: ipalib/plugins/idrange.py:523
+msgid "Options dom-sid and secondary-rid-base cannot be used together"
+msgstr ""
+
+#: ipalib/plugins/idrange.py:528
+msgid "Options dom-sid and rid-base must be used together"
+msgstr ""
+
#: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53
msgid "Name of object to export"
msgstr ""
@@ -5324,1449 +5612,1526 @@ msgstr ""
msgid "Add ${entity} ${primary_key} into ${other_entity}"
msgstr ""
-#: ipalib/plugins/internal.py:167
-msgid "Add Source ${other_entity} into ${entity} ${primary_key}"
-msgstr ""
-
-#: ipalib/plugins/internal.py:169
+#: ipalib/plugins/internal.py:168
msgid "Items added"
msgstr ""
-#: ipalib/plugins/internal.py:170
+#: ipalib/plugins/internal.py:169
msgid "Direct Membership"
msgstr ""
-#: ipalib/plugins/internal.py:171
+#: ipalib/plugins/internal.py:170
msgid "Indirect Membership"
msgstr ""
-#: ipalib/plugins/internal.py:172
+#: ipalib/plugins/internal.py:171
msgid "No entries."
msgstr ""
-#: ipalib/plugins/internal.py:173
+#: ipalib/plugins/internal.py:172
msgid "Showing ${start} to ${end} of ${total} entries."
msgstr ""
-#: ipalib/plugins/internal.py:175
+#: ipalib/plugins/internal.py:174
msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:176
+#: ipalib/plugins/internal.py:175
msgid "Remove RunAs Groups from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:177
+#: ipalib/plugins/internal.py:176
msgid "Remove ${other_entity} Managing ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:178
+#: ipalib/plugins/internal.py:177
msgid "Remove ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:179
+#: ipalib/plugins/internal.py:178
msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:180
+#: ipalib/plugins/internal.py:179
msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:181
+#: ipalib/plugins/internal.py:180
msgid "Remove ${entity} ${primary_key} from ${other_entity}"
msgstr ""
#: ipalib/plugins/internal.py:182
-msgid "Remove Source ${other_entity} from ${entity} ${primary_key}"
-msgstr ""
-
-#: ipalib/plugins/internal.py:184
msgid "Items removed"
msgstr ""
-#: ipalib/plugins/internal.py:185
+#: ipalib/plugins/internal.py:183
msgid "Show Results"
msgstr ""
-#: ipalib/plugins/internal.py:188
+#: ipalib/plugins/internal.py:186
msgid "Add"
msgstr ""
-#: ipalib/plugins/internal.py:189
+#: ipalib/plugins/internal.py:187
msgid "Add and Add Another"
msgstr ""
-#: ipalib/plugins/internal.py:190
+#: ipalib/plugins/internal.py:188
msgid "Add and Close"
msgstr ""
-#: ipalib/plugins/internal.py:191
+#: ipalib/plugins/internal.py:189
msgid "Add and Edit"
msgstr ""
-#: ipalib/plugins/internal.py:192
+#: ipalib/plugins/internal.py:190
msgid "Add Many"
msgstr ""
-#: ipalib/plugins/internal.py:193
+#: ipalib/plugins/internal.py:191
msgid "Back"
msgstr ""
-#: ipalib/plugins/internal.py:194
+#: ipalib/plugins/internal.py:192
msgid "Cancel"
msgstr ""
-#: ipalib/plugins/internal.py:195
+#: ipalib/plugins/internal.py:193
msgid "Close"
msgstr ""
-#: ipalib/plugins/internal.py:196 ipalib/plugins/internal.py:640
+#: ipalib/plugins/internal.py:194 ipalib/plugins/internal.py:672
msgid "Disable"
msgstr ""
-#: ipalib/plugins/internal.py:197
+#: ipalib/plugins/internal.py:195
msgid "Edit"
msgstr ""
-#: ipalib/plugins/internal.py:198 ipalib/plugins/internal.py:642
+#: ipalib/plugins/internal.py:196 ipalib/plugins/internal.py:674
msgid "Enable"
msgstr ""
-#: ipalib/plugins/internal.py:199
+#: ipalib/plugins/internal.py:197
msgid "Find"
msgstr ""
-#: ipalib/plugins/internal.py:200
+#: ipalib/plugins/internal.py:198
msgid "Get"
msgstr ""
-#: ipalib/plugins/internal.py:201
+#: ipalib/plugins/internal.py:199
msgid "Issue"
msgstr ""
-#: ipalib/plugins/internal.py:202
+#: ipalib/plugins/internal.py:200
msgid "OK"
msgstr ""
-#: ipalib/plugins/internal.py:203
+#: ipalib/plugins/internal.py:201
msgid "Refresh"
msgstr ""
-#: ipalib/plugins/internal.py:204
+#: ipalib/plugins/internal.py:202
msgid "Delete"
msgstr ""
-#: ipalib/plugins/internal.py:205
+#: ipalib/plugins/internal.py:203
msgid "Reset"
msgstr ""
-#: ipalib/plugins/internal.py:206
+#: ipalib/plugins/internal.py:204
msgid "Reset Password and Login"
msgstr ""
-#: ipalib/plugins/internal.py:207
+#: ipalib/plugins/internal.py:205
msgid "Restore"
msgstr ""
-#: ipalib/plugins/internal.py:208
+#: ipalib/plugins/internal.py:206
msgid "Retry"
msgstr ""
-#: ipalib/plugins/internal.py:209
+#: ipalib/plugins/internal.py:207
msgid "Revoke"
msgstr ""
-#: ipalib/plugins/internal.py:210
+#: ipalib/plugins/internal.py:208
msgid "Set"
msgstr ""
-#: ipalib/plugins/internal.py:211
+#: ipalib/plugins/internal.py:209
msgid "Update"
msgstr ""
-#: ipalib/plugins/internal.py:212
+#: ipalib/plugins/internal.py:210
msgid "View"
msgstr ""
-#: ipalib/plugins/internal.py:215
+#: ipalib/plugins/internal.py:213
msgid "Collapse All"
msgstr ""
-#: ipalib/plugins/internal.py:216
+#: ipalib/plugins/internal.py:214
msgid "Expand All"
msgstr ""
-#: ipalib/plugins/internal.py:217
+#: ipalib/plugins/internal.py:215
msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:218
+#: ipalib/plugins/internal.py:216
msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:219
+#: ipalib/plugins/internal.py:217
msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:220
+#: ipalib/plugins/internal.py:218
msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:221
+#: ipalib/plugins/internal.py:219
msgid "${entity} ${primary_key} updated"
msgstr ""
-#: ipalib/plugins/internal.py:224
+#: ipalib/plugins/internal.py:222
msgid "${entity} successfully added"
msgstr ""
-#: ipalib/plugins/internal.py:225
+#: ipalib/plugins/internal.py:223
msgid "Add ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:226
+#: ipalib/plugins/internal.py:224
msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:227
+#: ipalib/plugins/internal.py:225
msgid "Some operations failed."
msgstr ""
-#: ipalib/plugins/internal.py:228
+#: ipalib/plugins/internal.py:226
msgid "Operations Error"
msgstr ""
-#: ipalib/plugins/internal.py:229
+#: ipalib/plugins/internal.py:227
msgid "Confirmation"
msgstr ""
-#: ipalib/plugins/internal.py:230
+#: ipalib/plugins/internal.py:228
msgid "This page has unsaved changes. Please save or revert."
msgstr ""
-#: ipalib/plugins/internal.py:231
+#: ipalib/plugins/internal.py:229
msgid "Unsaved Changes"
msgstr ""
-#: ipalib/plugins/internal.py:232
+#: ipalib/plugins/internal.py:230
msgid "Edit ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:233
+#: ipalib/plugins/internal.py:231
msgid "Hide details"
msgstr ""
-#: ipalib/plugins/internal.py:234
+#: ipalib/plugins/internal.py:232
msgid "Prospective"
msgstr ""
-#: ipalib/plugins/internal.py:235
+#: ipalib/plugins/internal.py:233
msgid "Redirection"
msgstr ""
-#: ipalib/plugins/internal.py:236
+#: ipalib/plugins/internal.py:234
msgid "Select entries to be removed."
msgstr ""
-#: ipalib/plugins/internal.py:237
+#: ipalib/plugins/internal.py:235
msgid "Remove ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:238
+#: ipalib/plugins/internal.py:236
msgid "Show details"
msgstr ""
-#: ipalib/plugins/internal.py:239
+#: ipalib/plugins/internal.py:237
msgid "Validation error"
msgstr ""
-#: ipalib/plugins/internal.py:240
+#: ipalib/plugins/internal.py:238
msgid "Input form contains invalid or missing values."
msgstr ""
-#: ipalib/plugins/internal.py:243
+#: ipalib/plugins/internal.py:241
msgid "Please try the following options:"
msgstr ""
-#: ipalib/plugins/internal.py:244
+#: ipalib/plugins/internal.py:242
msgid "If the problem persists please contact the system administrator."
msgstr ""
-#: ipalib/plugins/internal.py:245
+#: ipalib/plugins/internal.py:243
msgid "Refresh the page."
msgstr ""
-#: ipalib/plugins/internal.py:246
+#: ipalib/plugins/internal.py:244
msgid "Reload the browser."
msgstr ""
-#: ipalib/plugins/internal.py:247
+#: ipalib/plugins/internal.py:245
msgid "Return to the main page and retry the operation"
msgstr ""
-#: ipalib/plugins/internal.py:248
+#: ipalib/plugins/internal.py:246
msgid "An error has occurred (${error})"
msgstr ""
-#: ipalib/plugins/internal.py:252
+#: ipalib/plugins/internal.py:250
msgid "HTTP Error"
msgstr ""
-#: ipalib/plugins/internal.py:253
+#: ipalib/plugins/internal.py:251
msgid "Internal Error"
msgstr ""
-#: ipalib/plugins/internal.py:254
+#: ipalib/plugins/internal.py:252
msgid "IPA Error"
msgstr ""
-#: ipalib/plugins/internal.py:255
+#: ipalib/plugins/internal.py:253
msgid "No response"
msgstr ""
-#: ipalib/plugins/internal.py:256
+#: ipalib/plugins/internal.py:254
msgid "Unknown Error"
msgstr ""
-#: ipalib/plugins/internal.py:257
+#: ipalib/plugins/internal.py:255
msgid "URL"
msgstr ""
-#: ipalib/plugins/internal.py:260
+#: ipalib/plugins/internal.py:258
msgid "${primary_key} is managed by:"
msgstr ""
-#: ipalib/plugins/internal.py:261
+#: ipalib/plugins/internal.py:259
msgid "${primary_key} members:"
msgstr ""
-#: ipalib/plugins/internal.py:262
+#: ipalib/plugins/internal.py:260
msgid "${primary_key} is a member of:"
msgstr ""
-#: ipalib/plugins/internal.py:265
+#: ipalib/plugins/internal.py:263
msgid "Settings"
msgstr ""
-#: ipalib/plugins/internal.py:266
+#: ipalib/plugins/internal.py:264
msgid "Search"
msgstr ""
-#: ipalib/plugins/internal.py:268
+#: ipalib/plugins/internal.py:266
msgid "False"
msgstr ""
+#: ipalib/plugins/internal.py:268
+msgid "Inherited from server configuration"
+msgstr ""
+
+#: ipalib/plugins/internal.py:269
+msgid "MS-PAC"
+msgstr ""
+
#: ipalib/plugins/internal.py:270
+msgid "Override inherited settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:271
+msgid "PAD"
+msgstr ""
+
+#: ipalib/plugins/internal.py:274
msgid ""
"To login with username and password, enter them in the fields below then "
"click Login."
msgstr ""
-#: ipalib/plugins/internal.py:271
+#: ipalib/plugins/internal.py:275
msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:272
+#: ipalib/plugins/internal.py:276
msgid ""
"To login with Kerberos, please make sure you have valid tickets (obtainable "
-"via kinit) and <a href='http://${host]/ipa/config/unauthorized."
+"via kinit) and <a href='http://${host}/ipa/config/unauthorized."
"html'>configured</a> the browser correctly, then click Login."
msgstr ""
-#: ipalib/plugins/internal.py:273
+#: ipalib/plugins/internal.py:277
msgid "Login"
msgstr ""
-#: ipalib/plugins/internal.py:274
+#: ipalib/plugins/internal.py:278
msgid "Logout"
msgstr ""
-#: ipalib/plugins/internal.py:275
+#: ipalib/plugins/internal.py:279
msgid "Logout error"
msgstr ""
-#: ipalib/plugins/internal.py:280
+#: ipalib/plugins/internal.py:284
msgid "number of passwords"
msgstr ""
-#: ipalib/plugins/internal.py:281
+#: ipalib/plugins/internal.py:285
msgid "seconds"
msgstr ""
-#: ipalib/plugins/internal.py:285 ipalib/plugins/internal.py:290
+#: ipalib/plugins/internal.py:289 ipalib/plugins/internal.py:294
msgid "Attribute"
msgstr ""
-#: ipalib/plugins/internal.py:288
+#: ipalib/plugins/internal.py:292
msgid "Add Condition into ${pkey}"
msgstr ""
-#: ipalib/plugins/internal.py:289
+#: ipalib/plugins/internal.py:293
msgid "Add Rule"
msgstr ""
-#: ipalib/plugins/internal.py:291
+#: ipalib/plugins/internal.py:295
msgid "Default host group"
msgstr ""
-#: ipalib/plugins/internal.py:292
+#: ipalib/plugins/internal.py:296
msgid "Default user group"
msgstr ""
-#: ipalib/plugins/internal.py:293
+#: ipalib/plugins/internal.py:297
msgid "Exclusive"
msgstr ""
-#: ipalib/plugins/internal.py:294
+#: ipalib/plugins/internal.py:298
msgid "Expression"
msgstr ""
-#: ipalib/plugins/internal.py:295
+#: ipalib/plugins/internal.py:299
msgid "Host group rule"
msgstr ""
-#: ipalib/plugins/internal.py:296
+#: ipalib/plugins/internal.py:300
msgid "Host group rules"
msgstr ""
-#: ipalib/plugins/internal.py:297
+#: ipalib/plugins/internal.py:301
msgid "Inclusive"
msgstr ""
-#: ipalib/plugins/internal.py:298
+#: ipalib/plugins/internal.py:302
msgid "User group rule"
msgstr ""
-#: ipalib/plugins/internal.py:299
+#: ipalib/plugins/internal.py:303
msgid "User group rules"
msgstr ""
-#: ipalib/plugins/internal.py:304
+#: ipalib/plugins/internal.py:308
msgid "Automount Location Settings"
msgstr ""
-#: ipalib/plugins/internal.py:307
+#: ipalib/plugins/internal.py:311
msgid "Map Type"
msgstr ""
-#: ipalib/plugins/internal.py:308
+#: ipalib/plugins/internal.py:312
msgid "Direct"
msgstr ""
-#: ipalib/plugins/internal.py:309
+#: ipalib/plugins/internal.py:313
msgid "Indirect"
msgstr ""
-#: ipalib/plugins/internal.py:312
+#: ipalib/plugins/internal.py:316
msgid "AA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:313
+#: ipalib/plugins/internal.py:317
msgid "Affiliation Changed"
msgstr ""
-#: ipalib/plugins/internal.py:314
+#: ipalib/plugins/internal.py:318
msgid "CA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:315
+#: ipalib/plugins/internal.py:320 ipalib/plugins/internal.py:416
+#: ipalib/plugins/internal.py:682
+msgid "Certificates"
+msgstr ""
+
+#: ipalib/plugins/internal.py:321
msgid "Certificate Hold"
msgstr ""
-#: ipalib/plugins/internal.py:316
+#: ipalib/plugins/internal.py:322
msgid "Cessation of Operation"
msgstr ""
-#: ipalib/plugins/internal.py:317
+#: ipalib/plugins/internal.py:323
msgid "Common Name"
msgstr ""
-#: ipalib/plugins/internal.py:318
+#: ipalib/plugins/internal.py:324
msgid "Expires On"
msgstr ""
-#: ipalib/plugins/internal.py:319
+#: ipalib/plugins/internal.py:325
+msgid "Issued on from"
+msgstr ""
+
+#: ipalib/plugins/internal.py:326
+msgid "Issued on to"
+msgstr ""
+
+#: ipalib/plugins/internal.py:327
+msgid "Maximum serial number"
+msgstr ""
+
+#: ipalib/plugins/internal.py:328
+msgid "Minimum serial number"
+msgstr ""
+
+#: ipalib/plugins/internal.py:330
+msgid "Revoked on from"
+msgstr ""
+
+#: ipalib/plugins/internal.py:331
+msgid "Revoked on to"
+msgstr ""
+
+#: ipalib/plugins/internal.py:333
+msgid "Valid not after from"
+msgstr ""
+
+#: ipalib/plugins/internal.py:334
+msgid "Valid not after to"
+msgstr ""
+
+#: ipalib/plugins/internal.py:335
+msgid "Valid not before from"
+msgstr ""
+
+#: ipalib/plugins/internal.py:336
+msgid "Valid not before to"
+msgstr ""
+
+#: ipalib/plugins/internal.py:337
msgid "Fingerprints"
msgstr ""
-#: ipalib/plugins/internal.py:320
+#: ipalib/plugins/internal.py:338
msgid "Issue New Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:321
+#: ipalib/plugins/internal.py:339
msgid "Issued By"
msgstr ""
-#: ipalib/plugins/internal.py:322
+#: ipalib/plugins/internal.py:340
msgid "Issued On"
msgstr ""
-#: ipalib/plugins/internal.py:323
+#: ipalib/plugins/internal.py:341
msgid "Issued To"
msgstr ""
-#: ipalib/plugins/internal.py:324
+#: ipalib/plugins/internal.py:342
msgid "Key Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:325
+#: ipalib/plugins/internal.py:343
msgid "MD5 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:326
+#: ipalib/plugins/internal.py:344
msgid "No Valid Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:327
+#: ipalib/plugins/internal.py:345
msgid "New Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:328
+#: ipalib/plugins/internal.py:346
msgid "Note"
msgstr ""
-#: ipalib/plugins/internal.py:329
+#: ipalib/plugins/internal.py:347
msgid "Organization"
msgstr ""
-#: ipalib/plugins/internal.py:330
+#: ipalib/plugins/internal.py:348
msgid "Organizational Unit"
msgstr ""
-#: ipalib/plugins/internal.py:331
+#: ipalib/plugins/internal.py:349
msgid "Privilege Withdrawn"
msgstr ""
-#: ipalib/plugins/internal.py:332
+#: ipalib/plugins/internal.py:350
msgid "Reason for Revocation"
msgstr ""
-#: ipalib/plugins/internal.py:333
+#: ipalib/plugins/internal.py:351
msgid "Remove from CRL"
msgstr ""
-#: ipalib/plugins/internal.py:334
+#: ipalib/plugins/internal.py:352
msgid ""
-"<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>"
+"<ol> <li>Create a certificate database or use an existing one. To create a "
+"new database:<br/> <code># certutil -N -d &lt;database path&gt;</code> </li> "
+"<li>Create a CSR with subject <em>CN=&lt;hostname&gt;,O=&lt;realm&gt;</em>, "
+"for example:<br/> <code># certutil -R -d &lt;database path&gt; -a -g &lt;key "
+"size&gt; -s 'CN=${hostname},O=${realm}'</code> </li> <li> Copy and paste the "
+"CSR (from <em>-----BEGIN NEW CERTIFICATE REQUEST-----</em> to <em>-----END "
+"NEW CERTIFICATE REQUEST-----</em>) into the text area below: </li> </ol>"
msgstr ""
-#: ipalib/plugins/internal.py:335
+#: ipalib/plugins/internal.py:353
msgid "Certificate requested"
msgstr ""
-#: ipalib/plugins/internal.py:336
+#: ipalib/plugins/internal.py:354
msgid "Restore Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:337
+#: ipalib/plugins/internal.py:355
+msgid "Restore Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:356
msgid ""
"To confirm your intention to restore this certificate, click the \"Restore\" "
"button."
msgstr ""
-#: ipalib/plugins/internal.py:338
+#: ipalib/plugins/internal.py:357
msgid "Certificate restored"
msgstr ""
-#: ipalib/plugins/internal.py:339
+#: ipalib/plugins/internal.py:359
msgid "Revoke Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:340
+#: ipalib/plugins/internal.py:360
+msgid "Revoke Certificate"
+msgstr ""
+
+#: ipalib/plugins/internal.py:361
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:341
+#: ipalib/plugins/internal.py:362
msgid "Certificate Revoked"
msgstr ""
-#: ipalib/plugins/internal.py:344
+#: ipalib/plugins/internal.py:365
msgid "SHA1 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:345
+#: ipalib/plugins/internal.py:367
msgid "Superseded"
msgstr ""
-#: ipalib/plugins/internal.py:346
+#: ipalib/plugins/internal.py:368
msgid "Unspecified"
msgstr ""
-#: ipalib/plugins/internal.py:347
+#: ipalib/plugins/internal.py:369
msgid "Valid Certificate Present"
msgstr ""
-#: ipalib/plugins/internal.py:348
+#: ipalib/plugins/internal.py:370
msgid "Validity"
msgstr ""
-#: ipalib/plugins/internal.py:349
+#: ipalib/plugins/internal.py:371
msgid "Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:352
+#: ipalib/plugins/internal.py:374
msgid "Group Options"
msgstr ""
-#: ipalib/plugins/internal.py:353
+#: ipalib/plugins/internal.py:375
msgid "Search Options"
msgstr ""
-#: ipalib/plugins/internal.py:354
+#: ipalib/plugins/internal.py:376
msgid "SELinux Options"
msgstr ""
-#: ipalib/plugins/internal.py:355
+#: ipalib/plugins/internal.py:377
msgid "Service Options"
msgstr ""
-#: ipalib/plugins/internal.py:356
+#: ipalib/plugins/internal.py:378
msgid "User Options"
msgstr ""
-#: ipalib/plugins/internal.py:361
+#: ipalib/plugins/internal.py:383
msgid "Forward first"
msgstr ""
-#: ipalib/plugins/internal.py:362
+#: ipalib/plugins/internal.py:384
+msgid "Forwarding disabled"
+msgstr ""
+
+#: ipalib/plugins/internal.py:385
msgid "Forward only"
msgstr ""
-#: ipalib/plugins/internal.py:363 ipalib/plugins/internal.py:577
+#: ipalib/plugins/internal.py:386 ipalib/plugins/internal.py:605
+#: ipalib/plugins/internal.py:628
msgid "Options"
msgstr ""
-#: ipalib/plugins/internal.py:366
+#: ipalib/plugins/internal.py:389
msgid "Data"
msgstr ""
-#: ipalib/plugins/internal.py:367
+#: ipalib/plugins/internal.py:390
msgid "DNS record was deleted because it contained no data."
msgstr ""
-#: ipalib/plugins/internal.py:368
+#: ipalib/plugins/internal.py:391
msgid "Other Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:369
+#: ipalib/plugins/internal.py:392
msgid "Address not valid, can't redirect"
msgstr ""
-#: ipalib/plugins/internal.py:370
+#: ipalib/plugins/internal.py:393
msgid "Create dns record"
msgstr ""
-#: ipalib/plugins/internal.py:371
+#: ipalib/plugins/internal.py:394
msgid "Creating record."
msgstr ""
-#: ipalib/plugins/internal.py:372
+#: ipalib/plugins/internal.py:395
msgid "Record creation failed."
msgstr ""
-#: ipalib/plugins/internal.py:373
+#: ipalib/plugins/internal.py:396
msgid "Checking if record exists."
msgstr ""
-#: ipalib/plugins/internal.py:374
+#: ipalib/plugins/internal.py:397
msgid "Record not found."
msgstr ""
-#: ipalib/plugins/internal.py:375
+#: ipalib/plugins/internal.py:398
msgid "Redirection to PTR record"
msgstr ""
-#: ipalib/plugins/internal.py:376
+#: ipalib/plugins/internal.py:399
msgid "Zone found: ${zone}"
msgstr ""
-#: ipalib/plugins/internal.py:377
+#: ipalib/plugins/internal.py:400
msgid "Target reverse zone not found."
msgstr ""
-#: ipalib/plugins/internal.py:378
+#: ipalib/plugins/internal.py:401
msgid "Fetching DNS zones."
msgstr ""
-#: ipalib/plugins/internal.py:379
+#: ipalib/plugins/internal.py:402
msgid "An error occurred while fetching dns zones."
msgstr ""
-#: ipalib/plugins/internal.py:380
+#: ipalib/plugins/internal.py:403
msgid "You will be redirected to DNS Zone."
msgstr ""
-#: ipalib/plugins/internal.py:381
+#: ipalib/plugins/internal.py:404
msgid "Standard Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:382
+#: ipalib/plugins/internal.py:405
msgid "Records for DNS Zone"
msgstr ""
-#: ipalib/plugins/internal.py:383
+#: ipalib/plugins/internal.py:406
msgid "Record Type"
msgstr ""
-#: ipalib/plugins/internal.py:386
+#: ipalib/plugins/internal.py:409
msgid "DNS Zone Settings"
msgstr ""
-#: ipalib/plugins/internal.py:387
+#: ipalib/plugins/internal.py:410
msgid "Add Permission"
msgstr ""
-#: ipalib/plugins/internal.py:388
+#: ipalib/plugins/internal.py:411
msgid "Remove Permission"
msgstr ""
-#: ipalib/plugins/internal.py:391 ipalib/plugins/internal.py:586
+#: ipalib/plugins/internal.py:414 ipalib/plugins/internal.py:614
msgid "Account"
msgstr ""
-#: ipalib/plugins/internal.py:393
-msgid "Certificates"
-msgstr ""
-
-#: ipalib/plugins/internal.py:394
+#: ipalib/plugins/internal.py:417
msgid "Consume"
msgstr ""
-#: ipalib/plugins/internal.py:395
+#: ipalib/plugins/internal.py:418
msgid "Consume Entitlement"
msgstr ""
-#: ipalib/plugins/internal.py:397
+#: ipalib/plugins/internal.py:420
msgid "Download"
msgstr ""
-#: ipalib/plugins/internal.py:398
+#: ipalib/plugins/internal.py:421
msgid "Download Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:400
+#: ipalib/plugins/internal.py:423
msgid "Import"
msgstr ""
-#: ipalib/plugins/internal.py:401
+#: ipalib/plugins/internal.py:424
msgid "Import Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:402
+#: ipalib/plugins/internal.py:425
msgid "Enter the Base64-encoded entitlement certificate below:"
msgstr ""
-#: ipalib/plugins/internal.py:403
+#: ipalib/plugins/internal.py:426
msgid "Loading..."
msgstr ""
-#: ipalib/plugins/internal.py:404
+#: ipalib/plugins/internal.py:427
msgid "No Certificate."
msgstr ""
-#: ipalib/plugins/internal.py:406
+#: ipalib/plugins/internal.py:429
msgid "Register"
msgstr ""
-#: ipalib/plugins/internal.py:407
+#: ipalib/plugins/internal.py:430
msgid "Registration"
msgstr ""
-#: ipalib/plugins/internal.py:409 ipalib/plugins/internal.py:471
-#: ipalib/plugins/internal.py:541 ipalib/plugins/internal.py:644
-msgid "Status"
-msgstr ""
-
-#: ipalib/plugins/internal.py:412
+#: ipalib/plugins/internal.py:435
msgid "Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:413 ipalib/plugins/internal.py:486
-#: ipalib/plugins/internal.py:572
+#: ipalib/plugins/internal.py:436 ipalib/plugins/internal.py:508
+#: ipalib/plugins/internal.py:600
msgid "External"
msgstr ""
-#: ipalib/plugins/internal.py:414
+#: ipalib/plugins/internal.py:437
msgid "Change to external group"
msgstr ""
-#: ipalib/plugins/internal.py:415
+#: ipalib/plugins/internal.py:438
msgid "Change to POSIX group"
msgstr ""
-#: ipalib/plugins/internal.py:416
+#: ipalib/plugins/internal.py:439
msgid "Normal"
msgstr ""
-#: ipalib/plugins/internal.py:417
+#: ipalib/plugins/internal.py:440
msgid "POSIX"
msgstr ""
-#: ipalib/plugins/internal.py:418
+#: ipalib/plugins/internal.py:441
msgid "Group Type"
msgstr ""
-#: ipalib/plugins/internal.py:421 ipalib/plugins/internal.py:484
-#: ipalib/plugins/internal.py:526 ipalib/plugins/internal.py:568
+#: ipalib/plugins/internal.py:444 ipalib/plugins/internal.py:506
+#: ipalib/plugins/internal.py:554 ipalib/plugins/internal.py:596
msgid "Any Host"
msgstr ""
-#: ipalib/plugins/internal.py:422
+#: ipalib/plugins/internal.py:445
msgid "Any Service"
msgstr ""
-#: ipalib/plugins/internal.py:423 ipalib/plugins/internal.py:485
-#: ipalib/plugins/internal.py:527 ipalib/plugins/internal.py:569
+#: ipalib/plugins/internal.py:446 ipalib/plugins/internal.py:507
+#: ipalib/plugins/internal.py:555 ipalib/plugins/internal.py:597
msgid "Anyone"
msgstr ""
-#: ipalib/plugins/internal.py:424
+#: ipalib/plugins/internal.py:447
msgid "Accessing"
msgstr ""
-#: ipalib/plugins/internal.py:425 ipalib/plugins/internal.py:574
+#: ipalib/plugins/internal.py:448 ipalib/plugins/internal.py:602
msgid "Rule status"
msgstr ""
-#: ipalib/plugins/internal.py:426
+#: ipalib/plugins/internal.py:449
msgid "Via Service"
msgstr ""
-#: ipalib/plugins/internal.py:427
-msgid "From"
-msgstr ""
-
-#: ipalib/plugins/internal.py:428 ipalib/plugins/internal.py:491
-#: ipalib/plugins/internal.py:529 ipalib/plugins/internal.py:581
+#: ipalib/plugins/internal.py:450 ipalib/plugins/internal.py:513
+#: ipalib/plugins/internal.py:557 ipalib/plugins/internal.py:609
msgid "Specified Hosts and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:429
+#: ipalib/plugins/internal.py:451
msgid "Specified Services and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:430 ipalib/plugins/internal.py:492
-#: ipalib/plugins/internal.py:530 ipalib/plugins/internal.py:582
+#: ipalib/plugins/internal.py:452 ipalib/plugins/internal.py:514
+#: ipalib/plugins/internal.py:558 ipalib/plugins/internal.py:610
msgid "Specified Users and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:431 ipalib/plugins/internal.py:583
+#: ipalib/plugins/internal.py:453 ipalib/plugins/internal.py:611
msgid "Who"
msgstr ""
-#: ipalib/plugins/internal.py:439
+#: ipalib/plugins/internal.py:461
msgid "Access Denied"
msgstr ""
-#: ipalib/plugins/internal.py:440
+#: ipalib/plugins/internal.py:462
msgid "Access Granted"
msgstr ""
-#: ipalib/plugins/internal.py:441
+#: ipalib/plugins/internal.py:463
msgid "Include Disabled"
msgstr ""
-#: ipalib/plugins/internal.py:442
+#: ipalib/plugins/internal.py:464
msgid "Include Enabled"
msgstr ""
-#: ipalib/plugins/internal.py:443
+#: ipalib/plugins/internal.py:465
msgid "HBAC Test"
msgstr ""
-#: ipalib/plugins/internal.py:444
+#: ipalib/plugins/internal.py:466
msgid "Matched"
msgstr ""
-#: ipalib/plugins/internal.py:445
+#: ipalib/plugins/internal.py:467
msgid "Missing values: "
msgstr ""
-#: ipalib/plugins/internal.py:446
+#: ipalib/plugins/internal.py:468
msgid "New Test"
msgstr ""
-#: ipalib/plugins/internal.py:447
+#: ipalib/plugins/internal.py:469
msgid "Rules"
msgstr ""
-#: ipalib/plugins/internal.py:448
+#: ipalib/plugins/internal.py:470
msgid "Run Test"
msgstr ""
-#: ipalib/plugins/internal.py:449
+#: ipalib/plugins/internal.py:471
msgid "Specify external ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:450
+#: ipalib/plugins/internal.py:472
msgid "Unmatched"
msgstr ""
-#: ipalib/plugins/internal.py:453
+#: ipalib/plugins/internal.py:475
msgid "Host Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:454 ipalib/plugins/internal.py:537
+#: ipalib/plugins/internal.py:476 ipalib/plugins/internal.py:565
msgid "Host Name"
msgstr ""
-#: ipalib/plugins/internal.py:455 ipalib/plugins/internal.py:535
+#: ipalib/plugins/internal.py:477 ipalib/plugins/internal.py:563
msgid "Delete Key, Unprovision"
msgstr ""
-#: ipalib/plugins/internal.py:456
+#: ipalib/plugins/internal.py:478
msgid "Host Settings"
msgstr ""
-#: ipalib/plugins/internal.py:457
+#: ipalib/plugins/internal.py:479
msgid "Enrolled"
msgstr ""
-#: ipalib/plugins/internal.py:458
+#: ipalib/plugins/internal.py:480
msgid "Enrollment"
msgstr ""
-#: ipalib/plugins/internal.py:459
+#: ipalib/plugins/internal.py:481
msgid "Fully Qualified Host Name"
msgstr ""
-#: ipalib/plugins/internal.py:460
+#: ipalib/plugins/internal.py:482
msgid "Kerberos Key"
msgstr ""
-#: ipalib/plugins/internal.py:461 ipalib/plugins/internal.py:538
+#: ipalib/plugins/internal.py:483 ipalib/plugins/internal.py:566
msgid "Kerberos Key Not Present"
msgstr ""
-#: ipalib/plugins/internal.py:462
+#: ipalib/plugins/internal.py:484
msgid "Kerberos Key Present, Host Provisioned"
msgstr ""
-#: ipalib/plugins/internal.py:463
+#: ipalib/plugins/internal.py:485
msgid "One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:464
+#: ipalib/plugins/internal.py:486
msgid "One-Time-Password Not Present"
msgstr ""
-#: ipalib/plugins/internal.py:465
+#: ipalib/plugins/internal.py:487
msgid "One-Time-Password Present"
msgstr ""
-#: ipalib/plugins/internal.py:466
+#: ipalib/plugins/internal.py:488
msgid "Reset OTP"
msgstr ""
-#: ipalib/plugins/internal.py:467
+#: ipalib/plugins/internal.py:489
msgid "Reset One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:468
+#: ipalib/plugins/internal.py:490
msgid "Set OTP"
msgstr ""
-#: ipalib/plugins/internal.py:469
+#: ipalib/plugins/internal.py:491
msgid "OTP set"
msgstr ""
-#: ipalib/plugins/internal.py:470
+#: ipalib/plugins/internal.py:492
msgid "Set One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:472 ipalib/plugins/internal.py:542
+#: ipalib/plugins/internal.py:494 ipalib/plugins/internal.py:570
msgid "Unprovision"
msgstr ""
-#: ipalib/plugins/internal.py:473
+#: ipalib/plugins/internal.py:495
msgid "Are you sure you want to unprovision this host?"
msgstr ""
-#: ipalib/plugins/internal.py:474 ipalib/plugins/internal.py:544
+#: ipalib/plugins/internal.py:496 ipalib/plugins/internal.py:572
msgid "Unprovisioning ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:475
+#: ipalib/plugins/internal.py:497
msgid "Host unprovisioned"
msgstr ""
-#: ipalib/plugins/internal.py:478
+#: ipalib/plugins/internal.py:500
msgid "Host Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:481 ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/internal.py:503 ipalib/plugins/krbtpolicy.py:79
#: ipalib/plugins/krbtpolicy.py:80
msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/internal.py:490
+#: ipalib/plugins/internal.py:512
msgid "Netgroup Settings"
msgstr ""
-#: ipalib/plugins/internal.py:493 ipalib/plugins/internal.py:531
-#: ipalib/plugins/pwpolicy.py:441 ipalib/plugins/user.py:225
+#: ipalib/plugins/internal.py:515 ipalib/plugins/internal.py:559
+#: ipalib/plugins/pwpolicy.py:442 ipalib/plugins/user.py:226
msgid "User"
msgstr ""
-#: ipalib/plugins/internal.py:498 ipalib/plugins/internal.py:652
+#: ipalib/plugins/internal.py:520 ipalib/plugins/internal.py:685
msgid "Identity"
msgstr ""
-#: ipalib/plugins/internal.py:499
+#: ipalib/plugins/internal.py:521
msgid "Permission with invalid target specification"
msgstr ""
-#: ipalib/plugins/internal.py:504
+#: ipalib/plugins/internal.py:526
msgid "Privilege Settings"
msgstr ""
-#: ipalib/plugins/internal.py:507 ipalib/plugins/pwpolicy.py:223
+#: ipalib/plugins/internal.py:529 ipalib/plugins/pwpolicy.py:223
msgid "Password Policy"
msgstr ""
-#: ipalib/plugins/internal.py:510
+#: ipalib/plugins/internal.py:532
msgid "Range Settings"
msgstr ""
-#: ipalib/plugins/internal.py:511
+#: ipalib/plugins/internal.py:533
msgid "Base ID"
msgstr ""
-#: ipalib/plugins/internal.py:512
+#: ipalib/plugins/internal.py:534
msgid "Primary RID base"
msgstr ""
-#: ipalib/plugins/internal.py:513
+#: ipalib/plugins/internal.py:535
msgid "Range size"
msgstr ""
-#: ipalib/plugins/internal.py:514
+#: ipalib/plugins/internal.py:536
msgid "Domain SID"
msgstr ""
-#: ipalib/plugins/internal.py:515
+#: ipalib/plugins/internal.py:537
msgid "Secondary RID base"
msgstr ""
-#: ipalib/plugins/internal.py:517 ipalib/plugins/trust.py:115
+#: ipalib/plugins/internal.py:539 ipalib/plugins/trust.py:135
msgid "Active Directory domain"
msgstr ""
-#: ipalib/plugins/internal.py:518
+#: ipalib/plugins/internal.py:540
msgid "Local domain"
msgstr ""
-#: ipalib/plugins/internal.py:521
+#: ipalib/plugins/internal.py:543 ipalib/plugins/realmdomains.py:61
+#: ipalib/plugins/realmdomains.py:62
+msgid "Realm Domains"
+msgstr ""
+
+#: ipalib/plugins/internal.py:544
+msgid "Check DNS"
+msgstr ""
+
+#: ipalib/plugins/internal.py:545
+msgid "Do you also want to perform DNS check?"
+msgstr ""
+
+#: ipalib/plugins/internal.py:546
+msgid "Force Update"
+msgstr ""
+
+#: ipalib/plugins/internal.py:549
msgid "Role Settings"
msgstr ""
-#: ipalib/plugins/internal.py:534
+#: ipalib/plugins/internal.py:562
msgid "Service Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:536
+#: ipalib/plugins/internal.py:564
msgid "Service Settings"
msgstr ""
-#: ipalib/plugins/internal.py:539
+#: ipalib/plugins/internal.py:567
msgid "Provisioning"
msgstr ""
-#: ipalib/plugins/internal.py:543
+#: ipalib/plugins/internal.py:571
msgid "Are you sure you want to unprovision this service?"
msgstr ""
-#: ipalib/plugins/internal.py:545
+#: ipalib/plugins/internal.py:573
msgid "Service unprovisioned"
msgstr ""
-#: ipalib/plugins/internal.py:546
+#: ipalib/plugins/internal.py:574
msgid "Kerberos Key Present, Service Provisioned"
msgstr ""
-#: ipalib/plugins/internal.py:549
+#: ipalib/plugins/internal.py:577
msgid "SSH public keys"
msgstr ""
-#: ipalib/plugins/internal.py:550
+#: ipalib/plugins/internal.py:578
msgid "SSH public key:"
msgstr ""
-#: ipalib/plugins/internal.py:551
+#: ipalib/plugins/internal.py:579
msgid "Set SSH key"
msgstr ""
-#: ipalib/plugins/internal.py:552
+#: ipalib/plugins/internal.py:580
msgid "Show/Set key"
msgstr ""
-#: ipalib/plugins/internal.py:553
+#: ipalib/plugins/internal.py:581
msgid "Modified: key not set"
msgstr ""
-#: ipalib/plugins/internal.py:554
+#: ipalib/plugins/internal.py:582
msgid "Modified"
msgstr ""
-#: ipalib/plugins/internal.py:555
+#: ipalib/plugins/internal.py:583
msgid "New: key not set"
msgstr ""
-#: ipalib/plugins/internal.py:556
+#: ipalib/plugins/internal.py:584
msgid "New: key set"
msgstr ""
-#: ipalib/plugins/internal.py:559
+#: ipalib/plugins/internal.py:587
msgid "Groups"
msgstr ""
-#: ipalib/plugins/internal.py:562 ipalib/plugins/sudocmdgroup.py:82
+#: ipalib/plugins/internal.py:590 ipalib/plugins/sudocmdgroup.py:82
msgid "Commands"
msgstr ""
-#: ipalib/plugins/internal.py:565
+#: ipalib/plugins/internal.py:593
msgid "Allow"
msgstr ""
-#: ipalib/plugins/internal.py:566
+#: ipalib/plugins/internal.py:594
msgid "Any Command"
msgstr ""
-#: ipalib/plugins/internal.py:567
+#: ipalib/plugins/internal.py:595
msgid "Any Group"
msgstr ""
-#: ipalib/plugins/internal.py:570
+#: ipalib/plugins/internal.py:598
msgid "Run Commands"
msgstr ""
-#: ipalib/plugins/internal.py:571
+#: ipalib/plugins/internal.py:599
msgid "Deny"
msgstr ""
-#: ipalib/plugins/internal.py:573
+#: ipalib/plugins/internal.py:601
msgid "Access this host"
msgstr ""
-#: ipalib/plugins/internal.py:575
+#: ipalib/plugins/internal.py:603
msgid "Option added"
msgstr ""
-#: ipalib/plugins/internal.py:576
+#: ipalib/plugins/internal.py:604
msgid "Option(s) removed"
msgstr ""
-#: ipalib/plugins/internal.py:578
+#: ipalib/plugins/internal.py:606
msgid "As Whom"
msgstr ""
-#: ipalib/plugins/internal.py:579
+#: ipalib/plugins/internal.py:607
msgid "Specified Commands and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:580
+#: ipalib/plugins/internal.py:608
msgid "Specified Groups"
msgstr ""
-#: ipalib/plugins/internal.py:587
+#: ipalib/plugins/internal.py:615
msgid "Administrative account"
msgstr ""
-#: ipalib/plugins/internal.py:588
+#: ipalib/plugins/internal.py:616
+msgid "SID blacklists"
+msgstr ""
+
+#: ipalib/plugins/internal.py:617
msgid "Trust Settings"
msgstr ""
-#: ipalib/plugins/internal.py:589
+#: ipalib/plugins/internal.py:618 ipalib/plugins/realmdomains.py:68
+#: ipalib/plugins/trust.py:562
msgid "Domain"
msgstr ""
-#: ipalib/plugins/internal.py:590
+#: ipalib/plugins/internal.py:619
msgid "Establish using"
msgstr ""
-#: ipalib/plugins/internal.py:591 ipalib/plugins/trust.py:103
+#: ipalib/plugins/internal.py:620 ipalib/plugins/trust.py:202
msgid "Domain NetBIOS name"
msgstr ""
-#: ipalib/plugins/internal.py:592 ipalib/plugins/trust.py:105
+#: ipalib/plugins/internal.py:621 ipalib/plugins/trust.py:206
msgid "Domain Security Identifier"
msgstr ""
-#: ipalib/plugins/internal.py:593
+#: ipalib/plugins/internal.py:622
msgid "Pre-shared password"
msgstr ""
-#: ipalib/plugins/internal.py:594 ipalib/plugins/trust.py:107
+#: ipalib/plugins/internal.py:623 ipalib/plugins/trust.py:127
msgid "Trust direction"
msgstr ""
-#: ipalib/plugins/internal.py:595 ipalib/plugins/trust.py:111
+#: ipalib/plugins/internal.py:624 ipalib/plugins/trust.py:131
msgid "Trust status"
msgstr ""
-#: ipalib/plugins/internal.py:596 ipalib/plugins/trust.py:109
+#: ipalib/plugins/internal.py:625 ipalib/plugins/trust.py:129
msgid "Trust type"
msgstr ""
-#: ipalib/plugins/internal.py:599
+#: ipalib/plugins/internal.py:631
msgid "Account Settings"
msgstr ""
-#: ipalib/plugins/internal.py:600
+#: ipalib/plugins/internal.py:632
msgid "Account Status"
msgstr ""
-#: ipalib/plugins/internal.py:601
+#: ipalib/plugins/internal.py:633
msgid "Contact Settings"
msgstr ""
-#: ipalib/plugins/internal.py:602
+#: ipalib/plugins/internal.py:634
msgid "Employee Information"
msgstr ""
-#: ipalib/plugins/internal.py:603
+#: ipalib/plugins/internal.py:635
msgid "Error changing account status"
msgstr ""
-#: ipalib/plugins/internal.py:604
+#: ipalib/plugins/internal.py:636
msgid "Password expiration"
msgstr ""
-#: ipalib/plugins/internal.py:605
+#: ipalib/plugins/internal.py:637
msgid "Mailing Address"
msgstr ""
-#: ipalib/plugins/internal.py:606
+#: ipalib/plugins/internal.py:638
msgid "Misc. Information"
msgstr ""
-#: ipalib/plugins/internal.py:607
+#: ipalib/plugins/internal.py:639
msgid ""
"Are you sure you want to ${action} the user?<br/>The change will take effect "
"immediately."
msgstr ""
-#: ipalib/plugins/internal.py:608
+#: ipalib/plugins/internal.py:640
msgid "Click to ${action}"
msgstr ""
-#: ipalib/plugins/internal.py:612 ipalib/plugins/passwd.py:80
+#: ipalib/plugins/internal.py:644 ipalib/plugins/passwd.py:80
msgid "Current Password"
msgstr ""
-#: ipalib/plugins/internal.py:613
+#: ipalib/plugins/internal.py:645
msgid "Current password is required"
msgstr ""
-#: ipalib/plugins/internal.py:614
+#: ipalib/plugins/internal.py:646
msgid "Your password expires in ${days} days."
msgstr ""
-#: ipalib/plugins/internal.py:615
+#: ipalib/plugins/internal.py:647
msgid "The password or username you entered is incorrect."
msgstr ""
-#: ipalib/plugins/internal.py:616 ipalib/plugins/passwd.py:77
+#: ipalib/plugins/internal.py:648 ipalib/plugins/passwd.py:77
msgid "New Password"
msgstr ""
-#: ipalib/plugins/internal.py:617
+#: ipalib/plugins/internal.py:649
msgid "New password is required"
msgstr ""
-#: ipalib/plugins/internal.py:619
+#: ipalib/plugins/internal.py:651
msgid "Password change complete"
msgstr ""
-#: ipalib/plugins/internal.py:620
+#: ipalib/plugins/internal.py:652
msgid "Passwords must match"
msgstr ""
-#: ipalib/plugins/internal.py:621
+#: ipalib/plugins/internal.py:653
msgid "Password reset was not successful."
msgstr ""
-#: ipalib/plugins/internal.py:622
+#: ipalib/plugins/internal.py:654
msgid "Reset Password"
msgstr ""
-#: ipalib/plugins/internal.py:623
+#: ipalib/plugins/internal.py:655
msgid "Reset your password."
msgstr ""
-#: ipalib/plugins/internal.py:624
+#: ipalib/plugins/internal.py:656
msgid "Verify Password"
msgstr ""
-#: ipalib/plugins/internal.py:627
+#: ipalib/plugins/internal.py:659
msgid "Are you sure you want to delete selected entries?"
msgstr ""
-#: ipalib/plugins/internal.py:628
+#: ipalib/plugins/internal.py:660
msgid "Selected entries were deleted."
msgstr ""
-#: ipalib/plugins/internal.py:629
+#: ipalib/plugins/internal.py:661
msgid "Are you sure you want to disable selected entries?"
msgstr ""
-#: ipalib/plugins/internal.py:630
+#: ipalib/plugins/internal.py:662
msgid "${count} items were disabled"
msgstr ""
-#: ipalib/plugins/internal.py:631
+#: ipalib/plugins/internal.py:663
msgid "Are you sure you want to enable selected entries?"
msgstr ""
-#: ipalib/plugins/internal.py:632
+#: ipalib/plugins/internal.py:664
msgid "${count} items were enabled"
msgstr ""
-#: ipalib/plugins/internal.py:633
+#: ipalib/plugins/internal.py:665
msgid "Some entries were not deleted"
msgstr ""
-#: ipalib/plugins/internal.py:634
+#: ipalib/plugins/internal.py:666
msgid "Quick Links"
msgstr ""
-#: ipalib/plugins/internal.py:635
+#: ipalib/plugins/internal.py:667
msgid "Select All"
msgstr ""
-#: ipalib/plugins/internal.py:636
+#: ipalib/plugins/internal.py:668
msgid ""
"Query returned more results than the configured size limit. Displaying the "
"first ${counter} results."
msgstr ""
-#: ipalib/plugins/internal.py:637
+#: ipalib/plugins/internal.py:669
msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/internal.py:641
+#: ipalib/plugins/internal.py:673
msgid "Disabled"
msgstr ""
-#: ipalib/plugins/internal.py:647
+#: ipalib/plugins/internal.py:679
msgid "Audit"
msgstr ""
-#: ipalib/plugins/internal.py:648
+#: ipalib/plugins/internal.py:680
msgid "Automember"
msgstr ""
-#: ipalib/plugins/internal.py:649
+#: ipalib/plugins/internal.py:681
msgid "Automount"
msgstr ""
-#: ipalib/plugins/internal.py:650
+#: ipalib/plugins/internal.py:683
msgid "DNS"
msgstr ""
-#: ipalib/plugins/internal.py:651
+#: ipalib/plugins/internal.py:684
msgid "Host Based Access Control"
msgstr ""
-#: ipalib/plugins/internal.py:653
+#: ipalib/plugins/internal.py:686
msgid "IPA Server"
msgstr ""
-#: ipalib/plugins/internal.py:654
+#: ipalib/plugins/internal.py:687
msgid "Policy"
msgstr ""
-#: ipalib/plugins/internal.py:655
+#: ipalib/plugins/internal.py:688
msgid "Role Based Access Control"
msgstr ""
-#: ipalib/plugins/internal.py:656
+#: ipalib/plugins/internal.py:689
msgid "Sudo"
msgstr ""
-#: ipalib/plugins/internal.py:658
+#: ipalib/plugins/internal.py:690 ipalib/plugins/trust.py:191
+msgid "Trusts"
+msgstr ""
+
+#: ipalib/plugins/internal.py:692
msgid "True"
msgstr ""
-#: ipalib/plugins/internal.py:660
+#: ipalib/plugins/internal.py:694
msgid "Next"
msgstr ""
-#: ipalib/plugins/internal.py:661
+#: ipalib/plugins/internal.py:695
msgid "Page"
msgstr ""
-#: ipalib/plugins/internal.py:662
+#: ipalib/plugins/internal.py:696
msgid "Prev"
msgstr ""
-#: ipalib/plugins/internal.py:663
+#: ipalib/plugins/internal.py:697
msgid "undo"
msgstr ""
-#: ipalib/plugins/internal.py:664
+#: ipalib/plugins/internal.py:698
msgid "undo all"
msgstr ""
-#: ipalib/plugins/internal.py:666
+#: ipalib/plugins/internal.py:700
msgid "Text does not match field pattern"
msgstr ""
-#: ipalib/plugins/internal.py:667
+#: ipalib/plugins/internal.py:701
msgid "Must be a decimal number"
msgstr ""
-#: ipalib/plugins/internal.py:668
+#: ipalib/plugins/internal.py:702
msgid "Must be an integer"
msgstr ""
-#: ipalib/plugins/internal.py:669
+#: ipalib/plugins/internal.py:703
msgid "Not a valid IP address"
msgstr ""
-#: ipalib/plugins/internal.py:670
+#: ipalib/plugins/internal.py:704
msgid "Not a valid IPv4 address"
msgstr ""
-#: ipalib/plugins/internal.py:671
+#: ipalib/plugins/internal.py:705
msgid "Not a valid IPv6 address"
msgstr ""
-#: ipalib/plugins/internal.py:672
+#: ipalib/plugins/internal.py:706
msgid "Maximum value is ${value}"
msgstr ""
-#: ipalib/plugins/internal.py:673
+#: ipalib/plugins/internal.py:707
msgid "Minimum value is ${value}"
msgstr ""
-#: ipalib/plugins/internal.py:674
+#: ipalib/plugins/internal.py:708
msgid "Not a valid network address"
msgstr ""
-#: ipalib/plugins/internal.py:675
+#: ipalib/plugins/internal.py:709
msgid "'${port}' is not a valid port"
msgstr ""
-#: ipalib/plugins/internal.py:676
+#: ipalib/plugins/internal.py:710
msgid "Required field"
msgstr ""
-#: ipalib/plugins/internal.py:677
+#: ipalib/plugins/internal.py:711
msgid "Unsupported value"
msgstr ""
-#: ipalib/plugins/internal.py:682
+#: ipalib/plugins/internal.py:716
msgid "Dict of I18N messages"
msgstr ""
@@ -6888,6 +7253,12 @@ msgid ""
"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"
+"Users are added as members to the default user group. This can be a\n"
+"time-intensive task so during migration this is done in a batch\n"
+"mode for every 100 users. As a result there will be a window in which\n"
+"users will be added to IPA but will not be members of the default\n"
+"user group.\n"
+"\n"
"EXAMPLES:\n"
"\n"
" The simplest migration, accepting all defaults:\n"
@@ -6920,210 +7291,228 @@ msgid ""
" --user-ignore-objectclass=radiusprofile \\\n"
" --user-ignore-attribute=radiusgroupname \\\n"
" ldap://ds.example.com:389\n"
+"\n"
+"LOGGING\n"
+"\n"
+"Migration will log warnings and errors to the Apache error log. This\n"
+"file should be evaluated post-migration to correct or investigate any\n"
+"issues that were discovered.\n"
+"\n"
+"For every 100 users migrated an info-level message will be displayed to\n"
+"give the current progress and duration to make it possible to track\n"
+"the progress of migration.\n"
+"\n"
+"If the log level is debug, either by setting debug = True in\n"
+"/etc/ipa/default.conf or /etc/ipa/server.conf, then an entry will be "
+"printed\n"
+"for each user added plus a summary when the default user group is\n"
+"updated.\n"
msgstr ""
-#: ipalib/plugins/migration.py:109
+#: ipalib/plugins/migration.py:130
#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:110
+#: ipalib/plugins/migration.py:131
+#, python-format
+msgid ""
+"Unable to determine if Kerberos principal %s already exists. Use 'ipa user-"
+"mod' to set it manually."
+msgstr ""
+
+#: ipalib/plugins/migration.py:132
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:111
+#: ipalib/plugins/migration.py:133
msgid "Migration of LDAP search reference is not supported."
msgstr ""
-#: ipalib/plugins/migration.py:112
+#: ipalib/plugins/migration.py:134
msgid "Malformed DN"
msgstr ""
-#: ipalib/plugins/migration.py:128
+#: ipalib/plugins/migration.py:151
#, python-format
msgid "%(user)s is not a POSIX user"
msgstr ""
-#: ipalib/plugins/migration.py:334
+#: ipalib/plugins/migration.py:418
msgid ""
". Check GID of the existing group. Use --group-overwrite-gid option to "
"overwrite the GID"
msgstr ""
-#: ipalib/plugins/migration.py:349
+#: ipalib/plugins/migration.py:433
msgid "Invalid LDAP URI."
msgstr ""
-#: ipalib/plugins/migration.py:354
+#: ipalib/plugins/migration.py:438
msgid "Migrate users and groups from DS to IPA."
msgstr ""
-#: ipalib/plugins/migration.py:401
+#: ipalib/plugins/migration.py:485
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:402
+#: ipalib/plugins/migration.py:486
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:408
+#: ipalib/plugins/migration.py:492
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:415
+#: ipalib/plugins/migration.py:499
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:421
+#: ipalib/plugins/migration.py:505
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:422
+#: ipalib/plugins/migration.py:506
msgid "DN of container for users in DS relative to base DN"
msgstr ""
-#: ipalib/plugins/migration.py:428
+#: ipalib/plugins/migration.py:512
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:429
+#: ipalib/plugins/migration.py:513
msgid "DN of container for groups in DS relative to base DN"
msgstr ""
-#: ipalib/plugins/migration.py:435
+#: ipalib/plugins/migration.py:519
msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:436
-msgid ""
-"Comma-separated list of objectclasses used to search for user entries in DS"
+#: ipalib/plugins/migration.py:520
+msgid "Objectclasses used to search for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:443
+#: ipalib/plugins/migration.py:527
msgid "Group object class"
msgstr ""
-#: ipalib/plugins/migration.py:444
-msgid ""
-"Comma-separated list of objectclasses used to search for group entries in DS"
+#: ipalib/plugins/migration.py:528
+msgid "Objectclasses used to search for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:451
+#: ipalib/plugins/migration.py:535
msgid "Ignore user object class"
msgstr ""
-#: ipalib/plugins/migration.py:452
-msgid ""
-"Comma-separated list of objectclasses to be ignored for user entries in DS"
+#: ipalib/plugins/migration.py:536
+msgid "Objectclasses to be ignored for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:459
+#: ipalib/plugins/migration.py:543
msgid "Ignore user attribute"
msgstr ""
-#: ipalib/plugins/migration.py:460
-msgid "Comma-separated list of attributes to be ignored for user entries in DS"
+#: ipalib/plugins/migration.py:544
+msgid "Attributes to be ignored for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:467
+#: ipalib/plugins/migration.py:551
msgid "Ignore group object class"
msgstr ""
-#: ipalib/plugins/migration.py:468
-msgid ""
-"Comma-separated list of objectclasses to be ignored for group entries in DS"
+#: ipalib/plugins/migration.py:552
+msgid "Objectclasses to be ignored for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:475
+#: ipalib/plugins/migration.py:559
msgid "Ignore group attribute"
msgstr ""
-#: ipalib/plugins/migration.py:476
-msgid ""
-"Comma-separated list of attributes to be ignored for group entries in DS"
+#: ipalib/plugins/migration.py:560
+msgid "Attributes to be ignored for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:483
+#: ipalib/plugins/migration.py:567
msgid "Overwrite GID"
msgstr ""
-#: ipalib/plugins/migration.py:484
+#: ipalib/plugins/migration.py:568
msgid ""
"When migrating a group already existing in IPA domain overwrite the group "
"GID and report as success"
msgstr ""
-#: ipalib/plugins/migration.py:489
+#: ipalib/plugins/migration.py:573
msgid "LDAP schema"
msgstr ""
-#: ipalib/plugins/migration.py:490
+#: ipalib/plugins/migration.py:574
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:496
+#: ipalib/plugins/migration.py:580
msgid "Continue"
msgstr ""
-#: ipalib/plugins/migration.py:497
+#: ipalib/plugins/migration.py:581
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:502
+#: ipalib/plugins/migration.py:586
msgid "Base DN"
msgstr ""
-#: ipalib/plugins/migration.py:503
+#: ipalib/plugins/migration.py:587
msgid "Base DN on remote LDAP server"
msgstr ""
-#: ipalib/plugins/migration.py:507
+#: ipalib/plugins/migration.py:591
msgid "Ignore compat plugin"
msgstr ""
-#: ipalib/plugins/migration.py:508
+#: ipalib/plugins/migration.py:592
msgid "Allows migration despite the usage of compat plugin"
msgstr ""
-#: ipalib/plugins/migration.py:516
+#: ipalib/plugins/migration.py:600
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:520
+#: ipalib/plugins/migration.py:604
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:524
+#: ipalib/plugins/migration.py:608
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:528
+#: ipalib/plugins/migration.py:612
msgid "False if migration fails because the compatibility plug-in is enabled."
msgstr ""
-#: ipalib/plugins/migration.py:532
+#: ipalib/plugins/migration.py:616
#, python-format
-msgid "comma-separated list of %s to exclude from migration"
+msgid "%s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:534
+#: ipalib/plugins/migration.py:618
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:539
+#: ipalib/plugins/migration.py:623
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:542
+#: ipalib/plugins/migration.py:626
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -7132,14 +7521,14 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:627
+#: ipalib/plugins/migration.py:712
#, python-format
msgid ""
"%(container)s LDAP search did not return any result (search base: "
"%(search_base)s, objectclass: %(objectclass)s)"
msgstr ""
-#: ipalib/plugins/migration.py:659 ipalib/plugins/user.py:509
+#: ipalib/plugins/migration.py:744 ipalib/plugins/user.py:519
msgid "Default group for new users not found"
msgstr ""
@@ -7200,7 +7589,7 @@ msgid ""
" ipa netgroup-add --desc=\"NFS admins\" admins\n"
"\n"
" Add members to the netgroup:\n"
-" ipa netgroup-add-member --users=tuser1,tuser2 admins\n"
+" ipa netgroup-add-member --users=tuser1 --users=tuser2 admins\n"
"\n"
" Remove a member from the netgroup:\n"
" ipa netgroup-remove-member --users=tuser2 admins\n"
@@ -7413,99 +7802,98 @@ msgstr ""
msgid "permissions"
msgstr ""
-#: ipalib/plugins/permission.py:127
+#: ipalib/plugins/permission.py:128
msgid "Permission name"
msgstr ""
-#: ipalib/plugins/permission.py:135
-msgid ""
-"Comma-separated list of permissions to grant (read, write, add, delete, all)"
+#: ipalib/plugins/permission.py:136
+msgid "Permissions to grant (read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/permission.py:150
+#: ipalib/plugins/permission.py:151
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
msgstr ""
-#: ipalib/plugins/permission.py:156
+#: ipalib/plugins/permission.py:157
msgid "Member of group"
msgstr ""
-#: ipalib/plugins/permission.py:157
+#: ipalib/plugins/permission.py:158
msgid "Target members of a group"
msgstr ""
-#: ipalib/plugins/permission.py:169
+#: ipalib/plugins/permission.py:170
msgid "Subtree to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:175
+#: ipalib/plugins/permission.py:176
msgid "User group to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:200
+#: ipalib/plugins/permission.py:201
msgid "Add a new permission."
msgstr ""
-#: ipalib/plugins/permission.py:202 ipalib/plugins/permission.py:258
+#: ipalib/plugins/permission.py:203 ipalib/plugins/permission.py:259
#, python-format
msgid "Added permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:256
+#: ipalib/plugins/permission.py:257
msgid "Add a system permission without an ACI"
msgstr ""
-#: ipalib/plugins/permission.py:264
+#: ipalib/plugins/permission.py:265
msgid "Permission type"
msgstr ""
-#: ipalib/plugins/permission.py:291
+#: ipalib/plugins/permission.py:292
msgid "Delete a permission."
msgstr ""
-#: ipalib/plugins/permission.py:293
+#: ipalib/plugins/permission.py:294
#, python-format
msgid "Deleted permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:299
+#: ipalib/plugins/permission.py:300
msgid "force delete of SYSTEM permissions"
msgstr ""
-#: ipalib/plugins/permission.py:307
+#: ipalib/plugins/permission.py:308
msgid "A SYSTEM permission may not be removed"
msgstr ""
-#: ipalib/plugins/permission.py:319
+#: ipalib/plugins/permission.py:320
msgid "Modify a permission."
msgstr ""
-#: ipalib/plugins/permission.py:321
+#: ipalib/plugins/permission.py:322
#, python-format
msgid "Modified permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:328
+#: ipalib/plugins/permission.py:329
msgid "A SYSTEM permission may not be modified"
msgstr ""
-#: ipalib/plugins/permission.py:355
+#: ipalib/plugins/permission.py:354
msgid "New name can not be empty"
msgstr ""
-#: ipalib/plugins/permission.py:411
+#: ipalib/plugins/permission.py:410
msgid "Search for permissions."
msgstr ""
-#: ipalib/plugins/permission.py:414
+#: ipalib/plugins/permission.py:413
#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/permission.py:493
+#: ipalib/plugins/permission.py:492
msgid "Display information about a permission."
msgstr ""
@@ -7831,42 +8219,109 @@ msgstr ""
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:319
+#: ipalib/plugins/pwpolicy.py:320
msgid "Maximum password life must be greater than minimum."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:338
+#: ipalib/plugins/pwpolicy.py:339
msgid "Add a new group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:365
+#: ipalib/plugins/pwpolicy.py:366
msgid "Delete a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:377
+#: ipalib/plugins/pwpolicy.py:378
msgid "cannot delete global password policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:393
+#: ipalib/plugins/pwpolicy.py:394
msgid "Modify a group password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:404
+#: ipalib/plugins/pwpolicy.py:405
msgid "priority cannot be set on global policy"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:437
+#: ipalib/plugins/pwpolicy.py:438
msgid "Display information about password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:442
+#: ipalib/plugins/pwpolicy.py:443
msgid "Display effective policy for a specific user"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:467
+#: ipalib/plugins/pwpolicy.py:468
msgid "Search for group password policies."
msgstr ""
+#: ipalib/plugins/realmdomains.py:30
+msgid ""
+"\n"
+"Realm domains\n"
+"\n"
+"Manage the list of domains associated with IPA realm.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Display the current list of realm domains:\n"
+" ipa realmdomains-show\n"
+"\n"
+" Replace the list of realm domains:\n"
+" ipa realmdomains-mod --domain=example.com\n"
+" ipa realmdomains-mod --domain={example1.com,example2.com,example3.com}\n"
+"\n"
+" Add a domain to the list of realm domains:\n"
+" ipa realmdomains-mod --add-domain=newdomain.com\n"
+"\n"
+" Delete a domain from the list of realm domains:\n"
+" ipa realmdomains-mod --del-domain=olddomain.com\n"
+msgstr ""
+
+#: ipalib/plugins/realmdomains.py:57
+msgid "Realm domains"
+msgstr ""
+
+#: ipalib/plugins/realmdomains.py:73
+msgid "Add domain"
+msgstr ""
+
+#: ipalib/plugins/realmdomains.py:78
+msgid "Delete domain"
+msgstr ""
+
+#: ipalib/plugins/realmdomains.py:86
+msgid "Modify realm domains."
+msgstr ""
+
+#: ipalib/plugins/realmdomains.py:91
+msgid "Force adding domain even if not in DNS"
+msgstr ""
+
+#: ipalib/plugins/realmdomains.py:104
+msgid ""
+"you cannot specify the --domain option together with --add-domain or --del-"
+"domain"
+msgstr ""
+
+#: ipalib/plugins/realmdomains.py:106 ipalib/plugins/realmdomains.py:126
+msgid "cannot delete domain of IPA server"
+msgstr ""
+
+#: ipalib/plugins/realmdomains.py:111
+#, python-format
+msgid "no SOA or NS records found for domains: %s"
+msgstr ""
+
+#: ipalib/plugins/realmdomains.py:120
+#, python-format
+msgid "no SOA or NS records found for domain %s"
+msgstr ""
+
+#: ipalib/plugins/realmdomains.py:140
+msgid "Display the list of realm domains."
+msgstr ""
+
#: ipalib/plugins/role.py:26
msgid ""
"\n"
@@ -8007,13 +8462,15 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Add a self-service rule to allow users to manage their address:\n"
-" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st "
-"\"Users manage their own address\"\n"
+" Add a self-service rule to allow users to manage their address (using Bash\n"
+" brace expansion):\n"
+" ipa selfservice-add --permissions=write --attrs={street,postalCode,l,c,"
+"st} \"Users manage their own address\"\n"
"\n"
" When managing the list of attributes you need to include all attributes\n"
-" in the list, including existing ones. Add telephoneNumber to the list:\n"
-" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber "
+" in the list, including existing ones.\n"
+" Add telephoneNumber to the list (using Bash brace expansion):\n"
+" ipa selfservice-mod --attrs={street,postalCode,l,c,st,telephoneNumber} "
"\"Users manage their own address\"\n"
"\n"
" Display our updated rule:\n"
@@ -8023,65 +8480,69 @@ msgid ""
" ipa selfservice-del \"Users manage their own address\"\n"
msgstr ""
-#: ipalib/plugins/selfservice.py:69
+#: ipalib/plugins/selfservice.py:71
msgid "self service permission"
msgstr ""
-#: ipalib/plugins/selfservice.py:70
+#: ipalib/plugins/selfservice.py:72
msgid "self service permissions"
msgstr ""
-#: ipalib/plugins/selfservice.py:71
+#: ipalib/plugins/selfservice.py:73
msgid "Self Service Permissions"
msgstr ""
-#: ipalib/plugins/selfservice.py:72
+#: ipalib/plugins/selfservice.py:74
msgid "Self Service Permission"
msgstr ""
-#: ipalib/plugins/selfservice.py:77 ipalib/plugins/selfservice.py:78
+#: ipalib/plugins/selfservice.py:79 ipalib/plugins/selfservice.py:80
msgid "Self-service name"
msgstr ""
-#: ipalib/plugins/selfservice.py:122
+#: ipalib/plugins/selfservice.py:94
+msgid "Attributes to which the permission applies."
+msgstr ""
+
+#: ipalib/plugins/selfservice.py:123
msgid "Add a new self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:124
+#: ipalib/plugins/selfservice.py:125
#, python-format
msgid "Added selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:144
+#: ipalib/plugins/selfservice.py:145
msgid "Delete a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:147
+#: ipalib/plugins/selfservice.py:148
#, python-format
msgid "Deleted selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:162
+#: ipalib/plugins/selfservice.py:163
msgid "Modify a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:164
+#: ipalib/plugins/selfservice.py:165
#, python-format
msgid "Modified selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:184
+#: ipalib/plugins/selfservice.py:185
msgid "Search for a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:187
+#: ipalib/plugins/selfservice.py:188
#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/selfservice.py:211
+#: ipalib/plugins/selfservice.py:212
msgid "Display information about a self-service permission."
msgstr ""
@@ -8303,6 +8764,12 @@ msgid ""
" Override a default list of supported PAC types for the service:\n"
" ipa service-mod HTTP/web.example.com --pac-type=MS-PAC\n"
"\n"
+" A typical use case where overriding the PAC type is needed is NFS.\n"
+" Currently the related code in the Linux kernel can only handle Kerberos\n"
+" tickets up to a maximal size. Since the PAC data can become quite large "
+"it\n"
+" is recommended to set --pac-type=NONE for NFS services.\n"
+"\n"
" Delete an IPA service:\n"
" ipa service-del HTTP/web.example.com\n"
"\n"
@@ -8324,112 +8791,128 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/service.py:132
+#: ipalib/plugins/service.py:133
+msgid "Requires pre-authentication"
+msgstr ""
+
+#: ipalib/plugins/service.py:134
+msgid "Pre-authentication is required for the service"
+msgstr ""
+
+#: ipalib/plugins/service.py:139
+msgid "Trusted for delegation"
+msgstr ""
+
+#: ipalib/plugins/service.py:140
+msgid "Client credentials may be delegated to the service"
+msgstr ""
+
+#: ipalib/plugins/service.py:159
msgid "missing service"
msgstr ""
-#: ipalib/plugins/service.py:136
+#: ipalib/plugins/service.py:163
msgid "blank service"
msgstr ""
-#: ipalib/plugins/service.py:140
+#: ipalib/plugins/service.py:167
msgid "unable to determine realm"
msgstr ""
-#: ipalib/plugins/service.py:213
+#: ipalib/plugins/service.py:240
msgid "This principal is required by the IPA master"
msgstr ""
-#: ipalib/plugins/service.py:220
+#: ipalib/plugins/service.py:295
msgid "service"
msgstr ""
-#: ipalib/plugins/service.py:221
+#: ipalib/plugins/service.py:296
msgid "services"
msgstr ""
-#: ipalib/plugins/service.py:247
+#: ipalib/plugins/service.py:322
msgid "Service principal"
msgstr ""
-#: ipalib/plugins/service.py:259
+#: ipalib/plugins/service.py:334
msgid "PAC type"
msgstr ""
-#: ipalib/plugins/service.py:260
+#: ipalib/plugins/service.py:335
msgid ""
"Override default list of supported PAC types. Use 'NONE' to disable PAC "
-"support for this service"
+"support for this service, e.g. this might be necessary for NFS services."
msgstr ""
-#: ipalib/plugins/service.py:280
+#: ipalib/plugins/service.py:356
msgid "NONE value cannot be combined with other PAC types"
msgstr ""
-#: ipalib/plugins/service.py:286
+#: ipalib/plugins/service.py:362
msgid "Add a new IPA new service."
msgstr ""
-#: ipalib/plugins/service.py:288
+#: ipalib/plugins/service.py:364
#, python-format
msgid "Added service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:294
+#: ipalib/plugins/service.py:370
msgid "force principal name even if not in DNS"
msgstr ""
-#: ipalib/plugins/service.py:307
+#: ipalib/plugins/service.py:384
#, python-format
msgid "The host '%s' does not exist to add a service to."
msgstr ""
-#: ipalib/plugins/service.py:341
+#: ipalib/plugins/service.py:424
msgid "Delete an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:343
+#: ipalib/plugins/service.py:426
#, python-format
msgid "Deleted service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:386
+#: ipalib/plugins/service.py:469
msgid "Modify an existing IPA service."
msgstr ""
-#: ipalib/plugins/service.py:388
+#: ipalib/plugins/service.py:471
#, python-format
msgid "Modified service \"%(value)s\""
msgstr ""
-#: ipalib/plugins/service.py:430
+#: ipalib/plugins/service.py:517
msgid "Search for IPA services."
msgstr ""
-#: ipalib/plugins/service.py:433
+#: ipalib/plugins/service.py:520
#, python-format
msgid "%(count)d service matched"
msgid_plural "%(count)d services matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/service.py:467
+#: ipalib/plugins/service.py:555
msgid "Display information about an IPA service."
msgstr ""
-#: ipalib/plugins/service.py:501
+#: ipalib/plugins/service.py:590
msgid "Add hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:510
+#: ipalib/plugins/service.py:599
msgid "Remove hosts that can manage this service."
msgstr ""
-#: ipalib/plugins/service.py:519
+#: ipalib/plugins/service.py:608
msgid "Disable the Kerberos key and SSL certificate of a service."
msgstr ""
-#: ipalib/plugins/service.py:522
+#: ipalib/plugins/service.py:611
#, python-format
msgid "Disabled service \"%(value)s\""
msgstr ""
@@ -8463,57 +8946,57 @@ msgstr ""
msgid "sudo commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:65
+#: ipalib/plugins/sudocmd.py:66
msgid "Sudo Commands"
msgstr ""
-#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71
+#: ipalib/plugins/sudocmd.py:67 ipalib/plugins/sudocmd.py:72
msgid "Sudo Command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:77
+#: ipalib/plugins/sudocmd.py:78
msgid "A description of this command"
msgstr ""
-#: ipalib/plugins/sudocmd.py:100
+#: ipalib/plugins/sudocmd.py:101
msgid "Create new Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:102
+#: ipalib/plugins/sudocmd.py:103
#, python-format
msgid "Added Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:107
+#: ipalib/plugins/sudocmd.py:108
msgid "Delete Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:109
+#: ipalib/plugins/sudocmd.py:110
#, python-format
msgid "Deleted Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:114
+#: ipalib/plugins/sudocmd.py:141
msgid "Modify Sudo Command."
msgstr ""
-#: ipalib/plugins/sudocmd.py:116
+#: ipalib/plugins/sudocmd.py:143
#, python-format
msgid "Modified Sudo Command \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudocmd.py:121
+#: ipalib/plugins/sudocmd.py:148
msgid "Search for Sudo Commands."
msgstr ""
-#: ipalib/plugins/sudocmd.py:124
+#: ipalib/plugins/sudocmd.py:151
#, python-format
msgid "%(count)d Sudo Command matched"
msgid_plural "%(count)d Sudo Commands matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudocmd.py:130
+#: ipalib/plugins/sudocmd.py:157
msgid "Display Sudo Command."
msgstr ""
@@ -8533,8 +9016,8 @@ msgid ""
" ipa sudocmdgroup-del admincmds\n"
"\n"
" Manage Sudo Command Group membership, commands:\n"
-" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim "
-"admincmds\n"
+" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less --sudocmds=/usr/bin/"
+"vim admincmds\n"
"\n"
" Manage Sudo Command Group membership, commands:\n"
" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n"
@@ -8753,8 +9236,8 @@ msgstr ""
msgid "External Group the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:212 ipalib/plugins/sudorule.py:611
-#: ipalib/plugins/sudorule.py:663
+#: ipalib/plugins/sudorule.py:212 ipalib/plugins/sudorule.py:612
+#: ipalib/plugins/sudorule.py:665
msgid "Sudo Option"
msgstr ""
@@ -8912,21 +9395,21 @@ msgstr ""
msgid "Add an option to the Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:648
+#: ipalib/plugins/sudorule.py:649
#, python-format
msgid "Added option \"%(option)s\" to Sudo Rule \"%(rule)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:658
+#: ipalib/plugins/sudorule.py:659
msgid "Remove an option from Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:703
+#: ipalib/plugins/sudorule.py:705
#, python-format
msgid "Removed option \"%(option)s\" from Sudo Rule \"%(rule)s\""
msgstr ""
-#: ipalib/plugins/trust.py:41
+#: ipalib/plugins/trust.py:42
msgid ""
"\n"
"Cross-realm trusts\n"
@@ -8973,241 +9456,275 @@ msgid ""
"\n"
"Example:\n"
"\n"
-"1. Make note of the trusted domain security identifier\n"
-"\n"
-" domainsid = `ipa trust-show <ad.domain> | grep Identifier | cut -d: -f2`\n"
-"\n"
-"2. Create group for the trusted domain admins' mapping and their local POSIX "
+"1. Create group for the trusted domain admins' mapping and their local POSIX "
"group:\n"
"\n"
" ipa group-add --desc='<ad.domain> admins external map' ad_admins_external "
"--external\n"
" ipa group-add --desc='<ad.domain> admins' ad_admins\n"
"\n"
-"3. Add security identifier of Domain Admins of the <ad.domain> to the "
+"2. Add security identifier of Domain Admins of the <ad.domain> to the "
"ad_admins_external\n"
-" group (security identifier of <ad.domain SID>-512 is Domain Admins "
-"group):\n"
+" group:\n"
"\n"
-" ipa group-add-member ad_admins_external --external ${domainsid}-512\n"
+" ipa group-add-member ad_admins_external --external 'AD\\Domain Admins'\n"
"\n"
-"4. Allow members of ad_admins_external group to be associated with ad_admins "
+"3. Allow members of ad_admins_external group to be associated with ad_admins "
"POSIX group:\n"
"\n"
" ipa group-add-member ad_admins --groups ad_admins_external\n"
"\n"
+"4. List members of external members of ad_admins_external group to see their "
+"SIDs:\n"
+"\n"
+" ipa group-show ad_admins_external\n"
+"\n"
+"\n"
+"GLOBAL TRUST CONFIGURATION\n"
+"\n"
+"When IPA AD trust subpackage is installed and ipa-adtrust-install is run,\n"
+"a local domain configuration (SID, GUID, NetBIOS name) is generated. These\n"
+"identifiers are then used when communicating with a trusted domain of the\n"
+"particular type.\n"
+"\n"
+"1. Show global trust configuration for Active Directory type of trusts:\n"
+"\n"
+" ipa trustconfig-show --type ad\n"
+"\n"
+"2. Modify global configuration for all trusts of Active Directory type and "
+"set\n"
+" a different fallback primary group (fallback primary group GID is used "
+"as\n"
+" a primary user GID if user authenticating to IPA domain does not have any "
+"other\n"
+" primary GID already set):\n"
+"\n"
+" ipa trustconfig-mod --type ad --fallback-primary-group \"alternative AD "
+"group\"\n"
+"\n"
+"3. Change primary fallback group back to default hidden group (any group "
+"with\n"
+" posixGroup object class is allowed):\n"
+"\n"
+" ipa trustconfig-mod --type ad --fallback-primary-group \"Default SMB Group"
+"\"\n"
msgstr ""
-#: ipalib/plugins/trust.py:114
+#: ipalib/plugins/trust.py:134
msgid "Non-Active Directory domain"
msgstr ""
-#: ipalib/plugins/trust.py:116
+#: ipalib/plugins/trust.py:136
msgid "RFC4120-compliant Kerberos realm"
msgstr ""
-#: ipalib/plugins/trust.py:117
+#: ipalib/plugins/trust.py:137
msgid "Trusting forest"
msgstr ""
-#: ipalib/plugins/trust.py:118
+#: ipalib/plugins/trust.py:138
msgid "Trusted forest"
msgstr ""
-#: ipalib/plugins/trust.py:119
+#: ipalib/plugins/trust.py:139
msgid "Two-way trust"
msgstr ""
-#: ipalib/plugins/trust.py:120
+#: ipalib/plugins/trust.py:140
msgid "Established and verified"
msgstr ""
-#: ipalib/plugins/trust.py:121
+#: ipalib/plugins/trust.py:141
msgid "Waiting for confirmation by remote side"
msgstr ""
-#: ipalib/plugins/trust.py:122
+#: ipalib/plugins/trust.py:142
msgid "Unknown"
msgstr ""
-#: ipalib/plugins/trust.py:153
-msgid "trust"
+#: ipalib/plugins/trust.py:146
+msgid "Trust type (ad for Active Directory, default)"
msgstr ""
-#: ipalib/plugins/trust.py:154
-msgid "trusts"
+#: ipalib/plugins/trust.py:181
+msgid "trust"
msgstr ""
-#: ipalib/plugins/trust.py:163
-msgid "Trusts"
+#: ipalib/plugins/trust.py:182
+msgid "trusts"
msgstr ""
-#: ipalib/plugins/trust.py:164
+#: ipalib/plugins/trust.py:192
msgid "Trust"
msgstr ""
-#: ipalib/plugins/trust.py:169 ipa-client/ipa-rmkeytab.c:176
+#: ipalib/plugins/trust.py:197 ipa-client/ipa-rmkeytab.c:176
msgid "Realm name"
msgstr ""
-#: ipalib/plugins/trust.py:182
-msgid "Add new trust to use"
+#: ipalib/plugins/trust.py:211
+msgid "SID blacklist incoming"
msgstr ""
-#: ipalib/plugins/trust.py:187
-msgid "Trust type (ad for Active Directory, default)"
+#: ipalib/plugins/trust.py:216
+msgid "SID blacklist outgoing"
+msgstr ""
+
+#: ipalib/plugins/trust.py:233
+#, python-format
+msgid "invalid SID: %(value)s"
msgstr ""
-#: ipalib/plugins/trust.py:194
+#: ipalib/plugins/trust.py:243
+msgid ""
+"\n"
+"Add new trust to use.\n"
+"\n"
+"This command establishes trust relationship to another domain\n"
+"which becomes 'trusted'. As result, users of the trusted domain\n"
+"may access resources of this domain.\n"
+"\n"
+"Only trusts to Active Directory domains are supported right now.\n"
+"\n"
+"The command can be safely run multiple times against the same domain,\n"
+"this will cause change to trust relationship credentials on both\n"
+"sides.\n"
+" "
+msgstr ""
+
+#: ipalib/plugins/trust.py:261
msgid "Active Directory domain administrator"
msgstr ""
-#: ipalib/plugins/trust.py:198
+#: ipalib/plugins/trust.py:265
msgid "Active directory domain administrator's password"
msgstr ""
-#: ipalib/plugins/trust.py:203
+#: ipalib/plugins/trust.py:270
msgid "Domain controller for the Active Directory domain (optional)"
msgstr ""
-#: ipalib/plugins/trust.py:207
+#: ipalib/plugins/trust.py:274
msgid "Shared secret for the trust"
msgstr ""
-#: ipalib/plugins/trust.py:212
+#: ipalib/plugins/trust.py:279
msgid "First Posix ID of the range reserved for the trusted domain"
msgstr ""
-#: ipalib/plugins/trust.py:216
+#: ipalib/plugins/trust.py:283
msgid "Size of the ID range reserved for the trusted domain"
msgstr ""
-#: ipalib/plugins/trust.py:222
+#: ipalib/plugins/trust.py:289
#, python-format
msgid "Added Active Directory trust for realm \"%(value)s\""
msgstr ""
-#: ipalib/plugins/trust.py:227
+#: ipalib/plugins/trust.py:294
msgid "missing base_id"
msgstr ""
-#: ipalib/plugins/trust.py:228
+#: ipalib/plugins/trust.py:295
msgid "pysss_murmur is not available on the server and no base-id is given."
msgstr ""
-#: ipalib/plugins/trust.py:235 ipalib/plugins/trust.py:237
+#: ipalib/plugins/trust.py:302 ipalib/plugins/trust.py:304
msgid "trust type"
msgstr ""
-#: ipalib/plugins/trust.py:235
+#: ipalib/plugins/trust.py:302
msgid "only \"ad\" is supported"
msgstr ""
-#: ipalib/plugins/trust.py:272
+#: ipalib/plugins/trust.py:339
msgid "range exists"
msgstr ""
-#: ipalib/plugins/trust.py:273
+#: ipalib/plugins/trust.py:340
msgid ""
"ID range with the same name but different domain SID already exists. The ID "
"range for the new trusted domain must be created manually."
msgstr ""
-#: ipalib/plugins/trust.py:289
-msgid "ID range exists"
-msgstr ""
-
-#: ipalib/plugins/trust.py:290
-msgid "ID range already exists, must be added manually"
-msgstr ""
-
-#: ipalib/plugins/trust.py:297 ipalib/plugins/trust.py:308
-#: ipalib/plugins/trust.py:321 ipalib/plugins/trust.py:326
-#: ipalib/plugins/trust.py:360 ipalib/plugins/trust.py:371
+#: ipalib/plugins/trust.py:361 ipalib/plugins/trust.py:372
+#: ipalib/plugins/trust.py:390 ipalib/plugins/trust.py:395
+#: ipalib/plugins/trust.py:426 ipalib/plugins/trust.py:442
msgid "AD Trust setup"
msgstr ""
-#: ipalib/plugins/trust.py:298
+#: ipalib/plugins/trust.py:362
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:309
+#: ipalib/plugins/trust.py:373
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:322
+#: ipalib/plugins/trust.py:378
+#, python-format
+msgid "Re-established trust to domain \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/trust.py:391
msgid "Trusted domain and administrator account use different realms"
msgstr ""
-#: ipalib/plugins/trust.py:326
+#: ipalib/plugins/trust.py:395
msgid "Realm administrator password should be specified"
msgstr ""
-#: ipalib/plugins/trust.py:332
+#: ipalib/plugins/trust.py:401
#, python-format
msgid "Unable to resolve domain controller for '%s' domain. "
msgstr ""
-#: ipalib/plugins/trust.py:337
+#: ipalib/plugins/trust.py:407
msgid ""
"Forward policy is defined for it in IPA DNS, perhaps forwarder points to "
"incorrect host?"
msgstr ""
-#: ipalib/plugins/trust.py:340
-#, python-format
-msgid ""
-"IPA manages DNS, please configure forwarder to '%(domain)s' domain using "
-"following CLI command. Make sure to replace DNS_SERVER and IP_ADDRESS by "
-"actual values corresponding to the trusted domain's DNS server:"
-msgstr ""
-
-#: ipalib/plugins/trust.py:347
-#, python-format
-msgid ""
-"\tipa dnszone-add %(domain)s --name-server=[DNS_SERVER] --admin-"
-"email='hostmaster@%(domain)s' --force --forwarder=[IP_ADDRESS] --forward-"
-"policy=only"
-msgstr ""
-
-#: ipalib/plugins/trust.py:351
+#: ipalib/plugins/trust.py:410
#, python-format
msgid ""
-"When using Web UI, please create DNS zone for domain '%(domain)s' first and "
-"then set forwarder and forward policy."
+"IPA manages DNS, please verify your DNS configuration and make sure that "
+"service records of the '%(domain)s' domain can be resolved. Examples how to "
+"configure DNS with CLI commands or the Web UI can be found in the "
+"documentation. "
msgstr ""
-#: ipalib/plugins/trust.py:354
+#: ipalib/plugins/trust.py:420
#, python-format
msgid ""
"Since IPA does not manage DNS records, ensure DNS is configured to resolve "
"'%(domain)s' domain from IPA hosts and back."
msgstr ""
-#: ipalib/plugins/trust.py:361
+#: ipalib/plugins/trust.py:427
msgid "Unable to verify write permissions to the AD"
msgstr ""
-#: ipalib/plugins/trust.py:372
+#: ipalib/plugins/trust.py:443
msgid "Not enough arguments specified to perform trust setup"
msgstr ""
-#: ipalib/plugins/trust.py:375
+#: ipalib/plugins/trust.py:446
msgid "Delete a trust."
msgstr ""
-#: ipalib/plugins/trust.py:377
+#: ipalib/plugins/trust.py:448
#, python-format
msgid "Deleted trust \"%(value)s\""
msgstr ""
-#: ipalib/plugins/trust.py:388
+#: ipalib/plugins/trust.py:459
msgid ""
"\n"
" Modify a trust (for future use).\n"
@@ -9217,27 +9734,68 @@ msgid ""
" "
msgstr ""
-#: ipalib/plugins/trust.py:395
+#: ipalib/plugins/trust.py:466
#, python-format
-msgid "Modified trust \"%(value)s\""
+msgid "Modified trust \"%(value)s\" (change will be effective in 60 seconds)"
msgstr ""
-#: ipalib/plugins/trust.py:409
+#: ipalib/plugins/trust.py:483
msgid "Search for trusts."
msgstr ""
-#: ipalib/plugins/trust.py:413
+#: ipalib/plugins/trust.py:487
#, python-format
msgid "%(count)d trust matched"
msgid_plural "%(count)d trusts matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/trust.py:433
+#: ipalib/plugins/trust.py:507
msgid "Display information about a trust."
msgstr ""
-#: ipalib/plugins/user.py:39
+#: ipalib/plugins/trust.py:551
+msgid "trust configuration"
+msgstr ""
+
+#: ipalib/plugins/trust.py:557 ipalib/plugins/trust.py:558
+msgid "Global Trust Configuration"
+msgstr ""
+
+#: ipalib/plugins/trust.py:566
+msgid "Security Identifier"
+msgstr ""
+
+#: ipalib/plugins/trust.py:570
+msgid "NetBIOS name"
+msgstr ""
+
+#: ipalib/plugins/trust.py:574
+msgid "Domain GUID"
+msgstr ""
+
+#: ipalib/plugins/trust.py:579
+msgid "Fallback primary group"
+msgstr ""
+
+#: ipalib/plugins/trust.py:591
+msgid "unsupported trust type"
+msgstr ""
+
+#: ipalib/plugins/trust.py:654
+msgid "Modify global trust configuration."
+msgstr ""
+
+#: ipalib/plugins/trust.py:657
+#, python-format
+msgid "Modified \"%(value)s\" trust configuration"
+msgstr ""
+
+#: ipalib/plugins/trust.py:676
+msgid "Show global trust configuration."
+msgstr ""
+
+#: ipalib/plugins/user.py:41
msgid ""
"\n"
"Users\n"
@@ -9283,250 +9841,250 @@ msgid ""
" ipa user-del tuser1\n"
msgstr ""
-#: ipalib/plugins/user.py:88
+#: ipalib/plugins/user.py:89
msgid "Kerberos keys available"
msgstr ""
-#: ipalib/plugins/user.py:97
+#: ipalib/plugins/user.py:98
msgid "Server"
msgstr ""
-#: ipalib/plugins/user.py:100
+#: ipalib/plugins/user.py:101
msgid "Failed logins"
msgstr ""
-#: ipalib/plugins/user.py:103
+#: ipalib/plugins/user.py:104
msgid "Last successful authentication"
msgstr ""
-#: ipalib/plugins/user.py:106
+#: ipalib/plugins/user.py:107
msgid "Last failed authentication"
msgstr ""
-#: ipalib/plugins/user.py:109
+#: ipalib/plugins/user.py:110
msgid "Time now"
msgstr ""
-#: ipalib/plugins/user.py:124
+#: ipalib/plugins/user.py:125
msgid "must be TRUE or FALSE"
msgstr ""
-#: ipalib/plugins/user.py:196
+#: ipalib/plugins/user.py:197
msgid "user"
msgstr ""
-#: ipalib/plugins/user.py:197
+#: ipalib/plugins/user.py:198
msgid "users"
msgstr ""
-#: ipalib/plugins/user.py:233
+#: ipalib/plugins/user.py:234
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:240
+#: ipalib/plugins/user.py:241
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:244
+#: ipalib/plugins/user.py:245
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:247
+#: ipalib/plugins/user.py:248
msgid "Full name"
msgstr ""
-#: ipalib/plugins/user.py:252
+#: ipalib/plugins/user.py:253
msgid "Display name"
msgstr ""
-#: ipalib/plugins/user.py:257
+#: ipalib/plugins/user.py:258
msgid "Initials"
msgstr ""
-#: ipalib/plugins/user.py:263
+#: ipalib/plugins/user.py:264
msgid "Home directory"
msgstr ""
-#: ipalib/plugins/user.py:266
+#: ipalib/plugins/user.py:267
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:272
+#: ipalib/plugins/user.py:273
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:276
+#: ipalib/plugins/user.py:277
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:284
+#: ipalib/plugins/user.py:285
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:289
+#: ipalib/plugins/user.py:290
msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:295
+#: ipalib/plugins/user.py:296
msgid "Generate a random user password"
msgstr ""
-#: ipalib/plugins/user.py:305
+#: ipalib/plugins/user.py:306
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:306
+#: ipalib/plugins/user.py:307
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:313
+#: ipalib/plugins/user.py:312
msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:320
+#: ipalib/plugins/user.py:317
msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:324
+#: ipalib/plugins/user.py:321
msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:328
+#: ipalib/plugins/user.py:325
msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:331
+#: ipalib/plugins/user.py:328
msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:335
+#: ipalib/plugins/user.py:332
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:338
+#: ipalib/plugins/user.py:335
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:341
+#: ipalib/plugins/user.py:338
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:345
+#: ipalib/plugins/user.py:342
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:349
+#: ipalib/plugins/user.py:346
msgid "Org. Unit"
msgstr ""
-#: ipalib/plugins/user.py:352
+#: ipalib/plugins/user.py:349
msgid "Job Title"
msgstr ""
-#: ipalib/plugins/user.py:355
+#: ipalib/plugins/user.py:352
msgid "Manager"
msgstr ""
-#: ipalib/plugins/user.py:358
+#: ipalib/plugins/user.py:355
msgid "Car License"
msgstr ""
-#: ipalib/plugins/user.py:361
+#: ipalib/plugins/user.py:358
msgid "Account disabled"
msgstr ""
-#: ipalib/plugins/user.py:388 ipalib/plugins/user.py:392
+#: ipalib/plugins/user.py:385 ipalib/plugins/user.py:389
#, python-format
msgid "invalid e-mail format: %(email)s"
msgstr ""
-#: ipalib/plugins/user.py:418
+#: ipalib/plugins/user.py:415
#, python-format
msgid "manager %(manager)s not found"
msgstr ""
-#: ipalib/plugins/user.py:437
+#: ipalib/plugins/user.py:434
msgid "Add a new user."
msgstr ""
-#: ipalib/plugins/user.py:439
+#: ipalib/plugins/user.py:436
#, python-format
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:446
+#: ipalib/plugins/user.py:443
msgid "Don't create user private group"
msgstr ""
-#: ipalib/plugins/user.py:477 ipalib/plugins/user.py:615
+#: ipalib/plugins/user.py:487 ipalib/plugins/user.py:623
#, python-format
msgid "can be at most %(len)d characters"
msgstr ""
-#: ipalib/plugins/user.py:512
+#: ipalib/plugins/user.py:522
msgid "Default group for new users is not POSIX"
msgstr ""
-#: ipalib/plugins/user.py:588
+#: ipalib/plugins/user.py:596
msgid "Delete a user."
msgstr ""
-#: ipalib/plugins/user.py:590
+#: ipalib/plugins/user.py:598
#, python-format
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:601
+#: ipalib/plugins/user.py:609
msgid "Modify a user."
msgstr ""
-#: ipalib/plugins/user.py:603
+#: ipalib/plugins/user.py:611
#, python-format
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:656
+#: ipalib/plugins/user.py:664
msgid "Search for users."
msgstr ""
-#: ipalib/plugins/user.py:663
+#: ipalib/plugins/user.py:671
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:664
+#: ipalib/plugins/user.py:672
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:695
+#: ipalib/plugins/user.py:703
#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/user.py:702
+#: ipalib/plugins/user.py:710
msgid "Display information about a user."
msgstr ""
-#: ipalib/plugins/user.py:718
+#: ipalib/plugins/user.py:726
msgid "Disable a user account."
msgstr ""
-#: ipalib/plugins/user.py:721
+#: ipalib/plugins/user.py:729
#, python-format
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:740
+#: ipalib/plugins/user.py:748
msgid "Enable a user account."
msgstr ""
-#: ipalib/plugins/user.py:744
+#: ipalib/plugins/user.py:752
#, python-format
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:761
+#: ipalib/plugins/user.py:769
msgid ""
"\n"
" Unlock a user account\n"
@@ -9538,12 +10096,12 @@ msgid ""
" an administrator."
msgstr ""
-#: ipalib/plugins/user.py:770
+#: ipalib/plugins/user.py:778
#, python-format
msgid "Unlocked account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:786
+#: ipalib/plugins/user.py:794
msgid ""
"\n"
" Lockout status of a user account\n"
@@ -9572,17 +10130,17 @@ msgid ""
" means that the user may attempt a login again. "
msgstr ""
-#: ipalib/plugins/user.py:845
+#: ipalib/plugins/user.py:852
#, python-format
msgid "%(host)s failed: %(error)s"
msgstr ""
-#: ipalib/plugins/user.py:883
+#: ipalib/plugins/user.py:888
#, python-format
msgid "%(host)s failed"
msgstr ""
-#: ipalib/plugins/user.py:893
+#: ipalib/plugins/user.py:898
#, python-format
msgid "Account disabled: %(disabled)s"
msgstr ""
@@ -9595,101 +10153,107 @@ msgstr ""
msgid "No such virtual command"
msgstr ""
-#: ipalib/rpc.py:491
+#: ipalib/rpc.py:673
msgid "any of the configured servers"
msgstr ""
-#: ipalib/session.py:775 ipalib/session.py:878
+#: ipalib/session.py:776 ipalib/session.py:879
msgid "could not allocate unique new session_id"
msgstr ""
-#: ipalib/util.py:150
+#: ipalib/util.py:186
msgid "Filename is empty"
msgstr ""
-#: ipalib/util.py:154
+#: ipalib/util.py:190
#, python-format
msgid "Permission denied: %(file)s"
msgstr ""
-#: ipalib/util.py:192
+#: ipalib/util.py:228
msgid "empty DNS label"
msgstr ""
-#: ipalib/util.py:195
+#: ipalib/util.py:231
msgid "DNS label cannot be longer that 63 characters"
msgstr ""
-#: ipalib/util.py:198
+#: ipalib/util.py:234
#, python-format
msgid ""
"only letters, numbers,%(underscore)s and - are allowed. DNS label may not "
"start or end with -"
msgstr ""
-#: ipalib/util.py:213
-msgid "top level domain label must be alphabetic"
-msgstr ""
-
-#: ipalib/util.py:219
+#: ipalib/util.py:252
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:225 ipalib/util.py:264
+#: ipalib/util.py:258 ipalib/util.py:297
msgid "cannot be longer that 255 characters"
msgstr ""
-#: ipalib/util.py:233
+#: ipalib/util.py:266
msgid "too many '@' characters"
msgstr ""
-#: ipalib/util.py:246
+#: ipalib/util.py:279
msgid "missing address domain"
msgstr ""
-#: ipalib/util.py:251
+#: ipalib/util.py:284
msgid "missing mail account"
msgstr ""
-#: ipalib/util.py:270
+#: ipalib/util.py:303
msgid "hostname contains empty label (consecutive dots)"
msgstr ""
-#: ipalib/util.py:274
+#: ipalib/util.py:307
msgid "not fully qualified"
msgstr ""
-#: ipalib/util.py:286 ipalib/util.py:292
+#: ipalib/util.py:319 ipalib/util.py:325
msgid "invalid SSH public key"
msgstr ""
-#: ipalib/util.py:295
+#: ipalib/util.py:328
msgid "options are not allowed"
msgstr ""
-#: ipalib/x509.py:199
+#: ipalib/x509.py:205
msgid "improperly formatted DER-encoded certificate"
msgstr ""
-#: ipalib/x509.py:236
+#: ipalib/x509.py:243
#, python-format
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
msgstr ""
-#: ipapython/dogtag.py:160
+#: ipapython/dogtag.py:176
#, python-format
msgid "Retrieving CA cert chain failed: %s"
msgstr ""
-#: ipapython/dogtag.py:166
+#: ipapython/dogtag.py:182
#, python-format
msgid "request failed with HTTP status %d"
msgstr ""
-#: ipaserver/dcerpc.py:50
+#: ipapython/dogtag.py:205 ipapython/dogtag.py:212
+#, python-format
+msgid "Retrieving CA status failed: %s"
+msgstr ""
+
+#: ipapython/ipaldap.py:991
+#, python-format
+msgid "objectclass %s not found"
+msgstr ""
+
+#: ipaserver/dcerpc.py:57
msgid ""
"\n"
"Classes to manage trust joins using DCE-RPC calls\n"
@@ -9698,86 +10262,171 @@ msgid ""
"and Samba4 python bindings.\n"
msgstr ""
-#: ipaserver/dcerpc.py:57
+#: ipaserver/dcerpc.py:72
msgid "CIFS server denied your credentials"
msgstr ""
-#: ipaserver/dcerpc.py:60
+#: ipaserver/dcerpc.py:75
msgid "communication with CIFS server was unsuccessful"
msgstr ""
-#: ipaserver/dcerpc.py:65
+#: ipaserver/dcerpc.py:80
msgid "AD domain controller"
msgstr ""
-#: ipaserver/dcerpc.py:65
+#: ipaserver/dcerpc.py:80
msgid "unsupported functional level"
msgstr ""
-#: ipaserver/dcerpc.py:70
+#: ipaserver/dcerpc.py:85
msgid "Cannot find specified domain or server name"
msgstr ""
-#: ipaserver/dcerpc.py:72
+#: ipaserver/dcerpc.py:87
msgid "At least the domain or IP address should be specified"
msgstr ""
-#: ipaserver/dcerpc.py:84
+#: ipaserver/dcerpc.py:99
#, python-format
msgid ""
"CIFS server communication error: code \"%(num)s\",\n"
" message \"%(message)s\" (both may be \"None\")"
msgstr ""
-#: ipaserver/dcerpc.py:184
+#: ipaserver/dcerpc.py:177
+msgid ""
+"communication with trusted domains is allowed for Trusts administrator group "
+"members only"
+msgstr ""
+
+#: ipaserver/dcerpc.py:192
+msgid "domain is not configured"
+msgstr ""
+
+#: ipaserver/dcerpc.py:199
+msgid "SID is not valid"
+msgstr ""
+
+#: ipaserver/dcerpc.py:210
+msgid "no trusted domain is configured"
+msgstr ""
+
+#: ipaserver/dcerpc.py:221
+msgid "SID does not match exactlywith any trusted domain's SID"
+msgstr ""
+
+#: ipaserver/dcerpc.py:232
+msgid "SID does not match any trusted domain"
+msgstr ""
+
+#: ipaserver/dcerpc.py:272 ipaserver/dcerpc.py:278 ipaserver/dcerpc.py:448
+msgid "Trust setup"
+msgstr ""
+
+#: ipaserver/dcerpc.py:273
+msgid "Our domain is not configured"
+msgstr ""
+
+#: ipaserver/dcerpc.py:279
+msgid "No trusted domain is not configured"
+msgstr ""
+
+#: ipaserver/dcerpc.py:284 ipaserver/dcerpc.py:299 ipaserver/dcerpc.py:310
+#: ipaserver/dcerpc.py:322 ipaserver/dcerpc.py:329 ipaserver/dcerpc.py:374
+msgid "trusted domain object"
+msgstr ""
+
+#: ipaserver/dcerpc.py:285
+msgid "domain is not trusted"
+msgstr ""
+
+#: ipaserver/dcerpc.py:300
+msgid "no trusted domain matched the specified flat name"
+msgstr ""
+
+#: ipaserver/dcerpc.py:302
+msgid "trusted domain object not found"
+msgstr ""
+
+#: ipaserver/dcerpc.py:311 ipaserver/dcerpc.py:375
+msgid "Ambiguous search, user domain was not specified"
+msgstr ""
+
+#: ipaserver/dcerpc.py:323
+msgid "Trusted domain did not return a unique object"
+msgstr ""
+
+#: ipaserver/dcerpc.py:330
+msgid "Trusted domain did not return a valid SID for the object"
+msgstr ""
+
+#: ipaserver/dcerpc.py:360 ipaserver/dcerpc.py:370
+msgid "trusted domain user not found"
+msgstr ""
+
+#: ipaserver/dcerpc.py:435
+#, python-format
+msgid ""
+"KDC for %(domain)s denied trust account for IPA domain with a message "
+"'%(message)s'"
+msgstr ""
+
+#: ipaserver/dcerpc.py:449
+msgid "Cannot retrieve trusted domain GC list"
+msgstr ""
+
+#: ipaserver/dcerpc.py:559
msgid "CIFS credentials object"
msgstr ""
-#: ipaserver/dcerpc.py:217
+#: ipaserver/dcerpc.py:592
#, python-format
msgid "CIFS server %(host)s denied your credentials"
msgstr ""
-#: ipaserver/dcerpc.py:221
+#: ipaserver/dcerpc.py:596
#, python-format
msgid "Cannot establish LSA connection to %(host)s. Is CIFS server running?"
msgstr ""
-#: ipaserver/install/certs.py:673 ipaserver/plugins/dogtag.py:1379
-#: ipaserver/plugins/dogtag.py:1464 ipaserver/plugins/dogtag.py:1530
-#: ipaserver/plugins/dogtag.py:1609 ipaserver/plugins/dogtag.py:1668
+#: ipaserver/dcerpc.py:748
+#, python-format
+msgid ""
+"the IPA server and the remote domain cannot share the same NetBIOS name: %s"
+msgstr ""
+
+#: ipaserver/install/certs.py:874
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
-#: ipaserver/plugins/join.py:56
+#: ipaserver/plugins/dogtag.py:1252
+msgid "Unable to communicate with CMS"
+msgstr ""
+
+#: ipaserver/plugins/join.py:59
msgid "The hostname to register as"
msgstr ""
-#: ipaserver/plugins/join.py:64
+#: ipaserver/plugins/join.py:68
msgid "The IPA realm"
msgstr ""
-#: ipaserver/plugins/join.py:70
+#: ipaserver/plugins/join.py:74
msgid "Hardware platform of the host (e.g. Lenovo T61)"
msgstr ""
-#: ipaserver/plugins/join.py:74
+#: ipaserver/plugins/join.py:78
msgid "Operating System and version of the host (e.g. Fedora 9)"
msgstr ""
-#: ipaserver/plugins/join.py:109
+#: ipaserver/plugins/join.py:118
#, python-format
msgid ""
"Insufficient 'write' privilege to the 'krbLastPwdChange' attribute of entry "
"'%s'."
msgstr ""
-#: ipaserver/plugins/ldap2.py:753
-#, python-format
-msgid "objectclass %s not found"
-msgstr ""
-
#: ipaserver/plugins/selfsign.py:98
#, python-format
msgid ""
@@ -10152,7 +10801,7 @@ msgstr ""
#: 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:973
+#: ipa-client/ipa-join.c:808 ipa-client/ipa-join.c:869 util/ipa_krb5.c:973
#: util/ipa_krb5.c:1007
#, c-format
msgid "Out of memory!\n"
@@ -10193,158 +10842,162 @@ msgstr ""
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:744 ipa-client/ipa-join.c:950
+#: ipa-client/ipa-join.c:751 ipa-client/ipa-join.c:955
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:760 ipa-client/ipa-join.c:965
+#: ipa-client/ipa-join.c:772 ipa-client/ipa-join.c:970
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:769 ipa-client/ipa-join.c:981
+#: ipa-client/ipa-join.c:781 ipa-client/ipa-join.c:986
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:777
+#: ipa-client/ipa-join.c:789
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:786
+#: ipa-client/ipa-join.c:798
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:804
+#: ipa-client/ipa-join.c:816
#, c-format
msgid "Error parsing \"%1$s\": %2$s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:822
+#: ipa-client/ipa-join.c:834
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:833
+#: ipa-client/ipa-join.c:845
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:841
+#: ipa-client/ipa-join.c:853
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:895
+#: ipa-client/ipa-join.c:900
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:898
+#: ipa-client/ipa-join.c:903
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:903
+#: ipa-client/ipa-join.c:908
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:971
+#: ipa-client/ipa-join.c:976
#, c-format
msgid "The hostname must not be: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:988
+#: ipa-client/ipa-join.c:993
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:996
+#: ipa-client/ipa-join.c:1001
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not "
"provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:1010
+#: ipa-client/ipa-join.c:1016
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:1039
+#: ipa-client/ipa-join.c:1045
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:1042
+#: ipa-client/ipa-join.c:1048
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:1045
+#: ipa-client/ipa-join.c:1051
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1057
+#: ipa-client/ipa-join.c:1063
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:1063
+#: ipa-client/ipa-join.c:1069
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:1100
+#: ipa-client/ipa-join.c:1107
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:1102
+#: ipa-client/ipa-join.c:1109
msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:1104
+#: ipa-client/ipa-join.c:1111
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:1106
+#: ipa-client/ipa-join.c:1113
msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:1106 ipa-client/ipa-join.c:1108
+#: ipa-client/ipa-join.c:1113 ipa-client/ipa-join.c:1115
msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:1108
+#: ipa-client/ipa-join.c:1115
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:1110
+#: ipa-client/ipa-join.c:1117
msgid "Specifies where to store keytab information."
msgstr ""
-#: ipa-client/ipa-join.c:1110
+#: ipa-client/ipa-join.c:1117
msgid "filename"
msgstr ""
-#: ipa-client/ipa-join.c:1112
+#: ipa-client/ipa-join.c:1119
+msgid "Force the host join. Rejoin even if already joined."
+msgstr ""
+
+#: ipa-client/ipa-join.c:1121
msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-join.c:1112
+#: ipa-client/ipa-join.c:1121
msgid "password"
msgstr ""
-#: ipa-client/ipa-join.c:1114
+#: ipa-client/ipa-join.c:1123
msgid "LDAP basedn"
msgstr ""
-#: ipa-client/ipa-join.c:1114
+#: ipa-client/ipa-join.c:1123
msgid "basedn"
msgstr ""