summaryrefslogtreecommitdiffstats
path: root/install/po
diff options
context:
space:
mode:
authorJohn Dennis <jdennis@redhat.com>2012-02-20 12:33:45 -0500
committerJohn Dennis <jdennis@redhat.com>2012-02-21 14:17:00 -0500
commit62b91f5acffcd30bf031b6455323c01453386eb2 (patch)
tree71dfb064fc9a0ff4d38291e9537b38c2da984679 /install/po
parenta7ced67e777f9a98a4315536a874b3dd8859498a (diff)
downloadfreeipa-62b91f5acffcd30bf031b6455323c01453386eb2.tar.gz
freeipa-62b91f5acffcd30bf031b6455323c01453386eb2.tar.xz
freeipa-62b91f5acffcd30bf031b6455323c01453386eb2.zip
Update pot file and list of explicit Python files needing translation
Diffstat (limited to 'install/po')
-rw-r--r--install/po/Makefile.in27
-rw-r--r--install/po/ipa.pot3394
2 files changed, 2082 insertions, 1339 deletions
diff --git a/install/po/Makefile.in b/install/po/Makefile.in
index 07073f177..034884c63 100644
--- a/install/po/Makefile.in
+++ b/install/po/Makefile.in
@@ -37,24 +37,29 @@ PY_FILES = $(shell cd ../..; git ls-files | grep -v -e "^tests/" -e "^doc/" -e "
C_FILES = $(shell cd ../..; git ls-files | grep "\.c$$" | tr '\n' ' '; cd install/po)
H_FILES = $(shell cd ../..; git ls-files | grep "\.h$$" | tr '\n' ' '; cd install/po)
+# Please keep this list sorted!
PY_EXPLICIT_FILES = \
- ipa \
- install/tools/ipa-replica-manage \
- install/tools/ipa-server-certinstall \
+ init/systemd/freeipa-systemd-upgrade \
+ install/tools/ipa-adtrust-install \
+ install/tools/ipa-ca-install \
+ install/tools/ipa-compat-manage \
+ install/tools/ipa-csreplica-manage \
+ install/tools/ipactl \
+ install/tools/ipa-dns-install \
+ install/tools/ipa-ldap-updater \
+ install/tools/ipa-managed-entries \
+ install/tools/ipa-nis-manage \
install/tools/ipa-replica-conncheck \
install/tools/ipa-replica-install \
- install/tools/ipa-nis-manage \
- install/tools/ipa-upgradeconfig \
+ install/tools/ipa-replica-manage \
install/tools/ipa-replica-prepare \
- install/tools/ipa-compat-manage \
- install/tools/ipa-managed-entries \
+ install/tools/ipa-server-certinstall \
install/tools/ipa-server-install \
- install/tools/ipa-ldap-updater \
- install/tools/ipa-dns-install \
- install/tools/ipa-adtrust-install \
- install/tools/ipa-ca-install \
+ install/tools/ipa-upgradeconfig \
+ ipa \
ipa-client/ipa-install/ipa-client-install
+
PYTHON_POTFILES = $(PY_FILES) $(PY_EXPLICIT_FILES)
C_POTFILES = $(C_FILES) $(H_FILES)
diff --git a/install/po/ipa.pot b/install/po/ipa.pot
index ddb40e7cc..be0252ea7 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: 2011-12-08 16:05-0500\n"
+"POT-Creation-Date: 2012-02-20 12:24-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -19,364 +19,382 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-#: ipalib/cli.py:583
+#: ipalib/cli.py:590
#, python-format
msgid "Enter %(label)s again to verify: "
msgstr ""
-#: ipalib/cli.py:587 ipa-client/ipa-getkeytab.c:768
+#: ipalib/cli.py:594 ipa-client/ipa-getkeytab.c:768
#, c-format
msgid "Passwords do not match!"
msgstr ""
-#: ipalib/cli.py:592
+#: ipalib/cli.py:599
msgid "Cancelled."
msgstr ""
-#: ipalib/cli.py:753
+#: ipalib/cli.py:760
#, python-format
msgid "Purpose: %s"
msgstr ""
-#: ipalib/cli.py:770
+#: ipalib/cli.py:777
msgid "Usage: ipa [global-options] COMMAND ..."
msgstr ""
-#: ipalib/cli.py:772
+#: ipalib/cli.py:779
msgid "Built-in commands:"
msgstr ""
-#: ipalib/cli.py:774
+#: ipalib/cli.py:781
msgid "Help subtopics:"
msgstr ""
-#: ipalib/cli.py:777
+#: ipalib/cli.py:784
msgid "Help topics:"
msgstr ""
-#: ipalib/cli.py:782
+#: ipalib/cli.py:789
msgid "Try `ipa --help` for a list of global options."
msgstr ""
-#: ipalib/cli.py:816
+#: ipalib/cli.py:823
msgid "Topic commands:"
msgstr ""
-#: ipalib/cli.py:827
+#: ipalib/cli.py:834
msgid "Command name"
msgstr ""
-#: ipalib/cli.py:1130
+#: ipalib/cli.py:984
+msgid "Positional arguments"
+msgstr ""
+
+#: ipalib/cli.py:1217
msgid "No file to read"
msgstr ""
-#: ipalib/errors.py:303
+#: ipalib/errors.py:305
#, python-format
msgid "%(cver)s client incompatible with %(sver)s server at %(server)r"
msgstr ""
-#: ipalib/errors.py:321
+#: ipalib/errors.py:323
#, python-format
msgid "unknown error %(code)d from %(server)s: %(error)s"
msgstr ""
-#: ipalib/errors.py:337
+#: ipalib/errors.py:339
msgid "an internal error has occurred"
msgstr ""
-#: ipalib/errors.py:359
+#: ipalib/errors.py:361
#, python-format
msgid "an internal error has occurred on server at %(server)r"
msgstr ""
-#: ipalib/errors.py:375
+#: ipalib/errors.py:377
#, python-format
msgid "unknown command %(name)r"
msgstr ""
-#: ipalib/errors.py:392 ipalib/errors.py:417
+#: ipalib/errors.py:394 ipalib/errors.py:419
#, python-format
msgid "error on server %(server)r: %(error)s"
msgstr ""
-#: ipalib/errors.py:408
+#: ipalib/errors.py:410
#, python-format
msgid "cannot connect to %(uri)r: %(error)s"
msgstr ""
-#: ipalib/errors.py:426
+#: ipalib/errors.py:428
#, python-format
msgid "Invalid JSON-RPC request: %(error)s"
msgstr ""
-#: ipalib/errors.py:442
+#: ipalib/errors.py:444
#, python-format
msgid "error marshalling data for XML-RPC transport: %(error)s"
msgstr ""
-#: ipalib/errors.py:468
+#: ipalib/errors.py:460
+#, python-format
+msgid "Missing or invalid HTTP Referer, %(referer)s"
+msgstr ""
+
+#: ipalib/errors.py:487
#, python-format
msgid "Kerberos error: %(major)s/%(minor)s"
msgstr ""
-#: ipalib/errors.py:485
+#: ipalib/errors.py:504
msgid "did not receive Kerberos credentials"
msgstr ""
-#: ipalib/errors.py:501
+#: ipalib/errors.py:520
#, python-format
msgid "Service %(service)r not found in Kerberos database"
msgstr ""
-#: ipalib/errors.py:517
+#: ipalib/errors.py:536
msgid "No credentials cache found"
msgstr ""
-#: ipalib/errors.py:533
+#: ipalib/errors.py:552
msgid "Ticket expired"
msgstr ""
-#: ipalib/errors.py:549
+#: ipalib/errors.py:568
msgid "Credentials cache permissions incorrect"
msgstr ""
-#: ipalib/errors.py:565
+#: ipalib/errors.py:584
msgid "Bad format in credentials cache"
msgstr ""
-#: ipalib/errors.py:581
+#: ipalib/errors.py:600
msgid "Cannot resolve KDC for requested realm"
msgstr ""
-#: ipalib/errors.py:600
+#: ipalib/errors.py:612
+msgid "Session error"
+msgstr ""
+
+#: ipalib/errors.py:631
#, python-format
msgid "Insufficient access: %(info)s"
msgstr ""
-#: ipalib/errors.py:644
+#: ipalib/errors.py:675
#, python-format
msgid "command %(name)r takes no arguments"
msgstr ""
-#: ipalib/errors.py:664
+#: ipalib/errors.py:695
#, python-format
msgid "command %(name)r takes at most %(count)d argument"
msgid_plural "command %(name)r takes at most %(count)d arguments"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/errors.py:694
+#: ipalib/errors.py:725
#, python-format
msgid "overlapping arguments and options: %(names)r"
msgstr ""
-#: ipalib/errors.py:710
+#: ipalib/errors.py:741
#, python-format
msgid "%(name)r is required"
msgstr ""
-#: ipalib/errors.py:726 ipalib/errors.py:742
+#: ipalib/errors.py:757 ipalib/errors.py:773
#, python-format
msgid "invalid %(name)r: %(error)s"
msgstr ""
-#: ipalib/errors.py:758
+#: ipalib/errors.py:789
#, python-format
msgid "api has no such namespace: %(name)r"
msgstr ""
-#: ipalib/errors.py:767
+#: ipalib/errors.py:798
msgid "Passwords do not match"
msgstr ""
-#: ipalib/errors.py:776
+#: ipalib/errors.py:807
msgid "Command not implemented"
msgstr ""
-#: ipalib/errors.py:785
+#: ipalib/errors.py:816
msgid "Client is not configured. Run ipa-client-install."
msgstr ""
-#: ipalib/errors.py:813 ipalib/errors.py:1053 ipalib/errors.py:1147
-#: ipalib/errors.py:1462 ipalib/errors.py:1479
+#: ipalib/errors.py:844 ipalib/errors.py:1084 ipalib/errors.py:1178
+#: ipalib/errors.py:1493 ipalib/errors.py:1510
#, python-format
msgid "%(reason)s"
msgstr ""
-#: ipalib/errors.py:829
+#: ipalib/errors.py:860
msgid "This entry already exists"
msgstr ""
-#: ipalib/errors.py:845
+#: ipalib/errors.py:876
msgid "You must enroll a host in order to create a host service"
msgstr ""
-#: ipalib/errors.py:861
+#: ipalib/errors.py:892
#, python-format
msgid ""
"Service principal is not of the form: service/fully-qualified host name: "
"%(reason)s"
msgstr ""
-#: ipalib/errors.py:877
+#: ipalib/errors.py:908
msgid ""
"The realm for the principal does not match the realm for this IPA server"
msgstr ""
-#: ipalib/errors.py:893
+#: ipalib/errors.py:924
msgid "This command requires root access"
msgstr ""
-#: ipalib/errors.py:909
+#: ipalib/errors.py:940
msgid "This is already a posix group"
msgstr ""
-#: ipalib/errors.py:925
+#: ipalib/errors.py:956
#, python-format
msgid "Principal is not of the form user@REALM: %(principal)r"
msgstr ""
-#: ipalib/errors.py:941
+#: ipalib/errors.py:972
msgid "This entry is already enabled"
msgstr ""
-#: ipalib/errors.py:957
+#: ipalib/errors.py:988
msgid "This entry is already disabled"
msgstr ""
-#: ipalib/errors.py:973
+#: ipalib/errors.py:1004
msgid "This entry cannot be enabled or disabled"
msgstr ""
-#: ipalib/errors.py:989
+#: ipalib/errors.py:1020
msgid "This entry is not a member"
msgstr ""
-#: ipalib/errors.py:1005
+#: ipalib/errors.py:1036
msgid "A group may not be a member of itself"
msgstr ""
-#: ipalib/errors.py:1021
+#: ipalib/errors.py:1052
msgid "This entry is already a member"
msgstr ""
-#: ipalib/errors.py:1037
+#: ipalib/errors.py:1068
#, python-format
msgid "Base64 decoding failed: %(reason)s"
msgstr ""
-#: ipalib/errors.py:1069
+#: ipalib/errors.py:1100
msgid "A group may not be added as a member of itself"
msgstr ""
-#: ipalib/errors.py:1085
+#: ipalib/errors.py:1116
msgid "The default users group cannot be removed"
msgstr ""
-#: ipalib/errors.py:1101
+#: ipalib/errors.py:1132
msgid "Host does not have corresponding DNS A record"
msgstr ""
-#: ipalib/errors.py:1116
+#: ipalib/errors.py:1147
msgid "Deleting a managed group is not allowed. It must be detached first."
msgstr ""
-#: ipalib/errors.py:1131
+#: ipalib/errors.py:1162
msgid "A managed group cannot have a password policy."
msgstr ""
-#: ipalib/errors.py:1163
+#: ipalib/errors.py:1194
#, python-format
msgid "'%(entry)s' doesn't have a certificate."
msgstr ""
-#: ipalib/errors.py:1179
+#: ipalib/errors.py:1210
#, python-format
msgid "Unable to create private group. A group '%(group)s' already exists."
msgstr ""
-#: ipalib/errors.py:1195
+#: ipalib/errors.py:1226
#, python-format
msgid ""
"A problem was encountered when verifying that all members were %(verb)s: "
"%(exc)s"
msgstr ""
-#: ipalib/errors.py:1213
+#: ipalib/errors.py:1244
#, python-format
msgid "%(attr)s does not contain '%(value)s'"
msgstr ""
-#: ipalib/errors.py:1230
+#: ipalib/errors.py:1261
#, python-format
msgid ""
"The search criteria was not specific enough. Expected 1 and found %(found)d."
msgstr ""
-#: ipalib/errors.py:1254
+#: ipalib/errors.py:1285
#, python-format
msgid "no command nor help topic %(topic)r"
msgstr ""
-#: ipalib/errors.py:1278
+#: ipalib/errors.py:1309
msgid "change collided with another change"
msgstr ""
-#: ipalib/errors.py:1294
+#: ipalib/errors.py:1325
msgid "no modifications to be performed"
msgstr ""
-#: ipalib/errors.py:1310
+#: ipalib/errors.py:1341
#, python-format
msgid "%(desc)s: %(info)s"
msgstr ""
-#: ipalib/errors.py:1326
+#: ipalib/errors.py:1357
msgid "limits exceeded for this query"
msgstr ""
-#: ipalib/errors.py:1341
+#: ipalib/errors.py:1372
#, python-format
msgid "%(info)s"
msgstr ""
-#: ipalib/errors.py:1356
+#: ipalib/errors.py:1387
msgid "modifying primary key is not allowed"
msgstr ""
-#: ipalib/errors.py:1372
+#: ipalib/errors.py:1403
#, python-format
msgid "%(attr)s: Only one value allowed."
msgstr ""
-#: ipalib/errors.py:1388
+#: ipalib/errors.py:1419
#, python-format
msgid "%(attr)s: Invalid syntax."
msgstr ""
-#: ipalib/errors.py:1404
+#: ipalib/errors.py:1435
#, python-format
msgid "Bad search filter %(info)s"
msgstr ""
-#: ipalib/errors.py:1429
+#: ipalib/errors.py:1460
#, python-format
msgid "Certificate operation cannot be completed: %(error)s"
msgstr ""
-#: ipalib/errors.py:1445
+#: ipalib/errors.py:1476
#, python-format
msgid "Certificate format error: %(error)s"
msgstr ""
-#: ipalib/errors.py:1496
+#: ipalib/errors.py:1527
msgid "Already registered"
msgstr ""
-#: ipalib/errors.py:1512
+#: ipalib/errors.py:1543
msgid "Not registered yet"
msgstr ""
+#: ipalib/errors.py:1559
+#, python-format
+msgid "%(key)s cannot be deleted because %(label)s %(dependent)s requires it"
+msgstr ""
+
#: ipalib/frontend.py:408
msgid "Results are truncated, try a more specific search"
msgstr ""
@@ -410,292 +428,316 @@ msgstr ""
msgid "All commands should at least have a result"
msgstr ""
-#: ipalib/parameters.py:358
-msgid "incorrect type"
+#: ipalib/output.py:114
+msgid "User-friendly description of action performed"
+msgstr ""
+
+#: ipalib/output.py:118
+msgid "The primary_key value of the entry, e.g. 'jdoe' for a user"
+msgstr ""
+
+#: ipalib/output.py:133
+msgid "Number of entries returned"
+msgstr ""
+
+#: ipalib/output.py:134
+msgid "True if not all results were returned"
+msgstr ""
+
+#: ipalib/output.py:139
+msgid "List of deletions that failed"
+msgstr ""
+
+#: ipalib/output.py:145
+msgid "True means the operation was successful"
msgstr ""
#: ipalib/parameters.py:361
+msgid "incorrect type"
+msgstr ""
+
+#: ipalib/parameters.py:364
msgid "Only one value is allowed"
msgstr ""
-#: ipalib/parameters.py:1023
+#: ipalib/parameters.py:1033
msgid "must be True or False"
msgstr ""
-#: ipalib/parameters.py:1124
+#: ipalib/parameters.py:1134
msgid "must be an integer"
msgstr ""
-#: ipalib/parameters.py:1176
+#: ipalib/parameters.py:1186
#, python-format
msgid "must be at least %(minvalue)d"
msgstr ""
-#: ipalib/parameters.py:1186
+#: ipalib/parameters.py:1196
#, python-format
msgid "can be at most %(maxvalue)d"
msgstr ""
-#: ipalib/parameters.py:1227
+#: ipalib/parameters.py:1242
msgid "must be a decimal number"
msgstr ""
-#: ipalib/parameters.py:1250
+#: ipalib/parameters.py:1283
#, python-format
-msgid "must be at least %(minvalue)f"
+msgid "must be at least %(minvalue)s"
msgstr ""
-#: ipalib/parameters.py:1260
+#: ipalib/parameters.py:1293
#, python-format
-msgid "can be at most %(maxvalue)f"
+msgid "can be at most %(maxvalue)s"
msgstr ""
-#: ipalib/parameters.py:1327
+#: ipalib/parameters.py:1387
#, python-format
msgid "must match pattern \"%(pattern)s\""
msgstr ""
-#: ipalib/parameters.py:1345
+#: ipalib/parameters.py:1405
msgid "must be binary data"
msgstr ""
-#: ipalib/parameters.py:1361
+#: ipalib/parameters.py:1421
#, python-format
msgid "must be at least %(minlength)d bytes"
msgstr ""
-#: ipalib/parameters.py:1371
+#: ipalib/parameters.py:1431
#, python-format
msgid "can be at most %(maxlength)d bytes"
msgstr ""
-#: ipalib/parameters.py:1381
+#: ipalib/parameters.py:1441
#, python-format
msgid "must be exactly %(length)d bytes"
msgstr ""
-#: ipalib/parameters.py:1403
+#: ipalib/parameters.py:1471
msgid "must be Unicode text"
msgstr ""
-#: ipalib/parameters.py:1436
+#: ipalib/parameters.py:1504
msgid "Leading and trailing spaces are not allowed"
msgstr ""
-#: ipalib/parameters.py:1444
+#: ipalib/parameters.py:1512
#, python-format
msgid "must be at least %(minlength)d characters"
msgstr ""
-#: ipalib/parameters.py:1454
+#: ipalib/parameters.py:1522
#, python-format
msgid "can be at most %(maxlength)d characters"
msgstr ""
-#: ipalib/parameters.py:1464
+#: ipalib/parameters.py:1532
#, python-format
msgid "must be exactly %(length)d characters"
msgstr ""
-#: ipalib/parameters.py:1482
+#: ipalib/parameters.py:1550
#, python-format
msgid "The character '%(char)r' is not allowed."
msgstr ""
-#: ipalib/parameters.py:1526
+#: ipalib/parameters.py:1594
#, python-format
msgid "must be one of %(values)r"
msgstr ""
-#: ipalib/plugins/aci.py:153
+#: ipalib/plugins/aci.py:156
msgid "A list of ACI values"
msgstr ""
-#: ipalib/plugins/aci.py:215
+#: ipalib/plugins/aci.py:220
msgid "type, filter, subtree and targetgroup are mutually exclusive"
msgstr ""
-#: ipalib/plugins/aci.py:218
+#: ipalib/plugins/aci.py:223
msgid "ACI prefix is required"
msgstr ""
-#: ipalib/plugins/aci.py:221
+#: ipalib/plugins/aci.py:226
msgid ""
"at least one of: type, filter, subtree, targetgroup, attrs or memberof are "
"required"
msgstr ""
-#: ipalib/plugins/aci.py:224
+#: ipalib/plugins/aci.py:229
msgid "filter and memberof are mutually exclusive"
msgstr ""
-#: ipalib/plugins/aci.py:230
+#: ipalib/plugins/aci.py:235
msgid "group, permission and self are mutually exclusive"
msgstr ""
-#: ipalib/plugins/aci.py:232
+#: ipalib/plugins/aci.py:237
msgid "One of group, permission or self is required"
msgstr ""
-#: ipalib/plugins/aci.py:251
+#: ipalib/plugins/aci.py:256
#, python-format
msgid "Group '%s' does not exist"
msgstr ""
-#: ipalib/plugins/aci.py:273
+#: ipalib/plugins/aci.py:282
msgid "empty filter"
msgstr ""
-#: ipalib/plugins/aci.py:294
+#: ipalib/plugins/aci.py:303
#, python-format
msgid "Syntax Error: %(error)s"
msgstr ""
-#: ipalib/plugins/aci.py:379
+#: ipalib/plugins/aci.py:392
#, python-format
msgid "ACI with name \"%s\" not found"
msgstr ""
-#: ipalib/plugins/aci.py:400
+#: ipalib/plugins/aci.py:413
msgid "ACI prefix"
msgstr ""
-#: ipalib/plugins/aci.py:401
+#: ipalib/plugins/aci.py:414
msgid ""
"Prefix used to distinguish ACI types (permission, delegation, selfservice, "
"none)"
msgstr ""
-#: ipalib/plugins/aci.py:412
+#: ipalib/plugins/aci.py:425
msgid "ACIs"
msgstr ""
-#: ipalib/plugins/aci.py:417
+#: ipalib/plugins/aci.py:430
msgid "ACI name"
msgstr ""
-#: ipalib/plugins/aci.py:423 ipalib/plugins/permission.py:109
+#: ipalib/plugins/aci.py:436 ipalib/plugins/permission.py:112
msgid "Permission"
msgstr ""
-#: ipalib/plugins/aci.py:424
+#: ipalib/plugins/aci.py:437
msgid "Permission ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:429 ipalib/plugins/delegation.py:134
+#: ipalib/plugins/aci.py:442 ipalib/plugins/delegation.py:103
msgid "User group"
msgstr ""
-#: ipalib/plugins/aci.py:430 ipalib/plugins/delegation.py:135
+#: ipalib/plugins/aci.py:443 ipalib/plugins/delegation.py:104
msgid "User group ACI grants access to"
msgstr ""
-#: ipalib/plugins/aci.py:435 ipalib/plugins/baseldap.py:64
-#: ipalib/plugins/delegation.py:115 ipalib/plugins/permission.py:108
-#: ipalib/plugins/permission.py:119 ipalib/plugins/selfservice.py:88
+#: ipalib/plugins/aci.py:448 ipalib/plugins/baseldap.py:65
+#: ipalib/plugins/delegation.py:84 ipalib/plugins/permission.py:111
+#: ipalib/plugins/permission.py:122 ipalib/plugins/selfservice.py:83
msgid "Permissions"
msgstr ""
-#: ipalib/plugins/aci.py:436
+#: ipalib/plugins/aci.py:449
msgid ""
"comma-separated list of permissions to grant(read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:122
-#: ipalib/plugins/permission.py:126 ipalib/plugins/selfservice.py:95
+#: ipalib/plugins/aci.py:457 ipalib/plugins/delegation.py:91
+#: ipalib/plugins/permission.py:129 ipalib/plugins/selfservice.py:90
msgid "Attributes"
msgstr ""
-#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:123
-#: ipalib/plugins/permission.py:127 ipalib/plugins/selfservice.py:96
+#: ipalib/plugins/aci.py:458 ipalib/plugins/delegation.py:92
+#: ipalib/plugins/permission.py:130 ipalib/plugins/selfservice.py:91
msgid "Comma-separated list of attributes"
msgstr ""
-#: ipalib/plugins/aci.py:451 ipalib/plugins/permission.py:134
+#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:137
msgid "Type"
msgstr ""
-#: ipalib/plugins/aci.py:452
+#: ipalib/plugins/aci.py:465
msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)"
msgstr ""
-#: ipalib/plugins/aci.py:458
+#: ipalib/plugins/aci.py:471
msgid "Member of"
msgstr ""
-#: ipalib/plugins/aci.py:459
+#: ipalib/plugins/aci.py:472
msgid "Member of a group"
msgstr ""
-#: ipalib/plugins/aci.py:464 ipalib/plugins/permission.py:147
+#: ipalib/plugins/aci.py:477 ipalib/plugins/permission.py:150
msgid "Filter"
msgstr ""
-#: ipalib/plugins/aci.py:465 ipalib/plugins/permission.py:148
+#: ipalib/plugins/aci.py:478 ipalib/plugins/permission.py:151
msgid "Legal LDAP filter (e.g. ou=Engineering)"
msgstr ""
-#: ipalib/plugins/aci.py:470 ipalib/plugins/permission.py:153
+#: ipalib/plugins/aci.py:483 ipalib/plugins/permission.py:156
msgid "Subtree"
msgstr ""
-#: ipalib/plugins/aci.py:471
+#: ipalib/plugins/aci.py:484
msgid "Subtree to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:159
+#: ipalib/plugins/aci.py:489 ipalib/plugins/permission.py:162
msgid "Target group"
msgstr ""
-#: ipalib/plugins/aci.py:477
+#: ipalib/plugins/aci.py:490
msgid "Group to apply ACI to"
msgstr ""
-#: ipalib/plugins/aci.py:482
+#: ipalib/plugins/aci.py:495
msgid "Target your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:483
+#: ipalib/plugins/aci.py:496
msgid "Apply ACI to your own entry (self)"
msgstr ""
-#: ipalib/plugins/aci.py:495
+#: ipalib/plugins/aci.py:508
#, python-format
msgid "Created ACI \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:500
+#: ipalib/plugins/aci.py:513
msgid "Test the ACI syntax but don't write anything"
msgstr ""
-#: ipalib/plugins/aci.py:551
+#: ipalib/plugins/aci.py:564
#, python-format
msgid "Deleted ACI \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:595 ipalib/plugins/aci.py:843
-#: ipalib/plugins/aci.py:884 ipalib/plugins/delegation.py:250
-#: ipalib/plugins/selfservice.py:207
+#: ipalib/plugins/aci.py:608 ipalib/plugins/aci.py:871
+#: ipalib/plugins/aci.py:912 ipalib/plugins/delegation.py:60
+#: ipalib/plugins/permission.py:88 ipalib/plugins/selfservice.py:59
msgid "ACI"
msgstr ""
-#: ipalib/plugins/aci.py:601
+#: ipalib/plugins/aci.py:614
#, python-format
msgid "Modified ACI \"%(value)s\""
msgstr ""
-#: ipalib/plugins/aci.py:666
+#: 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:891
+#: ipalib/plugins/aci.py:919
msgid "New ACI name"
msgstr ""
-#: ipalib/plugins/aci.py:895
+#: ipalib/plugins/aci.py:923
#, python-format
msgid "Renamed ACI to \"%(value)s\""
msgstr ""
@@ -718,11 +760,11 @@ msgid ""
"\n"
"EXAMPLES:\n"
"\n"
-" Create the initial group or hostgroup:\n"
+" Add the initial group or hostgroup:\n"
" ipa hostgroup-add --desc=\"Web Servers\" webservers\n"
" ipa group-add --desc=\"Developers\" devel\n"
"\n"
-" Create the initial rule:\n"
+" Add the initial rule:\n"
" ipa automember-add --type=hostgroup webservers\n"
" ipa automember-add --type=group devel\n"
"\n"
@@ -766,7 +808,7 @@ msgid ""
"type=hostgroup\n"
" ipa automember-default-group-set --default-group=ipausers --type=group\n"
"\n"
-" Set the default target group:\n"
+" Remove the default target group:\n"
" ipa automember-default-group-remove --type=hostgroup\n"
" ipa automember-default-group-remove --type=group\n"
"\n"
@@ -820,13 +862,14 @@ msgstr ""
msgid "Auto Membership Rule"
msgstr ""
-#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:526
-#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:181
+#: ipalib/plugins/automember.py:171 ipalib/plugins/automount.py:574
+#: ipalib/plugins/group.py:115 ipalib/plugins/hbacrule.py:184
#: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77
-#: ipalib/plugins/host.py:263 ipalib/plugins/hostgroup.py:87
+#: ipalib/plugins/host.py:284 ipalib/plugins/hostgroup.py:87
#: ipalib/plugins/netgroup.py:111 ipalib/plugins/privilege.py:76
-#: ipalib/plugins/role.py:92 ipalib/plugins/sudocmd.py:76
-#: ipalib/plugins/sudocmdgroup.py:78 ipalib/plugins/sudorule.py:103
+#: ipalib/plugins/role.py:92 ipalib/plugins/selinuxusermap.py:173
+#: ipalib/plugins/sudocmd.py:76 ipalib/plugins/sudocmdgroup.py:78
+#: ipalib/plugins/sudorule.py:106
msgid "Description"
msgstr ""
@@ -838,8 +881,8 @@ msgstr ""
msgid "Default Group"
msgstr ""
-#: ipalib/plugins/automember.py:177 ipalib/plugins/automember.py:510
-msgid "Default group for entires to land"
+#: ipalib/plugins/automember.py:177
+msgid "Default group for entries to land"
msgstr ""
#: ipalib/plugins/automember.py:188
@@ -914,7 +957,7 @@ msgstr ""
#: ipalib/plugins/automember.py:350
#, python-format
-msgid "Removed condition(s) to \"%(value)s\""
+msgid "Removed condition(s) from \"%(value)s\""
msgstr ""
#: ipalib/plugins/automember.py:359
@@ -984,6 +1027,10 @@ msgid ""
" "
msgstr ""
+#: ipalib/plugins/automember.py:510
+msgid "Default group for entires to land"
+msgstr ""
+
#: ipalib/plugins/automember.py:514
#, python-format
msgid "Set default group for automember \"%(value)s\""
@@ -1043,6 +1090,11 @@ msgid ""
"automount maps for the location. auto.direct is the default map for\n"
"direct mounts and is mounted on /-.\n"
"\n"
+"An automount map may contain a submount key. This key defines a mount\n"
+"location within the map that references another map. This can be done\n"
+"either using automountmap-add-indirect --parentmap or manually\n"
+"with automountkey-add and setting info to \"-type=autofs :<mapname>\".\n"
+"\n"
"EXAMPLES:\n"
"\n"
"Locations:\n"
@@ -1081,6 +1133,16 @@ msgid ""
" Find maps in the location baltimore:\n"
" ipa automountmap-find baltimore\n"
"\n"
+" Create an indirect map with auto.share as a submount:\n"
+" ipa automountmap-add-indirect baltimore --parentmap=auto.share --"
+"mount=sub auto.man\n"
+"\n"
+" This is equivalent to:\n"
+"\n"
+" ipa automountmap-add-indirect baltimore --mount=/man auto.man\n"
+" ipa automountkey-add baltimore auto.man --key=sub --info=\"-"
+"fstype=autofs ldap:auto.share\"\n"
+"\n"
" Remove the auto.share map:\n"
" ipa automountmap-del baltimore auto.share\n"
"\n"
@@ -1105,575 +1167,598 @@ msgid ""
" ipa automountkey-del baltimore auto.share --key=man\n"
msgstr ""
-#: ipalib/plugins/automount.py:191
+#: ipalib/plugins/automount.py:205
msgid "automount location"
msgstr ""
-#: ipalib/plugins/automount.py:192
+#: ipalib/plugins/automount.py:206
msgid "automount locations"
msgstr ""
-#: ipalib/plugins/automount.py:195
+#: ipalib/plugins/automount.py:209
msgid "Automount Locations"
msgstr ""
-#: ipalib/plugins/automount.py:196
+#: ipalib/plugins/automount.py:210
msgid "Automount Location"
msgstr ""
-#: ipalib/plugins/automount.py:201 ipalib/plugins/host.py:273
+#: ipalib/plugins/automount.py:215 ipalib/plugins/host.py:294
msgid "Location"
msgstr ""
-#: ipalib/plugins/automount.py:202
+#: ipalib/plugins/automount.py:216
msgid "Automount location name."
msgstr ""
-#: ipalib/plugins/automount.py:211
+#: ipalib/plugins/automount.py:225
msgid "Create a new automount location."
msgstr ""
-#: ipalib/plugins/automount.py:213
+#: ipalib/plugins/automount.py:227
#, python-format
msgid "Added automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:232
+#: ipalib/plugins/automount.py:246
msgid "Delete an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:234
+#: ipalib/plugins/automount.py:248
#, python-format
msgid "Deleted automount location \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:240
+#: ipalib/plugins/automount.py:254
msgid "Display an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:246
+#: ipalib/plugins/automount.py:260
msgid "Search for an automount location."
msgstr ""
-#: ipalib/plugins/automount.py:249
+#: ipalib/plugins/automount.py:263
#, python-format
msgid "%(count)d automount location matched"
msgid_plural "%(count)d automount locations matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/automount.py:257
+#: ipalib/plugins/automount.py:271
msgid "Generate automount files for a specific location."
msgstr ""
-#: ipalib/plugins/automount.py:319
+#: ipalib/plugins/automount.py:349
+msgid "maps not connected to /etc/auto.master:"
+msgstr ""
+
+#: ipalib/plugins/automount.py:367
msgid "Import automount files for a specific location."
msgstr ""
-#: ipalib/plugins/automount.py:323
+#: ipalib/plugins/automount.py:371
msgid "Master file"
msgstr ""
-#: ipalib/plugins/automount.py:324
+#: ipalib/plugins/automount.py:372
msgid "Automount master file."
msgstr ""
-#: ipalib/plugins/automount.py:331
+#: ipalib/plugins/automount.py:379
msgid ""
"Continuous operation mode. Errors are reported but the process continues."
msgstr ""
-#: ipalib/plugins/automount.py:343
+#: ipalib/plugins/automount.py:391
#, python-format
msgid "File %(file)s not found"
msgstr ""
-#: ipalib/plugins/automount.py:512
+#: ipalib/plugins/automount.py:560
msgid "automount map"
msgstr ""
-#: ipalib/plugins/automount.py:513
+#: ipalib/plugins/automount.py:561
msgid "automount maps"
msgstr ""
-#: ipalib/plugins/automount.py:520
+#: ipalib/plugins/automount.py:568
msgid "Map"
msgstr ""
-#: ipalib/plugins/automount.py:521
+#: ipalib/plugins/automount.py:569
msgid "Automount map name."
msgstr ""
-#: ipalib/plugins/automount.py:530
+#: ipalib/plugins/automount.py:578
msgid "Automount Maps"
msgstr ""
-#: ipalib/plugins/automount.py:531
+#: ipalib/plugins/automount.py:579
msgid "Automount Map"
msgstr ""
-#: ipalib/plugins/automount.py:537
+#: ipalib/plugins/automount.py:585
msgid "Create a new automount map."
msgstr ""
-#: ipalib/plugins/automount.py:539
+#: ipalib/plugins/automount.py:587
#, python-format
msgid "Added automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:545
+#: ipalib/plugins/automount.py:593
msgid "Delete an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:547
+#: ipalib/plugins/automount.py:595
#, python-format
msgid "Deleted automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:565
+#: ipalib/plugins/automount.py:613
msgid "Modify an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:567
+#: ipalib/plugins/automount.py:615
#, python-format
msgid "Modified automount map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:573
+#: ipalib/plugins/automount.py:621
msgid "Search for an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:576
+#: ipalib/plugins/automount.py:624
#, python-format
msgid "%(count)d automount map matched"
msgid_plural "%(count)d automount maps matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/automount.py:584
+#: ipalib/plugins/automount.py:632
msgid "Display an automount map."
msgstr ""
-#: ipalib/plugins/automount.py:590
+#: ipalib/plugins/automount.py:638
msgid "Automount key object."
msgstr ""
-#: ipalib/plugins/automount.py:594
+#: ipalib/plugins/automount.py:642
msgid "automount key"
msgstr ""
-#: ipalib/plugins/automount.py:595
+#: ipalib/plugins/automount.py:643
msgid "automount keys"
msgstr ""
-#: ipalib/plugins/automount.py:606 ipalib/plugins/automount.py:804
-#: ipalib/plugins/automount.py:911
+#: ipalib/plugins/automount.py:654 ipalib/plugins/automount.py:870
+#: ipalib/plugins/automount.py:977
msgid "Key"
msgstr ""
-#: ipalib/plugins/automount.py:607 ipalib/plugins/automount.py:805
-#: ipalib/plugins/automount.py:912
+#: ipalib/plugins/automount.py:655 ipalib/plugins/automount.py:871
+#: ipalib/plugins/automount.py:978
msgid "Automount key name."
msgstr ""
-#: ipalib/plugins/automount.py:612 ipalib/plugins/automount.py:809
-#: ipalib/plugins/automount.py:916
+#: ipalib/plugins/automount.py:660 ipalib/plugins/automount.py:875
+#: ipalib/plugins/automount.py:982
msgid "Mount information"
msgstr ""
-#: ipalib/plugins/automount.py:615
+#: ipalib/plugins/automount.py:663
msgid "description"
msgstr ""
-#: ipalib/plugins/automount.py:624
+#: ipalib/plugins/automount.py:672
msgid "Automount Keys"
msgstr ""
-#: ipalib/plugins/automount.py:625
+#: ipalib/plugins/automount.py:673
msgid "Automount Key"
msgstr ""
-#: ipalib/plugins/automount.py:626
+#: ipalib/plugins/automount.py:674
#, python-format
msgid ""
"The key,info pair must be unique. A key named %(key)s with info %(info)s "
"already exists"
msgstr ""
-#: ipalib/plugins/automount.py:627
+#: ipalib/plugins/automount.py:675
#, python-format
msgid "key named %(key)s already exists"
msgstr ""
-#: ipalib/plugins/automount.py:628
+#: ipalib/plugins/automount.py:676
#, python-format
msgid "The automount key %(key)s with info %(info)s does not exist"
msgstr ""
-#: ipalib/plugins/automount.py:678
+#: ipalib/plugins/automount.py:726
#, python-format
msgid ""
"More than one entry with key %(key)s found, use --info to select specific "
"entry."
msgstr ""
-#: ipalib/plugins/automount.py:736
+#: ipalib/plugins/automount.py:784
msgid "Create a new automount key."
msgstr ""
-#: ipalib/plugins/automount.py:738
+#: ipalib/plugins/automount.py:786
#, python-format
msgid "Added automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:761
+#: ipalib/plugins/automount.py:809
msgid "Create a new indirect mount point."
msgstr ""
-#: ipalib/plugins/automount.py:763
+#: ipalib/plugins/automount.py:811
#, python-format
msgid "Added automount indirect map \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:768
+#: ipalib/plugins/automount.py:816
msgid "Mount point"
msgstr ""
-#: ipalib/plugins/automount.py:772
+#: ipalib/plugins/automount.py:820
msgid "Parent map"
msgstr ""
-#: ipalib/plugins/automount.py:773
+#: ipalib/plugins/automount.py:821
msgid "Name of parent automount map (default: auto.master)."
msgstr ""
-#: ipalib/plugins/automount.py:797
+#: ipalib/plugins/automount.py:832
+msgid "mount point is relative to parent map, cannot begin with /"
+msgstr ""
+
+#: ipalib/plugins/automount.py:863
msgid "Delete an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:799
+#: ipalib/plugins/automount.py:865
#, python-format
msgid "Deleted automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:839
+#: ipalib/plugins/automount.py:905
msgid "Modify an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:841
+#: ipalib/plugins/automount.py:907
#, python-format
msgid "Modified automount key \"%(value)s\""
msgstr ""
-#: ipalib/plugins/automount.py:846
+#: ipalib/plugins/automount.py:912
msgid "New mount information"
msgstr ""
-#: ipalib/plugins/automount.py:895
+#: ipalib/plugins/automount.py:961
msgid "Search for an automount key."
msgstr ""
-#: ipalib/plugins/automount.py:898
+#: ipalib/plugins/automount.py:964
#, python-format
msgid "%(count)d automount key matched"
msgid_plural "%(count)d automount keys matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/automount.py:906
+#: ipalib/plugins/automount.py:972
msgid "Display an automount key."
msgstr ""
-#: ipalib/plugins/baseldap.py:40 ipalib/plugins/entitle.py:487
-#: ipalib/plugins/migration.py:327 ipalib/plugins/user.py:235
+#: ipalib/plugins/baseldap.py:41 ipalib/plugins/entitle.py:487
+#: ipalib/plugins/migration.py:340 ipalib/plugins/user.py:240
msgid "Password"
msgstr ""
-#: ipalib/plugins/baseldap.py:43
+#: ipalib/plugins/baseldap.py:44
msgid "Failed members"
msgstr ""
-#: ipalib/plugins/baseldap.py:46
+#: ipalib/plugins/baseldap.py:47
msgid "Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:49
+#: ipalib/plugins/baseldap.py:50
msgid "Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:52
+#: ipalib/plugins/baseldap.py:53
msgid "Member of groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:55
+#: ipalib/plugins/baseldap.py:56
msgid "Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:58
+#: ipalib/plugins/baseldap.py:59
msgid "Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:61
+#: ipalib/plugins/baseldap.py:62
msgid "Member of host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:70 ipalib/plugins/role.py:81
+#: ipalib/plugins/baseldap.py:71 ipalib/plugins/role.py:81
msgid "Roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:73 ipalib/plugins/sudocmdgroup.py:66
+#: ipalib/plugins/baseldap.py:74 ipalib/plugins/sudocmdgroup.py:66
#: ipalib/plugins/sudocmdgroup.py:86
msgid "Sudo Command Groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:79
+#: ipalib/plugins/baseldap.py:80
msgid "Granting privilege to roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:82
+#: ipalib/plugins/baseldap.py:83
msgid "Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:85
+#: ipalib/plugins/baseldap.py:86
msgid "Member of netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:88
+#: ipalib/plugins/baseldap.py:89
msgid "Member services"
msgstr ""
-#: ipalib/plugins/baseldap.py:91
+#: ipalib/plugins/baseldap.py:92
msgid "Member service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:97
+#: ipalib/plugins/baseldap.py:98
msgid "Member HBAC service"
msgstr ""
-#: ipalib/plugins/baseldap.py:100
+#: ipalib/plugins/baseldap.py:101
msgid "Member HBAC service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:109
+#: ipalib/plugins/baseldap.py:116
msgid "Indirect Member users"
msgstr ""
-#: ipalib/plugins/baseldap.py:112
+#: ipalib/plugins/baseldap.py:119
msgid "Indirect Member groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:115
+#: ipalib/plugins/baseldap.py:122
msgid "Indirect Member hosts"
msgstr ""
-#: ipalib/plugins/baseldap.py:118
+#: ipalib/plugins/baseldap.py:125
msgid "Indirect Member host-groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:121
+#: ipalib/plugins/baseldap.py:128
msgid "Indirect Member of roles"
msgstr ""
-#: ipalib/plugins/baseldap.py:124
+#: ipalib/plugins/baseldap.py:131
msgid "Indirect Member permissions"
msgstr ""
-#: ipalib/plugins/baseldap.py:127
+#: ipalib/plugins/baseldap.py:134
msgid "Indirect Member HBAC service"
msgstr ""
-#: ipalib/plugins/baseldap.py:130
+#: ipalib/plugins/baseldap.py:137
msgid "Indirect Member HBAC service group"
msgstr ""
-#: ipalib/plugins/baseldap.py:133
+#: ipalib/plugins/baseldap.py:140
msgid "Indirect Member netgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:148
+#: ipalib/plugins/baseldap.py:161
msgid "External host"
msgstr ""
-#: ipalib/plugins/baseldap.py:151
+#: ipalib/plugins/baseldap.py:164
msgid "Failed source hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:154
+#: ipalib/plugins/baseldap.py:167
msgid "Failed hosts/hostgroups"
msgstr ""
-#: ipalib/plugins/baseldap.py:157
+#: ipalib/plugins/baseldap.py:170
msgid "Failed users/groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:160
+#: ipalib/plugins/baseldap.py:173
msgid "Failed service/service groups"
msgstr ""
-#: ipalib/plugins/baseldap.py:163
+#: ipalib/plugins/baseldap.py:176
msgid "Failed managedby"
msgstr ""
-#: ipalib/plugins/baseldap.py:166
+#: ipalib/plugins/baseldap.py:179
msgid "Failed to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:306
+#: ipalib/plugins/baseldap.py:183
+msgid "Failed RunAs"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:186
+msgid "Failed RunAsGroup"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:400
msgid "entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:307
+#: ipalib/plugins/baseldap.py:401
msgid "entries"
msgstr ""
-#: ipalib/plugins/baseldap.py:339 ipalib/plugins/baseldap.py:340
+#: ipalib/plugins/baseldap.py:433 ipalib/plugins/baseldap.py:434
msgid "Entry"
msgstr ""
-#: ipalib/plugins/baseldap.py:342
+#: ipalib/plugins/baseldap.py:436
#, python-format
msgid "container entry (%(container)s) not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:343
+#: ipalib/plugins/baseldap.py:437
#, python-format
msgid "%(parent)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:344
+#: ipalib/plugins/baseldap.py:438
#, python-format
msgid "%(pkey)s: %(oname)s not found"
msgstr ""
-#: ipalib/plugins/baseldap.py:345
+#: ipalib/plugins/baseldap.py:439
#, python-format
msgid "%(oname)s with name \"%(pkey)s\" already exists"
msgstr ""
-#: ipalib/plugins/baseldap.py:632
+#: ipalib/plugins/baseldap.py:726
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:638
+#: ipalib/plugins/baseldap.py:732
msgid ""
"Add an attribute/value pair. Format is attr=value. The attribute\n"
"must be part of the schema."
msgstr ""
-#: ipalib/plugins/baseldap.py:644
+#: ipalib/plugins/baseldap.py:738
msgid ""
"Delete an attribute/value pair. The option will be evaluated\n"
"last, after all sets and adds."
msgstr ""
-#: ipalib/plugins/baseldap.py:965
+#: ipalib/plugins/baseldap.py:1062
msgid "Continuous mode: Don't stop on errors."
msgstr ""
-#: ipalib/plugins/baseldap.py:990 ipalib/plugins/baseldap.py:1062
-#: ipalib/plugins/internal.py:409
+#: ipalib/plugins/baseldap.py:1087 ipalib/plugins/baseldap.py:1159
+#: ipalib/plugins/internal.py:436
msgid "Rights"
msgstr ""
-#: ipalib/plugins/baseldap.py:991 ipalib/plugins/baseldap.py:1063
+#: ipalib/plugins/baseldap.py:1088 ipalib/plugins/baseldap.py:1160
msgid ""
"Display the access rights of this entry (requires --all). See ipa man page "
"for details."
msgstr ""
-#: ipalib/plugins/baseldap.py:1072
+#: ipalib/plugins/baseldap.py:1169
msgid "Rename"
msgstr ""
-#: ipalib/plugins/baseldap.py:1073
+#: ipalib/plugins/baseldap.py:1170
#, python-format
msgid "Rename the %(ldap_obj_name)s object"
msgstr ""
-#: ipalib/plugins/baseldap.py:1165
+#: ipalib/plugins/baseldap.py:1262
msgid "the entry was deleted while being modified"
msgstr ""
-#: ipalib/plugins/baseldap.py:1290 ipalib/plugins/baseldap.py:1782
+#: ipalib/plugins/baseldap.py:1387 ipalib/plugins/baseldap.py:1889
#, python-format
msgid "comma-separated list of %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1302
+#: ipalib/plugins/baseldap.py:1399
#, python-format
msgid "member %s"
msgstr ""
-#: ipalib/plugins/baseldap.py:1332 ipalib/plugins/baseldap.py:1807
+#: ipalib/plugins/baseldap.py:1429 ipalib/plugins/baseldap.py:1914
#, python-format
msgid "comma-separated list of %s to add"
msgstr ""
-#: ipalib/plugins/baseldap.py:1340 ipalib/plugins/baseldap.py:1819
+#: ipalib/plugins/baseldap.py:1437 ipalib/plugins/baseldap.py:1926
#: ipalib/plugins/privilege.py:153 ipalib/plugins/privilege.py:178
#: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187
msgid "Members that could not be added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1344 ipalib/plugins/baseldap.py:1823
+#: ipalib/plugins/baseldap.py:1441 ipalib/plugins/baseldap.py:1930
msgid "Number of members added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1438 ipalib/plugins/baseldap.py:1920
+#: ipalib/plugins/baseldap.py:1535 ipalib/plugins/baseldap.py:2027
#, python-format
msgid "comma-separated list of %s to remove"
msgstr ""
-#: ipalib/plugins/baseldap.py:1445 ipalib/plugins/baseldap.py:1932
+#: ipalib/plugins/baseldap.py:1542 ipalib/plugins/baseldap.py:2039
msgid "Members that could not be removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1449 ipalib/plugins/baseldap.py:1936
+#: ipalib/plugins/baseldap.py:1546 ipalib/plugins/baseldap.py:2043
msgid "Number of members removed"
msgstr ""
-#: ipalib/plugins/baseldap.py:1548
+#: ipalib/plugins/baseldap.py:1642
+msgid "Primary key only"
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1643
#, python-format
-msgid "Search for %s with these %s %s."
+msgid "Results should contain primary key attribute only (\"%s\")"
msgstr ""
-#: ipalib/plugins/baseldap.py:1549
+#: ipalib/plugins/baseldap.py:1651
#, python-format
-msgid "Search for %s without these %s %s."
+msgid ""
+"Search for %(searched_object)s with these %(relationship)s %(ldap_object)s."
+msgstr ""
+
+#: ipalib/plugins/baseldap.py:1652
+#, python-format
+msgid ""
+"Search for %(searched_object)s without these %(relationship)s "
+"%(ldap_object)s."
msgstr ""
-#: ipalib/plugins/baseldap.py:1557
+#: ipalib/plugins/baseldap.py:1660
msgid "Time Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1558
+#: ipalib/plugins/baseldap.py:1661
msgid "Time limit of search in seconds"
msgstr ""
-#: ipalib/plugins/baseldap.py:1564
+#: ipalib/plugins/baseldap.py:1667 ipalib/plugins/hbactest.py:214
msgid "Size Limit"
msgstr ""
-#: ipalib/plugins/baseldap.py:1565
+#: ipalib/plugins/baseldap.py:1668
msgid "Maximum number of entries returned"
msgstr ""
-#: ipalib/plugins/baseldap.py:1586
-msgid "Primary key only"
+#: ipalib/plugins/baseldap.py:1681
+msgid "A string searched in all relevant object attributes"
msgstr ""
-#: ipalib/plugins/baseldap.py:1587
-#, python-format
-msgid "Results should contain primary key attribute only (\"%s\")"
-msgstr ""
-
-#: ipalib/plugins/baseldap.py:1881
+#: ipalib/plugins/baseldap.py:1988
msgid "added"
msgstr ""
-#: ipalib/plugins/baseldap.py:1994
+#: ipalib/plugins/baseldap.py:2101
msgid "removed"
msgstr ""
@@ -1779,38 +1864,38 @@ msgid "automatically add the principal if it doesn't exist"
msgstr ""
#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:439
-#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:302
-#: ipalib/plugins/internal.py:318 ipalib/plugins/service.py:235
+#: ipalib/plugins/entitle.py:174 ipalib/plugins/host.py:323
+#: ipalib/plugins/internal.py:347 ipalib/plugins/service.py:235
msgid "Certificate"
msgstr ""
#: ipalib/plugins/cert.py:240 ipalib/plugins/cert.py:442
-#: ipalib/plugins/host.py:175 ipalib/plugins/service.py:94
+#: ipalib/plugins/host.py:195 ipalib/plugins/service.py:94
msgid "Subject"
msgstr ""
#: ipalib/plugins/cert.py:244 ipalib/plugins/cert.py:445
-#: ipalib/plugins/host.py:181 ipalib/plugins/service.py:100
+#: ipalib/plugins/host.py:201 ipalib/plugins/service.py:100
msgid "Issuer"
msgstr ""
#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:448
-#: ipalib/plugins/host.py:184 ipalib/plugins/service.py:103
+#: ipalib/plugins/host.py:204 ipalib/plugins/service.py:103
msgid "Not Before"
msgstr ""
#: ipalib/plugins/cert.py:252 ipalib/plugins/cert.py:451
-#: ipalib/plugins/host.py:187 ipalib/plugins/service.py:106
+#: ipalib/plugins/host.py:207 ipalib/plugins/service.py:106
msgid "Not After"
msgstr ""
#: ipalib/plugins/cert.py:256 ipalib/plugins/cert.py:454
-#: ipalib/plugins/host.py:190 ipalib/plugins/service.py:109
+#: ipalib/plugins/host.py:210 ipalib/plugins/service.py:109
msgid "Fingerprint (MD5)"
msgstr ""
#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:457
-#: ipalib/plugins/host.py:193 ipalib/plugins/service.py:112
+#: ipalib/plugins/host.py:213 ipalib/plugins/service.py:112
msgid "Fingerprint (SHA1)"
msgstr ""
@@ -1843,7 +1928,7 @@ msgstr ""
msgid "Retrieve an existing certificate."
msgstr ""
-#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:196
+#: ipalib/plugins/cert.py:460 ipalib/plugins/host.py:216
#: ipalib/plugins/service.py:115
msgid "Revocation reason"
msgstr ""
@@ -1884,7 +1969,7 @@ msgstr ""
msgid "Unrevoked"
msgstr ""
-#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:225
+#: ipalib/plugins/cert.py:572 ipalib/plugins/internal.py:229
msgid "Error"
msgstr ""
@@ -1910,6 +1995,9 @@ msgid ""
"Password plug-in features: currently defines additional hashes that the\n"
" password will generate (there may be other conditions).\n"
"\n"
+"When setting the order list for mapping SELinux users you may need to\n"
+"quote the value so it isn't interpreted by the shell.\n"
+"\n"
"EXAMPLES:\n"
"\n"
" Show basic server configuration:\n"
@@ -1929,152 +2017,180 @@ msgid ""
"\n"
" Enable migration mode to make \"ipa migrate-ds\" command operational:\n"
" ipa config-mod --enable-migration=TRUE\n"
+"\n"
+" Define SELinux user map order:\n"
+" ipa config-mod --ipaselinuxusermaporder='guest_u:s0$xguest_u:s0$user_u:s0-"
+"s0:c0.c1023$staff_u:s0-s0:c0.c1023$unconfined_u:s0-s0:c0.c1023'\n"
msgstr ""
-#: ipalib/plugins/config.py:73
+#: ipalib/plugins/config.py:79
msgid "searchtimelimit must be -1 or > 1."
msgstr ""
-#: ipalib/plugins/config.py:80
+#: ipalib/plugins/config.py:86
msgid "configuration options"
msgstr ""
-#: ipalib/plugins/config.py:89 ipalib/plugins/config.py:90
+#: ipalib/plugins/config.py:96 ipalib/plugins/config.py:97
msgid "Configuration"
msgstr ""
-#: ipalib/plugins/config.py:95
+#: ipalib/plugins/config.py:102
msgid "Maximum username length"
msgstr ""
-#: ipalib/plugins/config.py:100
+#: ipalib/plugins/config.py:107
msgid "Home directory base"
msgstr ""
-#: ipalib/plugins/config.py:101
+#: ipalib/plugins/config.py:108
msgid "Default location of home directories"
msgstr ""
-#: ipalib/plugins/config.py:105
+#: ipalib/plugins/config.py:112
msgid "Default shell"
msgstr ""
-#: ipalib/plugins/config.py:106
+#: ipalib/plugins/config.py:113
msgid "Default shell for new users"
msgstr ""
-#: ipalib/plugins/config.py:110
+#: ipalib/plugins/config.py:117
msgid "Default users group"
msgstr ""
-#: ipalib/plugins/config.py:111
+#: ipalib/plugins/config.py:118
msgid "Default group for new users"
msgstr ""
-#: ipalib/plugins/config.py:115 ipalib/plugins/config.py:116
+#: ipalib/plugins/config.py:122 ipalib/plugins/config.py:123
msgid "Default e-mail domain"
msgstr ""
-#: ipalib/plugins/config.py:120
+#: ipalib/plugins/config.py:127
msgid "Search time limit"
msgstr ""
-#: ipalib/plugins/config.py:121
+#: ipalib/plugins/config.py:128
msgid ""
"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:126
+#: ipalib/plugins/config.py:133
msgid "Search size limit"
msgstr ""
-#: ipalib/plugins/config.py:127
+#: ipalib/plugins/config.py:134
msgid "Maximum number of records to search (-1 is unlimited)"
msgstr ""
-#: ipalib/plugins/config.py:132
+#: ipalib/plugins/config.py:139
msgid "User search fields"
msgstr ""
-#: ipalib/plugins/config.py:133
+#: ipalib/plugins/config.py:140
msgid "A comma-separated list of fields to search in when searching for users"
msgstr ""
-#: ipalib/plugins/config.py:138
+#: ipalib/plugins/config.py:145
msgid "A comma-separated list of fields to search in when searching for groups"
msgstr ""
-#: ipalib/plugins/config.py:142 ipalib/plugins/config.py:143
+#: ipalib/plugins/config.py:149 ipalib/plugins/config.py:150
msgid "Enable migration mode"
msgstr ""
-#: ipalib/plugins/config.py:147
+#: ipalib/plugins/config.py:154
msgid "Certificate Subject base"
msgstr ""
-#: ipalib/plugins/config.py:148
+#: ipalib/plugins/config.py:155
msgid "Base for certificate subjects (OU=Test,O=Example)"
msgstr ""
-#: ipalib/plugins/config.py:153
+#: ipalib/plugins/config.py:160
msgid "Default group objectclasses"
msgstr ""
-#: ipalib/plugins/config.py:154
+#: ipalib/plugins/config.py:161
msgid "Default group objectclasses (comma-separated list)"
msgstr ""
-#: ipalib/plugins/config.py:159
+#: ipalib/plugins/config.py:166
msgid "Default user objectclasses"
msgstr ""
-#: ipalib/plugins/config.py:160
+#: ipalib/plugins/config.py:167
msgid "Default user objectclasses (comma-separated list)"
msgstr ""
-#: ipalib/plugins/config.py:165
+#: ipalib/plugins/config.py:172
msgid "Password Expiration Notification (days)"
msgstr ""
-#: ipalib/plugins/config.py:166
+#: ipalib/plugins/config.py:173
msgid "Number of days's notice of impending password expiration"
msgstr ""
-#: ipalib/plugins/config.py:171
+#: ipalib/plugins/config.py:178
msgid "Password plugin features"
msgstr ""
-#: ipalib/plugins/config.py:172
+#: ipalib/plugins/config.py:179
msgid "Extra hashes to generate in password plug-in"
msgstr ""
#: ipalib/plugins/config.py:184
+msgid "SELinux user map order"
+msgstr ""
+
+#: ipalib/plugins/config.py:185
+msgid "Order in increasing priority of SELinux users, delimited by $"
+msgstr ""
+
+#: ipalib/plugins/config.py:188
+msgid "Default SELinux user"
+msgstr ""
+
+#: ipalib/plugins/config.py:189
+msgid "Default SELinux user when no match is found in SELinux map rule"
+msgstr ""
+
+#: ipalib/plugins/config.py:200
msgid "Modify configuration options."
msgstr ""
-#: ipalib/plugins/config.py:192
+#: ipalib/plugins/config.py:208
msgid "The group doesn't exist"
msgstr ""
-#: ipalib/plugins/config.py:207
+#: ipalib/plugins/config.py:223
#, python-format
msgid "attribute \"%s\" not allowed"
msgstr ""
-#: ipalib/plugins/config.py:215
+#: ipalib/plugins/config.py:231
msgid "May not be empty"
msgstr ""
-#: ipalib/plugins/config.py:228
+#: ipalib/plugins/config.py:244
#, python-format
-msgid "%s default attribute %s would not be allowed!"
+msgid "%(obj)s default attribute %(attr)s would not be allowed!"
+msgstr ""
+
+#: ipalib/plugins/config.py:249
+msgid "SELinux user map default user may not be empty"
+msgstr ""
+
+#: ipalib/plugins/config.py:270
+msgid "Default SELinux user map default user not in order list"
msgstr ""
-#: ipalib/plugins/config.py:237
+#: ipalib/plugins/config.py:278
msgid "Show the current configuration."
msgstr ""
-#: ipalib/plugins/delegation.py:28
+#: ipalib/plugins/delegation.py:30
msgid ""
"\n"
"Group to Group Delegation\n"
@@ -2089,13 +2205,13 @@ msgid ""
"EXAMPLES:\n"
"\n"
" Add a delegation rule to allow managers to edit employee's addresses:\n"
-" ipa delegation-add --attrs=street --membergroup=managers --"
-"group=employees \"managers edit employees' street\"\n"
+" ipa delegation-add --attrs=street --group=managers --"
+"membergroup=employees \"managers edit employees' street\"\n"
"\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 --membergroup=managers --"
-"group=employees \"managers edit employees' street\"\n"
+" ipa delegation-mod --attrs=street,postalCode --group=managers --"
+"membergroup=employees \"managers edit employees' street\"\n"
"\n"
" Display our updated rule:\n"
" ipa delegation-show \"managers edit employees' street\"\n"
@@ -2104,92 +2220,82 @@ msgid ""
" ipa delegation-del \"managers edit employees' street\"\n"
msgstr ""
-#: ipalib/plugins/delegation.py:64 ipalib/plugins/delegation.py:91
-#, python-format
-msgid "Delegation '%(permission)s' not found"
-msgstr ""
-
-#: ipalib/plugins/delegation.py:71
-#, python-format
-msgid "Error retrieving member group %(group)s: %(error)s"
-msgstr ""
-
-#: ipalib/plugins/delegation.py:101
+#: ipalib/plugins/delegation.py:70
msgid "delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:102
+#: ipalib/plugins/delegation.py:71
msgid "delegations"
msgstr ""
-#: ipalib/plugins/delegation.py:103
+#: ipalib/plugins/delegation.py:72
msgid "Delegations"
msgstr ""
-#: ipalib/plugins/delegation.py:104
+#: ipalib/plugins/delegation.py:73
msgid "Delegation"
msgstr ""
-#: ipalib/plugins/delegation.py:109 ipalib/plugins/delegation.py:110
+#: ipalib/plugins/delegation.py:78 ipalib/plugins/delegation.py:79
msgid "Delegation name"
msgstr ""
-#: ipalib/plugins/delegation.py:116 ipalib/plugins/selfservice.py:89
+#: ipalib/plugins/delegation.py:85 ipalib/plugins/selfservice.py:84
msgid ""
"Comma-separated list of permissions to grant (read, write). Default is write."
msgstr ""
-#: ipalib/plugins/delegation.py:129
+#: ipalib/plugins/delegation.py:98
msgid "Member user group"
msgstr ""
-#: ipalib/plugins/delegation.py:130
+#: ipalib/plugins/delegation.py:99
msgid "User group to apply delegation to"
msgstr ""
-#: ipalib/plugins/delegation.py:156
+#: ipalib/plugins/delegation.py:132
msgid "Add a new delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:158
+#: ipalib/plugins/delegation.py:134
#, python-format
msgid "Added delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:178
+#: ipalib/plugins/delegation.py:153
msgid "Delete a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:181
+#: ipalib/plugins/delegation.py:156
#, python-format
msgid "Deleted delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:197
+#: ipalib/plugins/delegation.py:171
msgid "Modify a delegation."
msgstr ""
-#: ipalib/plugins/delegation.py:199
+#: ipalib/plugins/delegation.py:173
#, python-format
msgid "Modified delegation \"%(value)s\""
msgstr ""
-#: ipalib/plugins/delegation.py:217
+#: ipalib/plugins/delegation.py:190
msgid "Search for delegations."
msgstr ""
-#: ipalib/plugins/delegation.py:220
+#: ipalib/plugins/delegation.py:193
#, python-format
msgid "%(count)d delegation matched"
msgid_plural "%(count)d delegations matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/delegation.py:246
+#: ipalib/plugins/delegation.py:216
msgid "Display information about a delegation."
msgstr ""
-#: ipalib/plugins/dns.py:35
+#: ipalib/plugins/dns.py:36
msgid ""
"\n"
"Domain Name System (DNS)\n"
@@ -2199,8 +2305,8 @@ 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=nameserver.example.com \\\n"
+" --admin-email=admin@example.com\n"
"\n"
" Modify the zone to allow dynamic updates for hosts own records in realm "
"EXAMPLE.COM:\n"
@@ -2209,27 +2315,44 @@ msgid ""
"krb5-self * AAAA;\"\n"
"\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"
+" ipa dnszone-add --name-from-ip=80.142.15.0/24 \\\n"
+" --name-server=nameserver.example.com\n"
"\n"
" Add second nameserver for example.com:\n"
-" ipa dnsrecord-add example.com @ --ns-rec nameserver2.example.com\n"
+" ipa dnsrecord-add example.com @ --ns-rec=nameserver2.example.com\n"
"\n"
" Add a mail server for example.com:\n"
-" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail2\"\n"
+" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail1\"\n"
+"\n"
+" Add another record using MX record specific options:\n"
+" ipa dnsrecord-add example.com @ --mx-preference=20 --mx-exchanger=mail2\n"
+"\n"
+" Add another record using interactive mode (started when dnsrecord-add, "
+"dnsrecord-mod,\n"
+" or dnsrecord-del are executed with no options):\n"
+" ipa dnsrecord-add example.com @\n"
+" Please choose a type of DNS resource record to be added\n"
+" The most common types for this type of zone are: NS, MX, LOC\n"
+"\n"
+" DNS resource record type: MX\n"
+" MX Preference: 30\n"
+" MX Exchanger: mail3\n"
+" Record name: example.com\n"
+" MX record: 10 mail1, 20 mail2, 30 mail3\n"
+" NS record: nameserver.example.com., nameserver2.example.com.\n"
"\n"
" Delete previously added nameserver from example.com:\n"
-" ipa dnsrecord-del example.com @ --ns-rec nameserver2.example.com\n"
+" ipa dnsrecord-del example.com @ --ns-rec=nameserver2.example.com.\n"
"\n"
" Add LOC record for example.com:\n"
-" ipa dnsrecord-add example.com @ --loc-rec \"49 11 42.4 N 16 36 29.6 E "
+" ipa dnsrecord-add example.com @ --loc-rec=\"49 11 42.4 N 16 36 29.6 E "
"227.64m\"\n"
"\n"
" Add new A record for www.example.com: (random IP)\n"
-" ipa dnsrecord-add example.com www --a-rec 80.142.15.2\n"
+" ipa dnsrecord-add example.com www --a-rec=80.142.15.2\n"
"\n"
" Add new PTR record for www.example.com\n"
-" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec www.example.com.\n"
+" ipa dnsrecord-add 15.142.80.in-addr.arpa. 2 --ptr-rec=www.example.com.\n"
"\n"
" Add new SRV records for LDAP servers. Three quarters of the requests\n"
" should go to fast.example.com, one quarter to slow.example.com. If neither\n"
@@ -2241,19 +2364,30 @@ msgid ""
" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup."
"example.com\"\n"
"\n"
-" When dnsrecord-add command is executed with no option to add a specific "
-"record\n"
-" an interactive mode is started. The mode interactively prompts for the "
-"most\n"
-" typical record types for the respective zone:\n"
-" ipa dnsrecord-add example.com www\n"
-" [A record]: 1.2.3.4,11.22.33.44 (2 interactively entered random "
-"IPs)\n"
-" [AAAA record]: (no AAAA address entered)\n"
-" Record name: www\n"
-" A record: 1.2.3.4, 11.22.33.44\n"
-"\n"
-" The interactive mode can also be used for deleting the DNS records:\n"
+" The interactive mode can be used for easy modification:\n"
+" ipa dnsrecord-mod example.com _ldap._tcp\n"
+" No option to modify specific record provided.\n"
+" Current DNS record contents:\n"
+"\n"
+" SRV record: 0 3 389 fast.example.com, 0 1 389 slow.example.com, 1 1 389 "
+"backup.example.com\n"
+"\n"
+" Modify SRV record '0 3 389 fast.example.com'? Yes/No (default No): \n"
+" Modify SRV record '0 1 389 slow.example.com'? Yes/No (default No): y\n"
+" SRV Priority [0]: (keep the default value)\n"
+" SRV Weight [1]: 2 (modified value)\n"
+" SRV Port [389]: (keep the default value)\n"
+" SRV Target [slow.example.com]: (keep the default value)\n"
+" 1 SRV record skipped. Only one value per DNS record type can be modified "
+"at one time.\n"
+" Record name: _ldap._tcp\n"
+" SRV record: 0 3 389 fast.example.com, 1 1 389 backup.example.com, 0 2 "
+"389 slow.example.com\n"
+"\n"
+" After this modification, three fifths of the requests should go to\n"
+" fast.example.com and two fifths to slow.example.com.\n"
+"\n"
+" An example of the interactive mode for dnsrecord-del command:\n"
" ipa dnsrecord-del example.com www\n"
" No option to delete specific record provided.\n"
" Delete all? Yes/No (default No): (do not delete all records)\n"
@@ -2277,7 +2411,7 @@ msgid ""
" ipa dnsrecord-find example.com www\n"
"\n"
" Find A records with value 10.10.0.1 in zone example.com\n"
-" ipa dnsrecord-find example.com --a-rec 10.10.0.1\n"
+" ipa dnsrecord-find example.com --a-rec=10.10.0.1\n"
"\n"
" Show records for resource www in zone example.com\n"
" ipa dnsrecord-show example.com www\n"
@@ -2291,131 +2425,196 @@ msgid ""
" ipa dns-resolve www\n"
msgstr ""
-#: ipalib/plugins/dns.py:173
+#: ipalib/plugins/dns.py:203
+#, python-format
+msgid "invalid IP address version (is %(value)d, must be %(required_value)d)!"
+msgstr ""
+
+#: ipalib/plugins/dns.py:206
msgid "invalid IP address format"
msgstr ""
-#: ipalib/plugins/dns.py:180
+#: ipalib/plugins/dns.py:219
msgid "invalid IP network format"
msgstr ""
-#: ipalib/plugins/dns.py:188
-msgid "format must be specified as \"priority weight port target\""
+#: ipalib/plugins/dns.py:228 ipalib/plugins/dns.py:237
+#, python-format
+msgid "invalid domain-name: %s"
msgstr ""
-#: ipalib/plugins/dns.py:195
-msgid ""
-"format must be specified as \"priority weight port target\" (see RFC 2782 "
-"for details)"
+#: ipalib/plugins/dns.py:254
+#, python-format
+msgid "%s record"
msgstr ""
-#: ipalib/plugins/dns.py:205
-msgid ""
-"format must be specified as \"priority mailserver\" (see RFC 1035 for "
-"details)"
+#: ipalib/plugins/dns.py:256
+#, python-format
+msgid "Comma-separated list of raw %s records"
+msgstr ""
+
+#: ipalib/plugins/dns.py:257
+#, python-format
+msgid "%s Record"
msgstr ""
-#: ipalib/plugins/dns.py:211
-msgid "the value of priority must be integer"
+#: ipalib/plugins/dns.py:258
+#, python-format
+msgid "(see RFC %s for details)"
msgstr ""
-#: ipalib/plugins/dns.py:214
-msgid "the value of priority must be between 0 and 65535"
+#: ipalib/plugins/dns.py:313
+#, python-format
+msgid "'%s' is a required part of DNS record"
msgstr ""
-#: ipalib/plugins/dns.py:223
-msgid ""
-"format must be specified as \"order preference flags service regexp "
-"replacement\" (see RFC 2915 for details)"
+#: ipalib/plugins/dns.py:320
+msgid "Invalid number of parts!"
+msgstr ""
+
+#: ipalib/plugins/dns.py:375
+#, python-format
+msgid "DNS RR type \"%s\" is not supported by bind-dyndb-ldap plugin"
msgstr ""
-#: ipalib/plugins/dns.py:230
-msgid "order and preference must be integers"
+#: ipalib/plugins/dns.py:391
+#, python-format
+msgid "format must be specified as \"%(format)s\" %(rfcs)s"
msgstr ""
-#: ipalib/plugins/dns.py:233
-msgid "the value of order and preference must be between 0 and 65535"
+#: ipalib/plugins/dns.py:462 ipalib/plugins/dns.py:485
+#: ipalib/plugins/host.py:419
+msgid "IP Address"
msgstr ""
-#: ipalib/plugins/dns.py:238
-msgid "flag must be a single character (quotation is allowed)"
+#: ipalib/plugins/dns.py:471 ipalib/plugins/dns.py:1082
+msgid "Record data"
msgstr ""
-#: ipalib/plugins/dns.py:240
-msgid "flag must be one of \"S\", \"A\", \"U\", or \"P\""
+#: ipalib/plugins/dns.py:494
+msgid "Subtype"
msgstr ""
-#: ipalib/plugins/dns.py:249
-msgid ""
-"format must be specified as \"subtype hostname\" (see RFC 1183 for details)"
+#: ipalib/plugins/dns.py:500 ipalib/plugins/dns.py:539
+#: ipalib/plugins/dns.py:792 ipalib/plugins/dns.py:889
+#: ipalib/plugins/dns.py:2050
+msgid "Hostname"
msgstr ""
-#: ipalib/plugins/dns.py:254
-msgid "the value of subtype must be integer"
+#: ipalib/plugins/dns.py:514
+msgid "Certificate Type"
msgstr ""
-#: ipalib/plugins/dns.py:257
-msgid "the value of subtype must be between 0 and 65535"
+#: ipalib/plugins/dns.py:519 ipalib/plugins/dns.py:574
+#: ipalib/plugins/dns.py:972
+msgid "Key Tag"
msgstr ""
-#: ipalib/plugins/dns.py:266
-msgid ""
-"format must be specified as \"type key_tag algorithm certificate_or_crl"
-"\" (see RFC 4398 for details)"
+#: ipalib/plugins/dns.py:524 ipalib/plugins/dns.py:579
+#: ipalib/plugins/dns.py:613 ipalib/plugins/dns.py:950
+#: ipalib/plugins/dns.py:998
+msgid "Algorithm"
msgstr ""
-#: ipalib/plugins/dns.py:274 ipalib/plugins/dns.py:317
-msgid "key_tag, algorithm and digest_type must be integers"
+#: ipalib/plugins/dns.py:529
+msgid "Certificate/CRL"
msgstr ""
-#: ipalib/plugins/dns.py:277
-msgid "the value of type and key_tag must be between 0 and 65535"
+#: ipalib/plugins/dns.py:540
+msgid "A hostname which this alias hostname points to"
msgstr ""
-#: ipalib/plugins/dns.py:280 ipalib/plugins/dns.py:349
-msgid "the value of algorithm must be between 0 and 255"
+#: ipalib/plugins/dns.py:560 ipalib/plugins/dns.py:926
+#: ipalib/plugins/internal.py:437
+msgid "Target"
msgstr ""
-#: ipalib/plugins/dns.py:289 ipalib/plugins/dns.py:457
-#, python-format
-msgid ""
-"format must be specified as \"domain_name\" (see RFC 1035 for details): %s"
+#: ipalib/plugins/dns.py:584
+msgid "Digest Type"
msgstr ""
-#: ipalib/plugins/dns.py:299
-#, python-format
-msgid "format must be specified as \"target\" (see RFC 2672 for details): %s"
+#: ipalib/plugins/dns.py:589
+msgid "Digest"
msgstr ""
-#: ipalib/plugins/dns.py:309
-msgid ""
-"format must be specified as \"key_tag algorithm digest_type digest\" (see "
-"RFC 4034 for details)"
+#: ipalib/plugins/dns.py:603 ipalib/plugins/dns.py:868
+msgid "Flags"
msgstr ""
-#: ipalib/plugins/dns.py:320 ipalib/plugins/dns.py:343
-msgid "the value of flags must be between 0 and 65535"
+#: ipalib/plugins/dns.py:608
+msgid "Protocol"
msgstr ""
-#: ipalib/plugins/dns.py:323
-msgid "the value of algorithm and digest_type must be between 0 and 255"
+#: ipalib/plugins/dns.py:618
+msgid "Public Key"
msgstr ""
-#: ipalib/plugins/dns.py:332
-msgid ""
-"format must be specified as \"flags protocol algorithm public_key\" (see RFC "
-"2535 for details)"
+#: ipalib/plugins/dns.py:632 ipalib/plugins/dns.py:773
+#: ipalib/plugins/dns.py:862
+msgid "Preference"
+msgstr ""
+
+#: ipalib/plugins/dns.py:633 ipalib/plugins/dns.py:774
+msgid "Preference given to this exchanger. Lower values are more preferred"
+msgstr ""
+
+#: ipalib/plugins/dns.py:639 ipalib/plugins/dns.py:780
+msgid "Exchanger"
+msgstr ""
+
+#: ipalib/plugins/dns.py:640
+msgid "A host willing to act as a key exchanger"
+msgstr ""
+
+#: ipalib/plugins/dns.py:649
+msgid "Degrees Latitude"
+msgstr ""
+
+#: ipalib/plugins/dns.py:654
+msgid "Minutes Latitude"
+msgstr ""
+
+#: ipalib/plugins/dns.py:659
+msgid "Seconds Latitude"
+msgstr ""
+
+#: ipalib/plugins/dns.py:665
+msgid "Direction Latitude"
+msgstr ""
+
+#: ipalib/plugins/dns.py:669
+msgid "Degrees Longtitude"
+msgstr ""
+
+#: ipalib/plugins/dns.py:674
+msgid "Minutes Longtitude"
+msgstr ""
+
+#: ipalib/plugins/dns.py:679
+msgid "Seconds Longtitude"
+msgstr ""
+
+#: ipalib/plugins/dns.py:685
+msgid "Direction Longtitude"
msgstr ""
-#: ipalib/plugins/dns.py:340
-msgid "flags, protocol and algorithm must be integers"
+#: ipalib/plugins/dns.py:689
+msgid "Altitude"
msgstr ""
-#: ipalib/plugins/dns.py:346
-msgid "the value of protocol must be between 0 and 255"
+#: ipalib/plugins/dns.py:695
+msgid "Size"
+msgstr ""
+
+#: ipalib/plugins/dns.py:701
+msgid "Horizontal Precision"
msgstr ""
-#: ipalib/plugins/dns.py:367
+#: ipalib/plugins/dns.py:707
+msgid "Vertical Precision"
+msgstr ""
+
+#: ipalib/plugins/dns.py:714
msgid ""
"format must be specified as\n"
" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz"
@@ -2430,422 +2629,483 @@ msgid ""
" See RFC 1876 for details"
msgstr ""
-#: ipalib/plugins/dns.py:384
+#: ipalib/plugins/dns.py:763
#, python-format
-msgid "%s must be integer"
+msgid "'%(required)s' must not be empty when '%(name)s' is set"
msgstr ""
-#: ipalib/plugins/dns.py:391
-#, python-format
-msgid "%s must be float"
+#: ipalib/plugins/dns.py:781
+msgid "A host willing to act as a mail exchanger"
msgstr ""
-#: ipalib/plugins/dns.py:394
-msgid "d1 and d2 must be between 0 and 90"
+#: ipalib/plugins/dns.py:799
+msgid ""
+"format must be specified as \"NEXT TYPE1 [TYPE2 [TYPE3 [...]]]\" (see RFC "
+"4034 for details)"
msgstr ""
-#: ipalib/plugins/dns.py:398
-msgid "m1, m2, s1 and s2 must be between 0 and 59.999"
+#: ipalib/plugins/dns.py:806
+msgid "Next Domain Name"
msgstr ""
-#: ipalib/plugins/dns.py:401
-msgid "alt must be between -100000.00 and 42849672.95"
+#: ipalib/plugins/dns.py:809
+msgid "Type Map"
msgstr ""
-#: ipalib/plugins/dns.py:405
-msgid "siz, hp and vp must be between 0 and 90000000.00"
+#: ipalib/plugins/dns.py:849
+msgid "flags must be one of \"S\", \"A\", \"U\", or \"P\""
msgstr ""
-#: ipalib/plugins/dns.py:414
-msgid "format must be specified as \"domain_name\" (see RFC 1035 for details)"
+#: ipalib/plugins/dns.py:857
+msgid "Order"
msgstr ""
-#: ipalib/plugins/dns.py:423
-msgid ""
-"format must be specified as \"next_domain_name type1 [type2 [type3 "
-"[...]]]\" (see RFC 4034 for details)"
+#: ipalib/plugins/dns.py:872 ipalib/plugins/hbactest.py:194
+#: ipalib/plugins/internal.py:465 ipalib/plugins/service.py:223
+msgid "Service"
msgstr ""
-#: ipalib/plugins/dns.py:430
-msgid "type must be one of "
+#: ipalib/plugins/dns.py:875
+msgid "Regular Expression"
msgstr ""
-#: ipalib/plugins/dns.py:439
-msgid ""
-"format must be specified as \"preference exchanger\" (see RFC 2230 for "
-"details)"
+#: ipalib/plugins/dns.py:878
+msgid "Replacement"
+msgstr ""
+
+#: ipalib/plugins/dns.py:890
+msgid "The hostname this reverse record points to"
+msgstr ""
+
+#: ipalib/plugins/dns.py:910 ipalib/plugins/pwpolicy.py:263
+msgid "Priority"
msgstr ""
-#: ipalib/plugins/dns.py:445
-msgid "the value of preference must be integer"
+#: ipalib/plugins/dns.py:915
+msgid "Weight"
msgstr ""
-#: ipalib/plugins/dns.py:448
-msgid "the value of preference must be between 0 and 65535"
+#: ipalib/plugins/dns.py:920
+msgid "Port"
msgstr ""
-#: ipalib/plugins/dns.py:468
+#: ipalib/plugins/dns.py:927
msgid ""
-"format must be specified as \"type_covered algorithm labels original_ttl "
-"signature_expiration signature_inception key_tag signers_name signature"
-"\" (see RFC 2535, 4034 for details)"
+"The domain name of the target host or '.' if the service is decidedly not "
+"available at this domain"
msgstr ""
-#: ipalib/plugins/dns.py:474
-msgid "type_covered must be one of "
+#: ipalib/plugins/dns.py:936
+msgid "the value does not follow \"YYYYMMDDHHMMSS\" time format"
msgstr ""
-#: ipalib/plugins/dns.py:482
-msgid "algorithm, labels, original_ttl and key_tag must be integers"
+#: ipalib/plugins/dns.py:946
+msgid "Type Covered"
msgstr ""
-#: ipalib/plugins/dns.py:489
-msgid ""
-"signature_expiration and signature_inception must follow time format "
-"\"YYYYMMDDHHMMSS\""
+#: ipalib/plugins/dns.py:955
+msgid "Labels"
msgstr ""
-#: ipalib/plugins/dns.py:493
-msgid "the value of algorithm and labels must be between 0 and 255"
+#: ipalib/plugins/dns.py:960
+msgid "Original TTL"
msgstr ""
-#: ipalib/plugins/dns.py:496
-msgid "the value of original_ttl must be between 0 and 4294967295"
+#: ipalib/plugins/dns.py:965
+msgid "Signature Expiration"
msgstr ""
-#: ipalib/plugins/dns.py:499
-msgid "the value of tag must be between 0 and 65535"
+#: ipalib/plugins/dns.py:969
+msgid "Signature Inception"
msgstr ""
-#: ipalib/plugins/dns.py:508
-msgid ""
-"format must be specified as \"algorithm fp_type fingerprint\" (see RFC 4255 "
-"for details)"
+#: ipalib/plugins/dns.py:977
+msgid "Signer's Name"
+msgstr ""
+
+#: ipalib/plugins/dns.py:980
+msgid "Signature"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1003
+msgid "Fingerprint Type"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1008
+msgid "Fingerprint"
msgstr ""
-#: ipalib/plugins/dns.py:515
-msgid "algorithm and fp_type must be integers"
+#: ipalib/plugins/dns.py:1029
+msgid "Text Data"
msgstr ""
-#: ipalib/plugins/dns.py:518
-msgid "the value of algorithm and fp_type must be between 0 and 255"
+#: ipalib/plugins/dns.py:1076
+msgid "Records"
msgstr ""
-#: ipalib/plugins/dns.py:527
-msgid "This DNS RR type is not supported by bind-dyndb-ldap plugin"
+#: ipalib/plugins/dns.py:1079
+msgid "Record type"
msgstr ""
-#: ipalib/plugins/dns.py:611
+#: ipalib/plugins/dns.py:1114
#, python-format
msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record"
msgstr ""
-#: ipalib/plugins/dns.py:638
+#: ipalib/plugins/dns.py:1141
msgid "DNS zone"
msgstr ""
-#: ipalib/plugins/dns.py:639
+#: ipalib/plugins/dns.py:1142
msgid "DNS zones"
msgstr ""
-#: ipalib/plugins/dns.py:646
+#: ipalib/plugins/dns.py:1149
msgid "DNS Zones"
msgstr ""
-#: ipalib/plugins/dns.py:647
+#: ipalib/plugins/dns.py:1150
msgid "DNS Zone"
msgstr ""
-#: ipalib/plugins/dns.py:652
+#: ipalib/plugins/dns.py:1155
msgid "Zone name"
msgstr ""
-#: ipalib/plugins/dns.py:653
+#: ipalib/plugins/dns.py:1156
msgid "Zone name (FQDN)"
msgstr ""
-#: ipalib/plugins/dns.py:659
+#: ipalib/plugins/dns.py:1162
msgid "Reverse zone IP network"
msgstr ""
-#: ipalib/plugins/dns.py:660
+#: ipalib/plugins/dns.py:1163
msgid "IP network to create reverse zone name from"
msgstr ""
-#: ipalib/plugins/dns.py:665
+#: ipalib/plugins/dns.py:1168
msgid "Authoritative nameserver"
msgstr ""
-#: ipalib/plugins/dns.py:666
+#: ipalib/plugins/dns.py:1169
msgid "Authoritative nameserver domain name"
msgstr ""
-#: ipalib/plugins/dns.py:671 ipalib/plugins/dns.py:672
+#: ipalib/plugins/dns.py:1174 ipalib/plugins/dns.py:1175
msgid "Administrator e-mail address"
msgstr ""
-#: ipalib/plugins/dns.py:678
+#: ipalib/plugins/dns.py:1181
msgid "SOA serial"
msgstr ""
-#: ipalib/plugins/dns.py:679
+#: ipalib/plugins/dns.py:1182
msgid "SOA record serial number"
msgstr ""
-#: ipalib/plugins/dns.py:686
+#: ipalib/plugins/dns.py:1189
msgid "SOA refresh"
msgstr ""
-#: ipalib/plugins/dns.py:687
+#: ipalib/plugins/dns.py:1190
msgid "SOA record refresh time"
msgstr ""
-#: ipalib/plugins/dns.py:694
+#: ipalib/plugins/dns.py:1197
msgid "SOA retry"
msgstr ""
-#: ipalib/plugins/dns.py:695
+#: ipalib/plugins/dns.py:1198
msgid "SOA record retry time"
msgstr ""
-#: ipalib/plugins/dns.py:702
+#: ipalib/plugins/dns.py:1205
msgid "SOA expire"
msgstr ""
-#: ipalib/plugins/dns.py:703
+#: ipalib/plugins/dns.py:1206
msgid "SOA record expire time"
msgstr ""
-#: ipalib/plugins/dns.py:710
+#: ipalib/plugins/dns.py:1213
msgid "SOA minimum"
msgstr ""
-#: ipalib/plugins/dns.py:711
+#: ipalib/plugins/dns.py:1214
msgid "How long should negative responses be cached"
msgstr ""
-#: ipalib/plugins/dns.py:719
+#: ipalib/plugins/dns.py:1222
msgid "SOA time to live"
msgstr ""
-#: ipalib/plugins/dns.py:720
+#: ipalib/plugins/dns.py:1223
msgid "SOA record time to live"
msgstr ""
-#: ipalib/plugins/dns.py:724
+#: ipalib/plugins/dns.py:1227
msgid "SOA class"
msgstr ""
-#: ipalib/plugins/dns.py:725
+#: ipalib/plugins/dns.py:1228
msgid "SOA record class"
msgstr ""
-#: ipalib/plugins/dns.py:730 ipalib/plugins/dns.py:731
+#: ipalib/plugins/dns.py:1233 ipalib/plugins/dns.py:1234
msgid "BIND update policy"
msgstr ""
-#: ipalib/plugins/dns.py:735
+#: ipalib/plugins/dns.py:1238
msgid "Active zone"
msgstr ""
-#: ipalib/plugins/dns.py:736
+#: ipalib/plugins/dns.py:1239
msgid "Is zone active?"
msgstr ""
-#: ipalib/plugins/dns.py:742
+#: ipalib/plugins/dns.py:1245
msgid "Dynamic update"
msgstr ""
-#: ipalib/plugins/dns.py:743
+#: ipalib/plugins/dns.py:1246
msgid "Allow dynamic updates."
msgstr ""
-#: ipalib/plugins/dns.py:754
+#: ipalib/plugins/dns.py:1257
msgid "Create new DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:758 ipalib/plugins/dns.py:1155
-#: ipalib/plugins/host.py:373 ipalib/plugins/service.py:252
+#: ipalib/plugins/dns.py:1261 ipalib/plugins/dns.py:1595
+#: ipalib/plugins/host.py:411 ipalib/plugins/service.py:252
msgid "Force"
msgstr ""
-#: ipalib/plugins/dns.py:759
+#: ipalib/plugins/dns.py:1262
msgid "Force DNS zone creation even if nameserver not in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:762
+#: ipalib/plugins/dns.py:1265
msgid "Add the nameserver to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/dns.py:775
+#: ipalib/plugins/dns.py:1278
msgid "DNS is not configured"
msgstr ""
-#: ipalib/plugins/dns.py:785
+#: ipalib/plugins/dns.py:1288
msgid "Nameserver address is not a fully qualified domain name"
msgstr ""
-#: ipalib/plugins/dns.py:811
+#: ipalib/plugins/dns.py:1314
msgid "Delete DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:817
+#: ipalib/plugins/dns.py:1320
msgid "Modify DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:830
+#: ipalib/plugins/dns.py:1333
msgid "Search for DNS zones (SOA records)."
msgstr ""
-#: ipalib/plugins/dns.py:848
+#: ipalib/plugins/dns.py:1351
msgid "Forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:850
+#: ipalib/plugins/dns.py:1353
msgid "Search for forward zones only"
msgstr ""
-#: ipalib/plugins/dns.py:869
+#: ipalib/plugins/dns.py:1372
msgid "Display information about a DNS zone (SOA record)."
msgstr ""
-#: ipalib/plugins/dns.py:875
+#: ipalib/plugins/dns.py:1378
msgid "Disable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:878
+#: ipalib/plugins/dns.py:1381
#, python-format
msgid "Disabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:896
+#: ipalib/plugins/dns.py:1399
msgid "Enable DNS Zone."
msgstr ""
-#: ipalib/plugins/dns.py:899
+#: ipalib/plugins/dns.py:1402
#, python-format
msgid "Enabled DNS zone \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:922
+#: ipalib/plugins/dns.py:1425
msgid "DNS resource record"
msgstr ""
-#: ipalib/plugins/dns.py:923
+#: ipalib/plugins/dns.py:1426
msgid "DNS resource records"
msgstr ""
-#: ipalib/plugins/dns.py:927
+#: ipalib/plugins/dns.py:1430
msgid "DNS Resource Records"
msgstr ""
-#: ipalib/plugins/dns.py:928
+#: ipalib/plugins/dns.py:1431
msgid "DNS Resource Record"
msgstr ""
-#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:934
+#: ipalib/plugins/dns.py:1436 ipalib/plugins/dns.py:1437
msgid "Record name"
msgstr ""
-#: ipalib/plugins/dns.py:939 ipalib/plugins/dns.py:940
+#: ipalib/plugins/dns.py:1442 ipalib/plugins/dns.py:1443
msgid "Time to live"
msgstr ""
-#: ipalib/plugins/dns.py:944
+#: ipalib/plugins/dns.py:1447
msgid "Class"
msgstr ""
-#: ipalib/plugins/dns.py:945
+#: ipalib/plugins/dns.py:1448
msgid "DNS class"
msgstr ""
-#: ipalib/plugins/dns.py:972
+#: ipalib/plugins/dns.py:1454
+msgid "Structured"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1455
+msgid "Parse all raw DNS records and return them in a structured way"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1480
#, 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:977
+#: ipalib/plugins/dns.py:1485
#, python-format
-msgid "Reverse zone %s requires exactly %d IP address components, %d given"
+msgid ""
+"Reverse zone %(name)s requires exactly %(count)d IP address components, "
+"%(user_count)d given"
msgstr ""
-#: ipalib/plugins/dns.py:1149
+#: ipalib/plugins/dns.py:1589
msgid "Add new DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:1157
+#: ipalib/plugins/dns.py:1597
msgid "force NS record creation even if its hostname is not in DNS"
msgstr ""
-#: ipalib/plugins/dns.py:1210
+#: ipalib/plugins/dns.py:1623
+msgid "Please choose a type of DNS resource record to be added"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1624
+#, python-format
+msgid "The most common types for this type of zone are: %s\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1629
+msgid "DNS resource record type"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1642
+#, python-format
+msgid "Invalid type. Allowed values are: %s"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1707
msgid "Modify a DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:1250
+#: ipalib/plugins/dns.py:1744
+msgid "DNS records can be only updated one at a time"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1815
+msgid "No option to modify specific record provided."
+msgstr ""
+
+#: ipalib/plugins/dns.py:1818 ipalib/plugins/dns.py:1972
+msgid "Current DNS record contents:\n"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1840
+#, python-format
+msgid "Modify %(name)s '%(value)s'?"
+msgstr ""
+
+#: ipalib/plugins/dns.py:1848
+#, python-format
+msgid ""
+"%(count)d %(type)s record skipped. Only one value per DNS record type can be "
+"modified at one time."
+msgid_plural ""
+"%(count)d %(type)s records skipped. Only one value per DNS record type can "
+"be modified at one time."
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/dns.py:1860
#, python-format
msgid "Deleted record \"%(value)s\""
msgstr ""
-#: ipalib/plugins/dns.py:1257
+#: ipalib/plugins/dns.py:1867
msgid "Delete DNS resource record."
msgstr ""
-#: ipalib/plugins/dns.py:1259
+#: ipalib/plugins/dns.py:1869
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:1264
+#: ipalib/plugins/dns.py:1875
msgid "Delete all associated records"
msgstr ""
-#: ipalib/plugins/dns.py:1291
-msgid "No option to delete specific record provided."
-msgstr ""
-
-#: ipalib/plugins/dns.py:1292
-msgid "Delete all?"
+#: ipalib/plugins/dns.py:1928
+#, python-format
+msgid "Zone record '%s' cannot be deleted"
msgstr ""
-#: ipalib/plugins/dns.py:1302
-msgid "Current DNS record contents:\n"
+#: ipalib/plugins/dns.py:1964
+msgid "No option to delete specific record provided."
msgstr ""
-#: ipalib/plugins/dns.py:1316
-#, python-format
-msgid "Delete %s '%s'?"
+#: ipalib/plugins/dns.py:1965
+msgid "Delete all?"
msgstr ""
-#: ipalib/plugins/dns.py:1331
+#: ipalib/plugins/dns.py:1993
#, python-format
-msgid "%s record with value %s not found"
+msgid "Delete %(name)s '%(value)s'?"
msgstr ""
-#: ipalib/plugins/dns.py:1345
+#: ipalib/plugins/dns.py:2005
msgid "Display DNS resource."
msgstr ""
-#: ipalib/plugins/dns.py:1360
+#: ipalib/plugins/dns.py:2021
msgid "Search for DNS resources."
msgstr ""
-#: ipalib/plugins/dns.py:1386
+#: ipalib/plugins/dns.py:2043
msgid "Resolve a host name in DNS."
msgstr ""
-#: ipalib/plugins/dns.py:1389
+#: ipalib/plugins/dns.py:2046
#, python-format
msgid "Found '%(value)s'"
msgstr ""
-#: ipalib/plugins/dns.py:1393
-msgid "Hostname"
-msgstr ""
-
-#: ipalib/plugins/dns.py:1415
+#: ipalib/plugins/dns.py:2072
#, python-format
msgid "Host '%(host)s' not found"
msgstr ""
@@ -2913,7 +3173,7 @@ msgstr ""
#: ipalib/plugins/entitle.py:217 ipalib/plugins/entitle.py:304
#: ipalib/plugins/entitle.py:384 ipalib/plugins/entitle.py:570
-#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:331
+#: ipalib/plugins/entitle.py:683 ipalib/plugins/internal.py:360
msgid "Product"
msgstr ""
@@ -2925,7 +3185,7 @@ msgstr ""
#: ipalib/plugins/entitle.py:223 ipalib/plugins/entitle.py:307
#: ipalib/plugins/entitle.py:576 ipalib/plugins/entitle.py:686
-#: ipalib/plugins/internal.py:322
+#: ipalib/plugins/internal.py:351
msgid "Consumed"
msgstr ""
@@ -2942,16 +3202,16 @@ msgstr ""
msgid "Retrieve the entitlement certs."
msgstr ""
-#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:334
+#: ipalib/plugins/entitle.py:390 ipalib/plugins/internal.py:363
msgid "Start"
msgstr ""
-#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:325
+#: ipalib/plugins/entitle.py:393 ipalib/plugins/internal.py:354
msgid "End"
msgstr ""
-#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:178
-#: ipalib/plugins/internal.py:289 ipalib/plugins/service.py:97
+#: ipalib/plugins/entitle.py:396 ipalib/plugins/host.py:198
+#: ipalib/plugins/internal.py:307 ipalib/plugins/service.py:97
msgid "Serial Number"
msgstr ""
@@ -3060,8 +3320,8 @@ msgstr ""
msgid "groups"
msgstr ""
-#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:192
-#: ipalib/plugins/sudorule.py:144
+#: ipalib/plugins/group.py:100 ipalib/plugins/hbacrule.py:195
+#: ipalib/plugins/selinuxusermap.py:184 ipalib/plugins/sudorule.py:147
msgid "User Groups"
msgstr ""
@@ -3077,7 +3337,7 @@ msgstr ""
msgid "Group description"
msgstr ""
-#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:250
+#: ipalib/plugins/group.py:120 ipalib/plugins/user.py:264
msgid "GID"
msgstr ""
@@ -3227,199 +3487,220 @@ msgstr ""
msgid "The deny type has been deprecated."
msgstr ""
-#: ipalib/plugins/hbacrule.py:112
+#: ipalib/plugins/hbacrule.py:115
msgid "HBAC rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:113
+#: ipalib/plugins/hbacrule.py:116
msgid "HBAC rules"
msgstr ""
-#: ipalib/plugins/hbacrule.py:131
+#: ipalib/plugins/hbacrule.py:134
msgid "HBAC Rules"
msgstr ""
-#: ipalib/plugins/hbacrule.py:132
+#: ipalib/plugins/hbacrule.py:135 ipalib/plugins/selinuxusermap.py:156
msgid "HBAC Rule"
msgstr ""
-#: ipalib/plugins/hbacrule.py:137 ipalib/plugins/sudorule.py:98
+#: ipalib/plugins/hbacrule.py:140 ipalib/plugins/selinuxusermap.py:147
+#: ipalib/plugins/sudorule.py:101
msgid "Rule name"
msgstr ""
-#: ipalib/plugins/hbacrule.py:142
+#: ipalib/plugins/hbacrule.py:145
msgid "Rule type (allow)"
msgstr ""
-#: ipalib/plugins/hbacrule.py:143
+#: ipalib/plugins/hbacrule.py:146
msgid "Rule type"
msgstr ""
-#: ipalib/plugins/hbacrule.py:153 ipalib/plugins/netgroup.py:126
-#: ipalib/plugins/sudorule.py:111
+#: ipalib/plugins/hbacrule.py:156 ipalib/plugins/netgroup.py:126
+#: ipalib/plugins/selinuxusermap.py:161 ipalib/plugins/sudorule.py:114
msgid "User category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:154 ipalib/plugins/netgroup.py:127
-#: ipalib/plugins/sudorule.py:112
+#: ipalib/plugins/hbacrule.py:157 ipalib/plugins/netgroup.py:127
+#: ipalib/plugins/selinuxusermap.py:162 ipalib/plugins/sudorule.py:115
msgid "User category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:159 ipalib/plugins/netgroup.py:132
-#: ipalib/plugins/sudorule.py:117
+#: ipalib/plugins/hbacrule.py:162 ipalib/plugins/netgroup.py:132
+#: ipalib/plugins/selinuxusermap.py:167 ipalib/plugins/sudorule.py:120
msgid "Host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:160 ipalib/plugins/netgroup.py:133
-#: ipalib/plugins/sudorule.py:118
+#: ipalib/plugins/hbacrule.py:163 ipalib/plugins/netgroup.py:133
+#: ipalib/plugins/selinuxusermap.py:168 ipalib/plugins/sudorule.py:121
msgid "Host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:165
+#: ipalib/plugins/hbacrule.py:168
msgid "Source host category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:166
+#: ipalib/plugins/hbacrule.py:169
msgid "Source host category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:171
+#: ipalib/plugins/hbacrule.py:174
msgid "Service category"
msgstr ""
-#: ipalib/plugins/hbacrule.py:172
+#: ipalib/plugins/hbacrule.py:175
msgid "Service category the rule applies to"
msgstr ""
-#: ipalib/plugins/hbacrule.py:184 ipalib/plugins/sudorule.py:106
+#: ipalib/plugins/hbacrule.py:187 ipalib/plugins/internal.py:541
+#: ipalib/plugins/selinuxusermap.py:176 ipalib/plugins/sudorule.py:109
msgid "Enabled"
msgstr ""
-#: ipalib/plugins/hbacrule.py:188 ipalib/plugins/sudorule.py:140
-#: ipalib/plugins/user.py:168
+#: ipalib/plugins/hbacrule.py:191 ipalib/plugins/selinuxusermap.py:180
+#: ipalib/plugins/sudorule.py:143 ipalib/plugins/user.py:176
msgid "Users"
msgstr ""
-#: ipalib/plugins/hbacrule.py:196 ipalib/plugins/host.py:248
-#: ipalib/plugins/sudorule.py:148
+#: ipalib/plugins/hbacrule.py:199 ipalib/plugins/host.py:269
+#: ipalib/plugins/selinuxusermap.py:188 ipalib/plugins/sudorule.py:151
msgid "Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:200 ipalib/plugins/hostgroup.py:74
-#: ipalib/plugins/sudorule.py:152
+#: ipalib/plugins/hbacrule.py:203 ipalib/plugins/hostgroup.py:74
+#: ipalib/plugins/selinuxusermap.py:192 ipalib/plugins/sudorule.py:155
msgid "Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:204
+#: ipalib/plugins/hbacrule.py:207
msgid "Source Hosts"
msgstr ""
-#: ipalib/plugins/hbacrule.py:208
+#: ipalib/plugins/hbacrule.py:211
msgid "Source Host Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:212 ipalib/plugins/internal.py:359
+#: ipalib/plugins/hbacrule.py:215 ipalib/plugins/internal.py:386
#: ipalib/plugins/service.py:222
msgid "Services"
msgstr ""
-#: ipalib/plugins/hbacrule.py:216
+#: ipalib/plugins/hbacrule.py:219
msgid "Service Groups"
msgstr ""
-#: ipalib/plugins/hbacrule.py:225
+#: ipalib/plugins/hbacrule.py:228
msgid "Create a new HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:227
+#: ipalib/plugins/hbacrule.py:230
#, python-format
msgid "Added HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:238
+#: ipalib/plugins/hbacrule.py:241
msgid "Delete an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:240
+#: ipalib/plugins/hbacrule.py:243
#, python-format
msgid "Deleted HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:246
+#: ipalib/plugins/hbacrule.py:257
msgid "Modify an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:248
+#: ipalib/plugins/hbacrule.py:259
#, python-format
msgid "Modified HBAC rule \"%(value)s\""
msgstr ""
+#: ipalib/plugins/hbacrule.py:268
+msgid "user category cannot be set to 'all' while there are allowed users"
+msgstr ""
+
#: ipalib/plugins/hbacrule.py:270
+msgid "host category cannot be set to 'all' while there are allowed hosts"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:272
+msgid ""
+"sourcehost category cannot be set to 'all' while there are allowed "
+"sourcehosts"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:274
+msgid ""
+"service category cannot be set to 'all' while there are allowed services"
+msgstr ""
+
+#: ipalib/plugins/hbacrule.py:281
msgid "Search for HBAC rules."
msgstr ""
-#: ipalib/plugins/hbacrule.py:273
+#: ipalib/plugins/hbacrule.py:284
#, python-format
msgid "%(count)d HBAC rule matched"
msgid_plural "%(count)d HBAC rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/hbacrule.py:280
+#: ipalib/plugins/hbacrule.py:291
msgid "Display the properties of an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:286
+#: ipalib/plugins/hbacrule.py:297
msgid "Enable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:288
+#: ipalib/plugins/hbacrule.py:299
#, python-format
msgid "Enabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:313
+#: ipalib/plugins/hbacrule.py:324
msgid "Disable an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:315
+#: ipalib/plugins/hbacrule.py:326
#, python-format
msgid "Disabled HBAC rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/hbacrule.py:347 ipalib/plugins/hbacrule.py:387
+#: ipalib/plugins/hbacrule.py:358 ipalib/plugins/hbacrule.py:398
msgid "Access time"
msgstr ""
-#: ipalib/plugins/hbacrule.py:421
+#: ipalib/plugins/hbacrule.py:432
msgid "Add users and groups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:440
+#: ipalib/plugins/hbacrule.py:451
msgid "Remove users and groups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:449
+#: ipalib/plugins/hbacrule.py:460
msgid "Add target hosts and hostgroups to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:468
+#: ipalib/plugins/hbacrule.py:479
msgid "Remove target hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:477
+#: ipalib/plugins/hbacrule.py:488
msgid "Add source hosts and hostgroups from a HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:524
+#: ipalib/plugins/hbacrule.py:510
msgid "Remove source hosts and hostgroups from an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:558
+#: ipalib/plugins/hbacrule.py:522
msgid "Add services to an HBAC rule."
msgstr ""
-#: ipalib/plugins/hbacrule.py:577
+#: ipalib/plugins/hbacrule.py:541
msgid "Remove service and service groups from an HBAC rule."
msgstr ""
@@ -3626,21 +3907,21 @@ msgid ""
"\n"
"HBAC rules control who can access what services on what hosts and from "
"where.\n"
-"You can use HBAC to control which users or groups on a source host can\n"
-"access a service, or group of services, on a target host.\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"
"Since applying HBAC rules implies use of a production environment,\n"
"this plugin aims to provide simulation of HBAC rules evaluation without\n"
"having access to the production environment.\n"
"\n"
-" Test user coming from source host to a service on a named host against\n"
+" Test user coming to a service on a named host against\n"
" existing enabled rules.\n"
"\n"
-" ipa hbactest --user= --srchost= --host= --service=\n"
+" ipa hbactest --user= --host= --service=\n"
" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n"
+" [--srchost= ] [--sizelimit= ]\n"
"\n"
-" --user, --srchost, --host, and --service are mandatory, others are "
-"optional.\n"
+" --user, --host, and --service are mandatory, others are optional.\n"
"\n"
" If --rules is specified simulate enabling of the specified rules and test\n"
" the login of the user using only these rules.\n"
@@ -3659,11 +3940,17 @@ msgid ""
" all IPA enabled rules.\n"
"\n"
" If no --rules specified, simulation is run against all IPA enabled rules.\n"
+" By default there is a IPA-wide limit to number of entries fetched, you can "
+"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"
-" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd\n"
+" $ ipa hbactest --user=a1a --host=bar --service=sshd\n"
" --------------------\n"
" Access granted: True\n"
" --------------------\n"
@@ -3673,15 +3960,14 @@ msgid ""
" matched: allow_all\n"
"\n"
" 2. Disable detailed summary of how rules were applied:\n"
-" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --"
-"nodetail\n"
+" $ ipa hbactest --user=a1a --host=bar --service=sshd --nodetail\n"
" --------------------\n"
" Access granted: True\n"
" --------------------\n"
"\n"
" 3. Test explicitly specified HBAC rules:\n"
-" $ ipa hbactest --user=a1a --srchost=foo --host=bar --"
-"service=sshd --rules=my-second-rule,myrule\n"
+" $ ipa hbactest --user=a1a --host=bar --service=sshd --rules=my-"
+"second-rule,myrule\n"
" ---------------------\n"
" Access granted: False\n"
" ---------------------\n"
@@ -3690,8 +3976,8 @@ msgid ""
"\n"
" 4. Use all enabled HBAC rules in IPA database + explicitly specified "
"rules:\n"
-" $ ipa hbactest --user=a1a --srchost=foo --host=bar --"
-"service=sshd --rules=my-second-rule,myrule --enabled\n"
+" $ ipa hbactest --user=a1a --host=bar --service=sshd --rules=my-"
+"second-rule,myrule --enabled\n"
" --------------------\n"
" Access granted: True\n"
" --------------------\n"
@@ -3701,8 +3987,7 @@ msgid ""
" matched: allow_all\n"
"\n"
" 5. Test all disabled HBAC rules in IPA database:\n"
-" $ ipa hbactest --user=a1a --srchost=foo --host=bar --service=sshd --"
-"disabled\n"
+" $ ipa hbactest --user=a1a --host=bar --service=sshd --disabled\n"
" ---------------------\n"
" Access granted: False\n"
" ---------------------\n"
@@ -3710,8 +3995,8 @@ msgid ""
"\n"
" 6. Test all disabled HBAC rules in IPA database + explicitly specified "
"rules:\n"
-" $ ipa hbactest --user=a1a --srchost=foo --host=bar --"
-"service=sshd --rules=my-second-rule,myrule --disabled\n"
+" $ ipa hbactest --user=a1a --host=bar --service=sshd --rules=my-"
+"second-rule,myrule --disabled\n"
" ---------------------\n"
" Access granted: False\n"
" ---------------------\n"
@@ -3720,8 +4005,8 @@ msgid ""
" notmatched: myrule\n"
"\n"
" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n"
-" $ ipa hbactest --user=a1a --srchost=foo --host=bar --"
-"service=sshd --enabled --disabled\n"
+" $ ipa hbactest --user=a1a --host=bar --service=sshd --enabled "
+"--disabled\n"
" --------------------\n"
" Access granted: True\n"
" --------------------\n"
@@ -3733,70 +4018,78 @@ msgid ""
"\n"
msgstr ""
-#: ipalib/plugins/hbactest.py:161
+#: ipalib/plugins/hbactest.py:167
msgid "Simulate use of Host-based access controls"
msgstr ""
-#: ipalib/plugins/hbactest.py:165
+#: ipalib/plugins/hbactest.py:171
+msgid "Warning"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:172
msgid "Matched rules"
msgstr ""
-#: ipalib/plugins/hbactest.py:166
+#: ipalib/plugins/hbactest.py:173
msgid "Not matched rules"
msgstr ""
-#: ipalib/plugins/hbactest.py:167
+#: ipalib/plugins/hbactest.py:174
msgid "Non-existent or invalid rules"
msgstr ""
-#: ipalib/plugins/hbactest.py:168
+#: ipalib/plugins/hbactest.py:175
msgid "Result of simulation"
msgstr ""
-#: ipalib/plugins/hbactest.py:174 ipalib/plugins/krbtpolicy.py:85
+#: ipalib/plugins/hbactest.py:181 ipalib/plugins/krbtpolicy.py:85
#: ipalib/plugins/passwd.py:69
msgid "User name"
msgstr ""
-#: ipalib/plugins/hbactest.py:179
+#: ipalib/plugins/hbactest.py:186
msgid "Source host"
msgstr ""
-#: ipalib/plugins/hbactest.py:183
+#: ipalib/plugins/hbactest.py:190
msgid "Target host"
msgstr ""
-#: ipalib/plugins/hbactest.py:187 ipalib/plugins/internal.py:430
-#: ipalib/plugins/service.py:223
-msgid "Service"
-msgstr ""
-
-#: ipalib/plugins/hbactest.py:191
+#: ipalib/plugins/hbactest.py:198
msgid "Rules to test. If not specified, --enabled is assumed"
msgstr ""
-#: ipalib/plugins/hbactest.py:196
+#: ipalib/plugins/hbactest.py:203
msgid "Hide details which rules are matched, not matched, or invalid"
msgstr ""
-#: ipalib/plugins/hbactest.py:200
+#: ipalib/plugins/hbactest.py:207
msgid "Include all enabled IPA rules into test [default]"
msgstr ""
-#: ipalib/plugins/hbactest.py:204
+#: ipalib/plugins/hbactest.py:211
msgid "Include all disabled IPA rules into test"
msgstr ""
-#: ipalib/plugins/hbactest.py:266
+#: ipalib/plugins/hbactest.py:215
+msgid "Maximum number of rules to process when no --rules is specified"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:293
msgid "Unresolved rules in --rules"
msgstr ""
-#: ipalib/plugins/hbactest.py:342
+#: ipalib/plugins/hbactest.py:362
+#, python-format
+msgid "Sourcehost value of rule \"%s\" is ignored"
+msgstr ""
+
+#: ipalib/plugins/hbactest.py:376
#, python-format
msgid "Access granted: %s"
msgstr ""
-#: ipalib/plugins/host.py:42
+#: ipalib/plugins/host.py:43
msgid ""
"\n"
"Hosts/Machines\n"
@@ -3846,6 +4139,9 @@ msgid ""
" Modify information about a host:\n"
" ipa host-mod --os='Fedora 12' test.example.com\n"
"\n"
+" Remove SSH public keys of a host and update DNS to reflect this change:\n"
+" ipa host-mod --sshpubkey= --updatedns test.example.com\n"
+"\n"
" Disable the host Kerberos key, SSL certificate and all of its services:\n"
" ipa host-disable test.example.com\n"
"\n"
@@ -3853,198 +4149,211 @@ msgid ""
" ipa host-add-managedby --hosts=test2 test\n"
msgstr ""
-#: ipalib/plugins/host.py:101
+#: ipalib/plugins/host.py:105
msgid "Fully-qualified hostname required"
msgstr ""
-#: ipalib/plugins/host.py:142
+#: ipalib/plugins/host.py:146
#, python-format
msgid "DNS reverse zone for IP address %(addr)s not found"
msgstr ""
-#: ipalib/plugins/host.py:166 ipalib/plugins/service.py:88
+#: ipalib/plugins/host.py:186 ipalib/plugins/service.py:88
msgid "Keytab"
msgstr ""
-#: ipalib/plugins/host.py:207
-msgid "invalid IP address"
-msgstr ""
-
-#: ipalib/plugins/host.py:216
+#: ipalib/plugins/host.py:236
msgid "host"
msgstr ""
-#: ipalib/plugins/host.py:217
+#: ipalib/plugins/host.py:237
msgid "hosts"
msgstr ""
-#: ipalib/plugins/host.py:249
+#: ipalib/plugins/host.py:270 ipalib/plugins/internal.py:453
msgid "Host"
msgstr ""
-#: ipalib/plugins/host.py:257
+#: ipalib/plugins/host.py:278
msgid "Host name"
msgstr ""
-#: ipalib/plugins/host.py:264
+#: ipalib/plugins/host.py:285
msgid "A description of this host"
msgstr ""
-#: ipalib/plugins/host.py:268
+#: ipalib/plugins/host.py:289
msgid "Locality"
msgstr ""
-#: ipalib/plugins/host.py:269
+#: ipalib/plugins/host.py:290
msgid "Host locality (e.g. \"Baltimore, MD\")"
msgstr ""
-#: ipalib/plugins/host.py:274
+#: ipalib/plugins/host.py:295
msgid "Host location (e.g. \"Lab 2\")"
msgstr ""
-#: ipalib/plugins/host.py:278
+#: ipalib/plugins/host.py:299
msgid "Platform"
msgstr ""
-#: ipalib/plugins/host.py:279
+#: ipalib/plugins/host.py:300
msgid "Host hardware platform (e.g. \"Lenovo T61\")"
msgstr ""
-#: ipalib/plugins/host.py:283
+#: ipalib/plugins/host.py:304
msgid "Operating system"
msgstr ""
-#: ipalib/plugins/host.py:284
+#: ipalib/plugins/host.py:305
msgid "Host operating system and version (e.g. \"Fedora 9\")"
msgstr ""
-#: ipalib/plugins/host.py:288
+#: ipalib/plugins/host.py:309
msgid "User password"
msgstr ""
-#: ipalib/plugins/host.py:289
+#: ipalib/plugins/host.py:310
msgid "Password used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:292
+#: ipalib/plugins/host.py:313
msgid "Generate a random password to be used in bulk enrollment"
msgstr ""
-#: ipalib/plugins/host.py:297
+#: ipalib/plugins/host.py:318 ipalib/plugins/user.py:252
msgid "Random password"
msgstr ""
-#: ipalib/plugins/host.py:303 ipalib/plugins/service.py:236
+#: ipalib/plugins/host.py:324 ipalib/plugins/service.py:236
msgid "Base-64 encoded server certificate"
msgstr ""
-#: ipalib/plugins/host.py:306 ipalib/plugins/host.py:621
+#: ipalib/plugins/host.py:327 ipalib/plugins/host.py:666
msgid "Principal name"
msgstr ""
-#: ipalib/plugins/host.py:366
+#: ipalib/plugins/host.py:335
+msgid "MAC address"
+msgstr ""
+
+#: ipalib/plugins/host.py:336
+msgid "Hardware MAC address(es) on this host"
+msgstr ""
+
+#: ipalib/plugins/host.py:340 ipalib/plugins/user.py:317
+msgid "Base-64 encoded SSH public key"
+msgstr ""
+
+#: ipalib/plugins/host.py:344 ipalib/plugins/user.py:321
+msgid "SSH public key fingerprint"
+msgstr ""
+
+#: ipalib/plugins/host.py:404
msgid "Add a new host."
msgstr ""
-#: ipalib/plugins/host.py:369
+#: ipalib/plugins/host.py:407
#, python-format
msgid "Added host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:374
+#: ipalib/plugins/host.py:412
msgid "force host name even if not in DNS"
msgstr ""
-#: ipalib/plugins/host.py:377
+#: ipalib/plugins/host.py:415
msgid "skip reverse DNS detection"
msgstr ""
-#: ipalib/plugins/host.py:380
+#: ipalib/plugins/host.py:418
msgid "Add the host to DNS with this IP address"
msgstr ""
-#: ipalib/plugins/host.py:381
-msgid "IP Address"
-msgstr ""
-
-#: ipalib/plugins/host.py:397 ipalib/plugins/host.py:552
+#: ipalib/plugins/host.py:435 ipalib/plugins/host.py:597
+#: ipalib/plugins/host.py:757
#, python-format
msgid "DNS zone %(zone)s not found"
msgstr ""
-#: ipalib/plugins/host.py:481
+#: ipalib/plugins/host.py:524
#, python-format
msgid "The host was added but the DNS update failed with: %(exc)s"
msgstr ""
-#: ipalib/plugins/host.py:499
+#: ipalib/plugins/host.py:544
msgid "Delete a host."
msgstr ""
-#: ipalib/plugins/host.py:501
+#: ipalib/plugins/host.py:546
#, python-format
msgid "Deleted host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:506
+#: ipalib/plugins/host.py:551
msgid "Remove entries from DNS"
msgstr ""
-#: ipalib/plugins/host.py:612
+#: ipalib/plugins/host.py:657
msgid "Modify information about a host."
msgstr ""
-#: ipalib/plugins/host.py:615
+#: ipalib/plugins/host.py:660
#, python-format
msgid "Modified host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:622
+#: ipalib/plugins/host.py:667
msgid "Kerberos principal name for this host"
msgstr ""
-#: ipalib/plugins/host.py:634
+#: ipalib/plugins/host.py:671
+msgid "Update DNS entries"
+msgstr ""
+
+#: ipalib/plugins/host.py:683
msgid "Password cannot be set on enrolled host."
msgstr ""
-#: ipalib/plugins/host.py:708
+#: ipalib/plugins/host.py:795
msgid "Search for hosts."
msgstr ""
-#: ipalib/plugins/host.py:712
+#: ipalib/plugins/host.py:799
#, python-format
msgid "%(count)d host matched"
msgid_plural "%(count)d hosts matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/host.py:742
+#: ipalib/plugins/host.py:877
msgid "Display information about a host."
msgstr ""
-#: ipalib/plugins/host.py:747 ipalib/plugins/service.py:396
+#: ipalib/plugins/host.py:882 ipalib/plugins/service.py:396
msgid "file to store certificate in"
msgstr ""
-#: ipalib/plugins/host.py:775 ipalib/plugins/service.py:414
+#: ipalib/plugins/host.py:912 ipalib/plugins/service.py:414
#, python-format
msgid "Certificate stored in file '%(file)s'"
msgstr ""
-#: ipalib/plugins/host.py:786
+#: ipalib/plugins/host.py:923
msgid "Disable the Kerberos key, SSL certificate and all services of a host."
msgstr ""
-#: ipalib/plugins/host.py:789
+#: ipalib/plugins/host.py:926
#, python-format
msgid "Disabled host \"%(value)s\""
msgstr ""
-#: ipalib/plugins/host.py:876
+#: ipalib/plugins/host.py:1013
msgid "Add hosts that can manage this host."
msgstr ""
-#: ipalib/plugins/host.py:890
+#: ipalib/plugins/host.py:1027
msgid "Remove hosts that can manage this host."
msgstr ""
@@ -4310,921 +4619,1082 @@ msgid "Close"
msgstr ""
#: ipalib/plugins/internal.py:186
-msgid "Find"
+msgid "Edit"
msgstr ""
#: ipalib/plugins/internal.py:187
-msgid "Get"
+msgid "Find"
msgstr ""
#: ipalib/plugins/internal.py:188
-msgid "Issue"
+msgid "Get"
msgstr ""
#: ipalib/plugins/internal.py:189
-msgid "OK"
+msgid "Issue"
msgstr ""
#: ipalib/plugins/internal.py:190
-msgid "Delete"
+msgid "OK"
msgstr ""
#: ipalib/plugins/internal.py:191
-msgid "Reset"
+msgid "Refresh"
msgstr ""
#: ipalib/plugins/internal.py:192
-msgid "Restore"
+msgid "Delete"
msgstr ""
#: ipalib/plugins/internal.py:193
-msgid "Retry"
+msgid "Reset"
msgstr ""
#: ipalib/plugins/internal.py:194
-msgid "Revoke"
+msgid "Restore"
msgstr ""
#: ipalib/plugins/internal.py:195
-msgid "Update"
+msgid "Retry"
msgstr ""
#: ipalib/plugins/internal.py:196
-msgid "View"
+msgid "Revoke"
+msgstr ""
+
+#: ipalib/plugins/internal.py:197
+msgid "Set"
+msgstr ""
+
+#: ipalib/plugins/internal.py:198
+msgid "Update"
msgstr ""
#: ipalib/plugins/internal.py:199
+msgid "View"
+msgstr ""
+
+#: ipalib/plugins/internal.py:202
msgid "Collapse All"
msgstr ""
-#: ipalib/plugins/internal.py:200
+#: ipalib/plugins/internal.py:203
msgid "Expand All"
msgstr ""
-#: ipalib/plugins/internal.py:201
+#: ipalib/plugins/internal.py:204
msgid "General"
msgstr ""
-#: ipalib/plugins/internal.py:202
+#: ipalib/plugins/internal.py:205
msgid "Identity Settings"
msgstr ""
-#: ipalib/plugins/internal.py:203
+#: ipalib/plugins/internal.py:206
msgid "${entity} ${primary_key} Settings"
msgstr ""
-#: ipalib/plugins/internal.py:204
+#: ipalib/plugins/internal.py:207
msgid "Back to Top"
msgstr ""
-#: ipalib/plugins/internal.py:207
+#: ipalib/plugins/internal.py:210
msgid "${entity} successfully added"
msgstr ""
-#: ipalib/plugins/internal.py:208
+#: ipalib/plugins/internal.py:211
msgid "Add ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:209
+#: ipalib/plugins/internal.py:212
msgid "Available"
msgstr ""
-#: ipalib/plugins/internal.py:210
+#: ipalib/plugins/internal.py:213
msgid "Some operations failed."
msgstr ""
-#: ipalib/plugins/internal.py:211
+#: ipalib/plugins/internal.py:214
msgid "Operations Error"
msgstr ""
-#: ipalib/plugins/internal.py:212
+#: ipalib/plugins/internal.py:215
msgid "Confirmation"
msgstr ""
-#: ipalib/plugins/internal.py:213
+#: ipalib/plugins/internal.py:216
msgid "This page has unsaved changes. Please save or revert."
msgstr ""
-#: ipalib/plugins/internal.py:214
+#: ipalib/plugins/internal.py:217
msgid "Unsaved Changes"
msgstr ""
-#: ipalib/plugins/internal.py:215
+#: ipalib/plugins/internal.py:218
+msgid "Edit ${entity}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:219
msgid "Hide details"
msgstr ""
-#: ipalib/plugins/internal.py:216
+#: ipalib/plugins/internal.py:220
msgid "Prospective"
msgstr ""
-#: ipalib/plugins/internal.py:217
+#: ipalib/plugins/internal.py:221
msgid "Redirection"
msgstr ""
-#: ipalib/plugins/internal.py:218
+#: ipalib/plugins/internal.py:222
msgid "Select entries to be removed."
msgstr ""
-#: ipalib/plugins/internal.py:219
+#: ipalib/plugins/internal.py:223
msgid "Remove ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:220
+#: ipalib/plugins/internal.py:224
msgid "Show details"
msgstr ""
-#: ipalib/plugins/internal.py:221
+#: ipalib/plugins/internal.py:225
msgid "Validation error"
msgstr ""
-#: ipalib/plugins/internal.py:222
+#: ipalib/plugins/internal.py:226
msgid "Input form contains invalid or missing values."
msgstr ""
-#: ipalib/plugins/internal.py:226
+#: ipalib/plugins/internal.py:230
msgid "HTTP Error"
msgstr ""
-#: ipalib/plugins/internal.py:227
+#: ipalib/plugins/internal.py:231
msgid "Internal Error"
msgstr ""
-#: ipalib/plugins/internal.py:228
+#: ipalib/plugins/internal.py:232
msgid "IPA Error"
msgstr ""
-#: ipalib/plugins/internal.py:229
+#: ipalib/plugins/internal.py:233
msgid "No response"
msgstr ""
-#: ipalib/plugins/internal.py:230
+#: ipalib/plugins/internal.py:234
msgid "Unknown Error"
msgstr ""
-#: ipalib/plugins/internal.py:231
+#: ipalib/plugins/internal.py:235
msgid "URL"
msgstr ""
-#: ipalib/plugins/internal.py:234
+#: ipalib/plugins/internal.py:238
msgid "${primary_key} is managed by:"
msgstr ""
-#: ipalib/plugins/internal.py:235
+#: ipalib/plugins/internal.py:239
msgid "${primary_key} members:"
msgstr ""
-#: ipalib/plugins/internal.py:236
+#: ipalib/plugins/internal.py:240
msgid "${primary_key} is a member of:"
msgstr ""
-#: ipalib/plugins/internal.py:239
+#: ipalib/plugins/internal.py:243
msgid "Settings"
msgstr ""
-#: ipalib/plugins/internal.py:240
+#: ipalib/plugins/internal.py:244
msgid "Search"
msgstr ""
-#: ipalib/plugins/internal.py:242
+#: ipalib/plugins/internal.py:246
msgid "False"
msgstr ""
-#: ipalib/plugins/internal.py:244
+#: ipalib/plugins/internal.py:248
msgid "Logged In As"
msgstr ""
-#: ipalib/plugins/internal.py:248
+#: ipalib/plugins/internal.py:252 ipalib/plugins/internal.py:257
msgid "Attribute"
msgstr ""
-#: ipalib/plugins/internal.py:253
-msgid "Automount Location Settings"
+#: ipalib/plugins/internal.py:255
+msgid "Add Condition into ${pkey}"
msgstr ""
#: ipalib/plugins/internal.py:256
+msgid "Add Rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:258
+msgid "Default host group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:259
+msgid "Default user group"
+msgstr ""
+
+#: ipalib/plugins/internal.py:260
+msgid "Exclusive"
+msgstr ""
+
+#: ipalib/plugins/internal.py:261
+msgid "Expression"
+msgstr ""
+
+#: ipalib/plugins/internal.py:262
+msgid "Host group rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:263
+msgid "Host group rules"
+msgstr ""
+
+#: ipalib/plugins/internal.py:264
+msgid "Inclusive"
+msgstr ""
+
+#: ipalib/plugins/internal.py:265
+msgid "User group rule"
+msgstr ""
+
+#: ipalib/plugins/internal.py:266
+msgid "User group rules"
+msgstr ""
+
+#: ipalib/plugins/internal.py:271
+msgid "Automount Location Settings"
+msgstr ""
+
+#: ipalib/plugins/internal.py:274
msgid "Map Type"
msgstr ""
-#: ipalib/plugins/internal.py:257
+#: ipalib/plugins/internal.py:275
msgid "Direct"
msgstr ""
-#: ipalib/plugins/internal.py:258
+#: ipalib/plugins/internal.py:276
msgid "Indirect"
msgstr ""
-#: ipalib/plugins/internal.py:261
+#: ipalib/plugins/internal.py:279
msgid "AA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:262
+#: ipalib/plugins/internal.py:280
msgid "Affiliation Changed"
msgstr ""
-#: ipalib/plugins/internal.py:263
+#: ipalib/plugins/internal.py:281
msgid "CA Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:264
+#: ipalib/plugins/internal.py:282
msgid "Certificate Hold"
msgstr ""
-#: ipalib/plugins/internal.py:265
+#: ipalib/plugins/internal.py:283
msgid "Cessation of Operation"
msgstr ""
-#: ipalib/plugins/internal.py:266
+#: ipalib/plugins/internal.py:284
msgid "Common Name"
msgstr ""
-#: ipalib/plugins/internal.py:267
-msgid "Enter the Base64-encoded CSR below"
-msgstr ""
-
-#: ipalib/plugins/internal.py:268
+#: ipalib/plugins/internal.py:285
msgid "Expires On"
msgstr ""
-#: ipalib/plugins/internal.py:269
+#: ipalib/plugins/internal.py:286
msgid "Fingerprints"
msgstr ""
-#: ipalib/plugins/internal.py:270
+#: ipalib/plugins/internal.py:287
msgid "Issue New Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:271
+#: ipalib/plugins/internal.py:288
msgid "Issued By"
msgstr ""
-#: ipalib/plugins/internal.py:272
+#: ipalib/plugins/internal.py:289
msgid "Issued On"
msgstr ""
-#: ipalib/plugins/internal.py:273
+#: ipalib/plugins/internal.py:290
msgid "Issued To"
msgstr ""
-#: ipalib/plugins/internal.py:274
+#: ipalib/plugins/internal.py:291
msgid "Key Compromise"
msgstr ""
-#: ipalib/plugins/internal.py:275
+#: ipalib/plugins/internal.py:292
msgid "MD5 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:276
+#: ipalib/plugins/internal.py:293
msgid "No Valid Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:277
+#: ipalib/plugins/internal.py:294
msgid "New Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:278
+#: ipalib/plugins/internal.py:295
msgid "Note"
msgstr ""
-#: ipalib/plugins/internal.py:279
+#: ipalib/plugins/internal.py:296
msgid "Organization"
msgstr ""
-#: ipalib/plugins/internal.py:280
+#: ipalib/plugins/internal.py:297
msgid "Organizational Unit"
msgstr ""
-#: ipalib/plugins/internal.py:281
+#: ipalib/plugins/internal.py:298
msgid "Privilege Withdrawn"
msgstr ""
-#: ipalib/plugins/internal.py:282
+#: ipalib/plugins/internal.py:299
msgid "Reason for Revocation"
msgstr ""
-#: ipalib/plugins/internal.py:283
+#: ipalib/plugins/internal.py:300
msgid "Remove from CRL"
msgstr ""
-#: ipalib/plugins/internal.py:284
+#: ipalib/plugins/internal.py:301
+msgid ""
+"<ol><li>Create a private key in a secure location, for example:<br/># "
+"openssl genrsa -out key.pem</li><li>Create a CSR with subject CN=${hostname},"
+"O=${realm}, for example:<br/># openssl req -new -key key.pem -out cert.csr "
+"\\<br/>&nbsp;&nbsp;&nbsp;&nbsp;-subj '/O=${realm}/CN=${hostname}'</"
+"li><li>Copy and paste the CSR below:</li></ol>"
+msgstr ""
+
+#: ipalib/plugins/internal.py:302
msgid "Restore Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:285
+#: ipalib/plugins/internal.py:303
msgid ""
"To confirm your intention to restore this certificate, click the \"Restore\" "
"button."
msgstr ""
-#: ipalib/plugins/internal.py:286
+#: ipalib/plugins/internal.py:304
msgid "Revoke Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:287
+#: ipalib/plugins/internal.py:305
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:288
+#: ipalib/plugins/internal.py:306
msgid "Certificate Revoked"
msgstr ""
-#: ipalib/plugins/internal.py:290
+#: ipalib/plugins/internal.py:308
msgid "SHA1 Fingerprint"
msgstr ""
-#: ipalib/plugins/internal.py:291
+#: ipalib/plugins/internal.py:309
msgid "Superseded"
msgstr ""
-#: ipalib/plugins/internal.py:292
+#: ipalib/plugins/internal.py:310
msgid "Unspecified"
msgstr ""
-#: ipalib/plugins/internal.py:293
+#: ipalib/plugins/internal.py:311
msgid "Valid Certificate Present"
msgstr ""
-#: ipalib/plugins/internal.py:294
+#: ipalib/plugins/internal.py:312
msgid "Validity"
msgstr ""
-#: ipalib/plugins/internal.py:295
+#: ipalib/plugins/internal.py:313
msgid "Certificate for ${entity} ${primary_key}"
msgstr ""
-#: ipalib/plugins/internal.py:298
+#: ipalib/plugins/internal.py:316
msgid "Group Options"
msgstr ""
-#: ipalib/plugins/internal.py:299
+#: ipalib/plugins/internal.py:317
msgid "Search Options"
msgstr ""
-#: ipalib/plugins/internal.py:300
+#: ipalib/plugins/internal.py:318
msgid "User Options"
msgstr ""
-#: ipalib/plugins/internal.py:305
+#: ipalib/plugins/internal.py:323
msgid "Data"
msgstr ""
-#: ipalib/plugins/internal.py:306
+#: ipalib/plugins/internal.py:324
msgid "DNS record was deleted because it contained no data."
msgstr ""
-#: ipalib/plugins/internal.py:307
+#: ipalib/plugins/internal.py:325
msgid "Other Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:308
+#: ipalib/plugins/internal.py:326
+msgid "Address not valid, can't redirect"
+msgstr ""
+
+#: ipalib/plugins/internal.py:327
+msgid "Create dns record"
+msgstr ""
+
+#: ipalib/plugins/internal.py:328
+msgid "Creating record."
+msgstr ""
+
+#: ipalib/plugins/internal.py:329
+msgid "Record creation failed."
+msgstr ""
+
+#: ipalib/plugins/internal.py:330
+msgid "Checking if record exists."
+msgstr ""
+
+#: ipalib/plugins/internal.py:331
+msgid "Record not found."
+msgstr ""
+
+#: ipalib/plugins/internal.py:332
+msgid "Redirection to PTR record"
+msgstr ""
+
+#: ipalib/plugins/internal.py:333
+msgid "Zone found: ${zone}"
+msgstr ""
+
+#: ipalib/plugins/internal.py:334
+msgid "Target reverse zone not found."
+msgstr ""
+
+#: ipalib/plugins/internal.py:335
+msgid "Fetching DNS zones."
+msgstr ""
+
+#: ipalib/plugins/internal.py:336
+msgid "An error occurd while fetching dns zones."
+msgstr ""
+
+#: ipalib/plugins/internal.py:337
msgid "You will be redirected to DNS Zone."
msgstr ""
-#: ipalib/plugins/internal.py:309
+#: ipalib/plugins/internal.py:338
msgid "Standard Record Types"
msgstr ""
-#: ipalib/plugins/internal.py:310
+#: ipalib/plugins/internal.py:339
msgid "Records for DNS Zone"
msgstr ""
-#: ipalib/plugins/internal.py:311
+#: ipalib/plugins/internal.py:340
msgid "Record Type"
msgstr ""
-#: ipalib/plugins/internal.py:314
+#: ipalib/plugins/internal.py:343
msgid "DNS Zone Settings"
msgstr ""
-#: ipalib/plugins/internal.py:317
+#: ipalib/plugins/internal.py:346
msgid "Account"
msgstr ""
-#: ipalib/plugins/internal.py:319
+#: ipalib/plugins/internal.py:348
msgid "Certificates"
msgstr ""
-#: ipalib/plugins/internal.py:320
+#: ipalib/plugins/internal.py:349
msgid "Consume"
msgstr ""
-#: ipalib/plugins/internal.py:321
+#: ipalib/plugins/internal.py:350
msgid "Consume Entitlement"
msgstr ""
-#: ipalib/plugins/internal.py:323
+#: ipalib/plugins/internal.py:352
msgid "Download"
msgstr ""
-#: ipalib/plugins/internal.py:324
+#: ipalib/plugins/internal.py:353
msgid "Download Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:326
+#: ipalib/plugins/internal.py:355
msgid "Import"
msgstr ""
-#: ipalib/plugins/internal.py:327
+#: ipalib/plugins/internal.py:356
msgid "Import Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:328
+#: ipalib/plugins/internal.py:357
msgid "Enter the Base64-encoded entitlement certificate below:"
msgstr ""
-#: ipalib/plugins/internal.py:329
+#: ipalib/plugins/internal.py:358
msgid "Loading..."
msgstr ""
-#: ipalib/plugins/internal.py:330
+#: ipalib/plugins/internal.py:359
msgid "No Certificate."
msgstr ""
-#: ipalib/plugins/internal.py:332
+#: ipalib/plugins/internal.py:361
msgid "Register"
msgstr ""
-#: ipalib/plugins/internal.py:333
+#: ipalib/plugins/internal.py:362
msgid "Registration"
msgstr ""
-#: ipalib/plugins/internal.py:335 ipalib/plugins/internal.py:392
-#: ipalib/plugins/internal.py:431
+#: ipalib/plugins/internal.py:364 ipalib/plugins/internal.py:419
+#: ipalib/plugins/internal.py:466 ipalib/plugins/internal.py:542
msgid "Status"
msgstr ""
-#: ipalib/plugins/internal.py:338
+#: ipalib/plugins/internal.py:367
msgid "Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:339
-msgid "Is this a POSIX group?"
-msgstr ""
-
-#: ipalib/plugins/internal.py:342 ipalib/plugins/internal.py:444
-#: ipalib/plugins/internal.py:470
-msgid "Active"
+#: ipalib/plugins/internal.py:368
+msgid "POSIX group"
msgstr ""
-#: ipalib/plugins/internal.py:343 ipalib/plugins/internal.py:448
+#: ipalib/plugins/internal.py:371 ipalib/plugins/internal.py:451
+#: ipalib/plugins/internal.py:492
msgid "Any Host"
msgstr ""
-#: ipalib/plugins/internal.py:344
+#: ipalib/plugins/internal.py:372
msgid "Any Service"
msgstr ""
-#: ipalib/plugins/internal.py:345 ipalib/plugins/internal.py:449
+#: ipalib/plugins/internal.py:373 ipalib/plugins/internal.py:452
+#: ipalib/plugins/internal.py:493
msgid "Anyone"
msgstr ""
-#: ipalib/plugins/internal.py:346
+#: ipalib/plugins/internal.py:374
msgid "Accessing"
msgstr ""
-#: ipalib/plugins/internal.py:347 ipalib/plugins/internal.py:454
-#: ipalib/plugins/internal.py:475
-msgid "Inactive"
-msgstr ""
-
-#: ipalib/plugins/internal.py:348 ipalib/plugins/internal.py:455
+#: ipalib/plugins/internal.py:375 ipalib/plugins/internal.py:498
msgid "Rule status"
msgstr ""
-#: ipalib/plugins/internal.py:349
+#: ipalib/plugins/internal.py:376
msgid "Via Service"
msgstr ""
-#: ipalib/plugins/internal.py:350
+#: ipalib/plugins/internal.py:377
msgid "From"
msgstr ""
-#: ipalib/plugins/internal.py:351 ipalib/plugins/internal.py:460
+#: ipalib/plugins/internal.py:378 ipalib/plugins/internal.py:454
+#: ipalib/plugins/internal.py:503
msgid "Specified Hosts and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:352
+#: ipalib/plugins/internal.py:379
msgid "Specified Services and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:353 ipalib/plugins/internal.py:461
+#: ipalib/plugins/internal.py:380 ipalib/plugins/internal.py:455
+#: ipalib/plugins/internal.py:504
msgid "Specified Users and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:354 ipalib/plugins/internal.py:462
+#: ipalib/plugins/internal.py:381 ipalib/plugins/internal.py:505
msgid "Who"
msgstr ""
-#: ipalib/plugins/internal.py:362
+#: ipalib/plugins/internal.py:389
msgid "Access Denied"
msgstr ""
-#: ipalib/plugins/internal.py:363
+#: ipalib/plugins/internal.py:390
msgid "Access Granted"
msgstr ""
-#: ipalib/plugins/internal.py:364
+#: ipalib/plugins/internal.py:391
msgid "Include Disabled"
msgstr ""
-#: ipalib/plugins/internal.py:365
+#: ipalib/plugins/internal.py:392
msgid "Include Enabled"
msgstr ""
-#: ipalib/plugins/internal.py:366
+#: ipalib/plugins/internal.py:393
msgid "HBAC Test"
msgstr ""
-#: ipalib/plugins/internal.py:367
+#: ipalib/plugins/internal.py:394
msgid "Matched"
msgstr ""
-#: ipalib/plugins/internal.py:368
+#: ipalib/plugins/internal.py:395
msgid "New Test"
msgstr ""
-#: ipalib/plugins/internal.py:369
+#: ipalib/plugins/internal.py:396
msgid "Rules"
msgstr ""
-#: ipalib/plugins/internal.py:370
+#: ipalib/plugins/internal.py:397
msgid "Run Test"
msgstr ""
-#: ipalib/plugins/internal.py:371
+#: ipalib/plugins/internal.py:398
msgid "Specify external ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:372
+#: ipalib/plugins/internal.py:399
msgid "Unmatched"
msgstr ""
-#: ipalib/plugins/internal.py:375
+#: ipalib/plugins/internal.py:402
msgid "Host Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:376 ipalib/plugins/internal.py:427
+#: ipalib/plugins/internal.py:403 ipalib/plugins/internal.py:462
msgid "Host Name"
msgstr ""
-#: ipalib/plugins/internal.py:377 ipalib/plugins/internal.py:425
+#: ipalib/plugins/internal.py:404 ipalib/plugins/internal.py:460
msgid "Delete Key, Unprovision"
msgstr ""
-#: ipalib/plugins/internal.py:378
+#: ipalib/plugins/internal.py:405
msgid "Host Settings"
msgstr ""
-#: ipalib/plugins/internal.py:379
-msgid "Enrolled?"
+#: ipalib/plugins/internal.py:406
+msgid "Enrolled"
msgstr ""
-#: ipalib/plugins/internal.py:380
+#: ipalib/plugins/internal.py:407
msgid "Enrollment"
msgstr ""
-#: ipalib/plugins/internal.py:381
+#: ipalib/plugins/internal.py:408
msgid "Fully Qualified Host Name"
msgstr ""
-#: ipalib/plugins/internal.py:382
+#: ipalib/plugins/internal.py:409
msgid "Kerberos Key"
msgstr ""
-#: ipalib/plugins/internal.py:383 ipalib/plugins/internal.py:428
+#: ipalib/plugins/internal.py:410 ipalib/plugins/internal.py:463
msgid "Kerberos Key Not Present"
msgstr ""
-#: ipalib/plugins/internal.py:384
+#: ipalib/plugins/internal.py:411
msgid "Kerberos Key Present, Host Provisioned"
msgstr ""
-#: ipalib/plugins/internal.py:385
+#: ipalib/plugins/internal.py:412
msgid "One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:386
+#: ipalib/plugins/internal.py:413
msgid "One-Time-Password Not Present"
msgstr ""
-#: ipalib/plugins/internal.py:387
+#: ipalib/plugins/internal.py:414
msgid "One-Time-Password Present"
msgstr ""
-#: ipalib/plugins/internal.py:388
+#: ipalib/plugins/internal.py:415
msgid "Reset OTP"
msgstr ""
-#: ipalib/plugins/internal.py:389
+#: ipalib/plugins/internal.py:416
msgid "Reset One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:390
+#: ipalib/plugins/internal.py:417
msgid "Set OTP"
msgstr ""
-#: ipalib/plugins/internal.py:391
+#: ipalib/plugins/internal.py:418
msgid "Set One-Time-Password"
msgstr ""
-#: ipalib/plugins/internal.py:393 ipalib/plugins/internal.py:432
+#: ipalib/plugins/internal.py:420 ipalib/plugins/internal.py:467
msgid "Unprovision"
msgstr ""
-#: ipalib/plugins/internal.py:394
+#: ipalib/plugins/internal.py:421
msgid "Are you sure you want to unprovision this host?"
msgstr ""
-#: ipalib/plugins/internal.py:395 ipalib/plugins/internal.py:434
+#: ipalib/plugins/internal.py:422 ipalib/plugins/internal.py:469
msgid "Unprovisioning ${entity}"
msgstr ""
-#: ipalib/plugins/internal.py:398
+#: ipalib/plugins/internal.py:425
msgid "Host Group Settings"
msgstr ""
-#: ipalib/plugins/internal.py:401
-msgid "Kerberos ticket policy"
+#: ipalib/plugins/internal.py:428 ipalib/plugins/krbtpolicy.py:79
+#: ipalib/plugins/krbtpolicy.py:80
+msgid "Kerberos Ticket Policy"
msgstr ""
-#: ipalib/plugins/internal.py:404
+#: ipalib/plugins/internal.py:431
msgid "Netgroup Settings"
msgstr ""
-#: ipalib/plugins/internal.py:407 ipalib/plugins/internal.py:502
+#: ipalib/plugins/internal.py:434 ipalib/plugins/internal.py:550
msgid "Identity"
msgstr ""
-#: ipalib/plugins/internal.py:408
+#: ipalib/plugins/internal.py:435
msgid "Permission with invalid target specification"
msgstr ""
-#: ipalib/plugins/internal.py:410
-msgid "Target"
-msgstr ""
-
-#: ipalib/plugins/internal.py:413
+#: ipalib/plugins/internal.py:440
msgid "Privilege Settings"
msgstr ""
-#: ipalib/plugins/internal.py:416 ipalib/plugins/pwpolicy.py:221
+#: ipalib/plugins/internal.py:443 ipalib/plugins/pwpolicy.py:221
msgid "Password Policy"
msgstr ""
-#: ipalib/plugins/internal.py:419
+#: ipalib/plugins/internal.py:446
msgid "Role Settings"
msgstr ""
-#: ipalib/plugins/internal.py:424
+#: ipalib/plugins/internal.py:456 ipalib/plugins/pwpolicy.py:432
+#: ipalib/plugins/user.py:177
+msgid "User"
+msgstr ""
+
+#: ipalib/plugins/internal.py:459
msgid "Service Certificate"
msgstr ""
-#: ipalib/plugins/internal.py:426
+#: ipalib/plugins/internal.py:461
msgid "Service Settings"
msgstr ""
-#: ipalib/plugins/internal.py:429
+#: ipalib/plugins/internal.py:464
msgid "Provisioning"
msgstr ""
-#: ipalib/plugins/internal.py:433
+#: ipalib/plugins/internal.py:468
msgid "Are you sure you want to unprovision this service?"
msgstr ""
-#: ipalib/plugins/internal.py:435
+#: ipalib/plugins/internal.py:470
msgid "Kerberos Key Present, Service Provisioned"
msgstr ""
-#: ipalib/plugins/internal.py:438
+#: ipalib/plugins/internal.py:473
+msgid "SSH public keys"
+msgstr ""
+
+#: ipalib/plugins/internal.py:474
+msgid "Base-64 encoded SSH public key:"
+msgstr ""
+
+#: ipalib/plugins/internal.py:475
+msgid "Set SSH key"
+msgstr ""
+
+#: ipalib/plugins/internal.py:476
+msgid "Show/Set key"
+msgstr ""
+
+#: ipalib/plugins/internal.py:477
+msgid "Modified: key not set"
+msgstr ""
+
+#: ipalib/plugins/internal.py:478
+msgid "Modified"
+msgstr ""
+
+#: ipalib/plugins/internal.py:479
+msgid "New: key not set"
+msgstr ""
+
+#: ipalib/plugins/internal.py:480
+msgid "New: key set"
+msgstr ""
+
+#: ipalib/plugins/internal.py:483
msgid "Groups"
msgstr ""
-#: ipalib/plugins/internal.py:441 ipalib/plugins/sudocmdgroup.py:82
+#: ipalib/plugins/internal.py:486 ipalib/plugins/sudocmdgroup.py:82
msgid "Commands"
msgstr ""
-#: ipalib/plugins/internal.py:445
+#: ipalib/plugins/internal.py:489
msgid "Allow"
msgstr ""
-#: ipalib/plugins/internal.py:446
+#: ipalib/plugins/internal.py:490
msgid "Any Command"
msgstr ""
-#: ipalib/plugins/internal.py:447
+#: ipalib/plugins/internal.py:491
msgid "Any Group"
msgstr ""
-#: ipalib/plugins/internal.py:450
+#: ipalib/plugins/internal.py:494
msgid "Run Commands"
msgstr ""
-#: ipalib/plugins/internal.py:451
+#: ipalib/plugins/internal.py:495
msgid "Deny"
msgstr ""
-#: ipalib/plugins/internal.py:452
+#: ipalib/plugins/internal.py:496
msgid "External"
msgstr ""
-#: ipalib/plugins/internal.py:453
+#: ipalib/plugins/internal.py:497
msgid "Access this host"
msgstr ""
-#: ipalib/plugins/internal.py:456
+#: ipalib/plugins/internal.py:499
msgid "Options"
msgstr ""
-#: ipalib/plugins/internal.py:457
+#: ipalib/plugins/internal.py:500
msgid "As Whom"
msgstr ""
-#: ipalib/plugins/internal.py:458
+#: ipalib/plugins/internal.py:501
msgid "Specified Commands and Groups"
msgstr ""
-#: ipalib/plugins/internal.py:459
+#: ipalib/plugins/internal.py:502
msgid "Specified Groups"
msgstr ""
-#: ipalib/plugins/internal.py:465
+#: ipalib/plugins/internal.py:508
msgid "Account Settings"
msgstr ""
-#: ipalib/plugins/internal.py:466
+#: ipalib/plugins/internal.py:509
msgid "Account Status"
msgstr ""
-#: ipalib/plugins/internal.py:467
-msgid "Activate"
-msgstr ""
-
-#: ipalib/plugins/internal.py:468
-msgid ""
-"Are you sure you want to ${action} the user?<br/>The change will take effect "
-"immediately."
+#: ipalib/plugins/internal.py:510
+msgid "Contact Settings"
msgstr ""
-#: ipalib/plugins/internal.py:469
-msgid "Click to ${action}"
+#: ipalib/plugins/internal.py:511
+msgid "Employee Information"
msgstr ""
-#: ipalib/plugins/internal.py:471
-msgid "Contact Settings"
+#: ipalib/plugins/internal.py:512
+msgid "Error changing account status"
msgstr ""
-#: ipalib/plugins/internal.py:472
-msgid "Deactivate"
+#: ipalib/plugins/internal.py:513
+msgid "Password expiration"
msgstr ""
-#: ipalib/plugins/internal.py:473
-msgid "Employee Information"
+#: ipalib/plugins/internal.py:514
+msgid "Mailing Address"
msgstr ""
-#: ipalib/plugins/internal.py:474
-msgid "Error changing account status"
+#: ipalib/plugins/internal.py:515
+msgid "Misc. Information"
msgstr ""
-#: ipalib/plugins/internal.py:476
-msgid "Mailing Address"
+#: ipalib/plugins/internal.py:516
+msgid ""
+"Are you sure you want to ${action} the user?<br/>The change will take effect "
+"immediately."
msgstr ""
-#: ipalib/plugins/internal.py:477
-msgid "Misc. Information"
+#: ipalib/plugins/internal.py:517
+msgid "Click to ${action}"
msgstr ""
-#: ipalib/plugins/internal.py:481 ipalib/plugins/passwd.py:79
+#: ipalib/plugins/internal.py:521 ipalib/plugins/passwd.py:79
msgid "Current Password"
msgstr ""
-#: ipalib/plugins/internal.py:482
+#: ipalib/plugins/internal.py:522
msgid "Current password is required"
msgstr ""
-#: ipalib/plugins/internal.py:483 ipalib/plugins/passwd.py:76
+#: ipalib/plugins/internal.py:523 ipalib/plugins/passwd.py:76
msgid "New Password"
msgstr ""
-#: ipalib/plugins/internal.py:484
+#: ipalib/plugins/internal.py:524
msgid "Password change complete"
msgstr ""
-#: ipalib/plugins/internal.py:485
+#: ipalib/plugins/internal.py:525
msgid "Passwords must match"
msgstr ""
-#: ipalib/plugins/internal.py:486
+#: ipalib/plugins/internal.py:526
msgid "Reset Password"
msgstr ""
-#: ipalib/plugins/internal.py:487
+#: ipalib/plugins/internal.py:527
msgid "Verify Password"
msgstr ""
-#: ipalib/plugins/internal.py:490
+#: ipalib/plugins/internal.py:530
msgid "Are you sure you want to delete selected entries?"
msgstr ""
-#: ipalib/plugins/internal.py:491
+#: ipalib/plugins/internal.py:531
msgid "Some entries were not deleted"
msgstr ""
-#: ipalib/plugins/internal.py:492
+#: ipalib/plugins/internal.py:532
msgid "Quick Links"
msgstr ""
-#: ipalib/plugins/internal.py:493
+#: ipalib/plugins/internal.py:533
msgid "Select All"
msgstr ""
-#: ipalib/plugins/internal.py:494
+#: ipalib/plugins/internal.py:534
msgid ""
"Query returned more results than the configured size limit. Displaying the "
"first ${counter} results."
msgstr ""
-#: ipalib/plugins/internal.py:495
+#: ipalib/plugins/internal.py:535
msgid "Unselect All"
msgstr ""
-#: ipalib/plugins/internal.py:498
+#: ipalib/plugins/internal.py:538
+msgid "Disable"
+msgstr ""
+
+#: ipalib/plugins/internal.py:539
+msgid "Disabled"
+msgstr ""
+
+#: ipalib/plugins/internal.py:540
+msgid "Enable"
+msgstr ""
+
+#: ipalib/plugins/internal.py:545
msgid "Audit"
msgstr ""
-#: ipalib/plugins/internal.py:499
+#: ipalib/plugins/internal.py:546
+msgid "Automember"
+msgstr ""
+
+#: ipalib/plugins/internal.py:547
msgid "Automount"
msgstr ""
-#: ipalib/plugins/internal.py:500
+#: ipalib/plugins/internal.py:548
msgid "DNS"
msgstr ""
-#: ipalib/plugins/internal.py:501
+#: ipalib/plugins/internal.py:549
msgid "Host Based Access Control"
msgstr ""
-#: ipalib/plugins/internal.py:503
+#: ipalib/plugins/internal.py:551
msgid "IPA Server"
msgstr ""
-#: ipalib/plugins/internal.py:504
+#: ipalib/plugins/internal.py:552
msgid "Policy"
msgstr ""
-#: ipalib/plugins/internal.py:505
+#: ipalib/plugins/internal.py:553
msgid "Role Based Access Control"
msgstr ""
-#: ipalib/plugins/internal.py:506
+#: ipalib/plugins/internal.py:554
msgid "Sudo"
msgstr ""
-#: ipalib/plugins/internal.py:508
+#: ipalib/plugins/internal.py:556
msgid "True"
msgstr ""
-#: ipalib/plugins/internal.py:510
+#: ipalib/plugins/internal.py:558
msgid "Next"
msgstr ""
-#: ipalib/plugins/internal.py:511
+#: ipalib/plugins/internal.py:559
msgid "Page"
msgstr ""
-#: ipalib/plugins/internal.py:512
+#: ipalib/plugins/internal.py:560
msgid "Prev"
msgstr ""
-#: ipalib/plugins/internal.py:513
+#: ipalib/plugins/internal.py:561
msgid "undo"
msgstr ""
-#: ipalib/plugins/internal.py:514
+#: ipalib/plugins/internal.py:562
msgid "undo all"
msgstr ""
-#: ipalib/plugins/internal.py:516
+#: ipalib/plugins/internal.py:564
msgid "Text does not match field pattern"
msgstr ""
-#: ipalib/plugins/internal.py:517
+#: ipalib/plugins/internal.py:565
msgid "Must be an integer"
msgstr ""
-#: ipalib/plugins/internal.py:518
+#: ipalib/plugins/internal.py:566
+msgid "Not a valid IP address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:567
+msgid "Not a valid IPv4 address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:568
+msgid "Not a valid IPv6 address"
+msgstr ""
+
+#: ipalib/plugins/internal.py:569
msgid "Maximum value is ${value}"
msgstr ""
-#: ipalib/plugins/internal.py:519
+#: ipalib/plugins/internal.py:570
msgid "Minimum value is ${value}"
msgstr ""
-#: ipalib/plugins/internal.py:520
+#: ipalib/plugins/internal.py:571
msgid "Required field"
msgstr ""
-#: ipalib/plugins/internal.py:525
+#: ipalib/plugins/internal.py:576
msgid "Dict of I18N messages"
msgstr ""
@@ -5272,10 +5742,6 @@ msgstr ""
msgid "kerberos ticket policy settings"
msgstr ""
-#: ipalib/plugins/krbtpolicy.py:79 ipalib/plugins/krbtpolicy.py:80
-msgid "Kerberos Ticket Policy"
-msgstr ""
-
#: ipalib/plugins/krbtpolicy.py:86
msgid "Manage ticket policy for specific user"
msgstr ""
@@ -5346,204 +5812,212 @@ msgid ""
" The simplest migration, accepting all defaults:\n"
" ipa migrate-ds ldap://ds.example.com:389\n"
"\n"
-" Specify the user and group container. This can be used to migrate user and\n"
-" group data from an IPA v1 server:\n"
-" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-"
-"container='cn=groups,cn=accounts' ldap://ds.example.com:389\n"
+" Specify the user and group container. This can be used to migrate user\n"
+" and group data from an IPA v1 server:\n"
+" ipa migrate-ds --user-container='cn=users,cn=accounts' \\\n"
+" --group-container='cn=groups,cn=accounts' \\\n"
+" ldap://ds.example.com:389\n"
"\n"
" Since IPA v2 server already contain predefined groups that may collide "
"with\n"
-" groups in migrated (IPA v1) server (for example admins, ipausers), users "
-"having\n"
-" colliding group as their primary group may happen to belong to an unknown "
-"group\n"
-" on new IPA v2 server.\n"
+" groups in migrated (IPA v1) server (for example admins, ipausers), users\n"
+" having colliding group as their primary group may happen to belong to\n"
+" an unknown group on new IPA v2 server.\n"
" Use --group-overwrite-gid option to overwrite GID of already existing "
"groups\n"
" to prevent this issue:\n"
-" ipa migrate-ds --group-overwrite-gid --user-container='cn=users,"
-"cn=accounts' --group-container='cn=groups,cn=accounts' ldap://ds.example."
-"com:389\n"
+" ipa migrate-ds --group-overwrite-gid \\\n"
+" --user-container='cn=users,cn=accounts' \\\n"
+" --group-container='cn=groups,cn=accounts' \\\n"
+" ldap://ds.example.com:389\n"
"\n"
+" Migrated users or groups may have object class and accompanied attributes\n"
+" unknown to the IPA v2 server. These object classes and attributes may be\n"
+" left out of the migration process:\n"
+" ipa migrate-ds --user-container='cn=users,cn=accounts' \\\n"
+" --group-container='cn=groups,cn=accounts' \\\n"
+" --user-ignore-objectclass=radiusprofile \\\n"
+" --user-ignore-attribute=radiusgroupname \\\n"
+" ldap://ds.example.com:389\n"
msgstr ""
-#: ipalib/plugins/migration.py:86
+#: ipalib/plugins/migration.py:99
#, python-format
msgid ""
"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually."
msgstr ""
-#: ipalib/plugins/migration.py:87
+#: ipalib/plugins/migration.py:100
msgid ""
"Failed to add user to the default group. Use 'ipa group-add-member' to add "
"manually."
msgstr ""
-#: ipalib/plugins/migration.py:88
+#: ipalib/plugins/migration.py:101
msgid "Migration of LDAP search reference is not supported."
msgstr ""
-#: ipalib/plugins/migration.py:89
+#: ipalib/plugins/migration.py:102
msgid "Malformed DN"
msgstr ""
-#: ipalib/plugins/migration.py:255
+#: ipalib/plugins/migration.py:268
msgid ""
". Check GID of the existing group. Use --group-overwrite-gid option to "
"overwrite the GID"
msgstr ""
-#: ipalib/plugins/migration.py:270
+#: ipalib/plugins/migration.py:283
msgid "Invalid LDAP URI."
msgstr ""
-#: ipalib/plugins/migration.py:275
+#: ipalib/plugins/migration.py:288
msgid "Migrate users and groups from DS to IPA."
msgstr ""
-#: ipalib/plugins/migration.py:322
+#: ipalib/plugins/migration.py:335
msgid "LDAP URI"
msgstr ""
-#: ipalib/plugins/migration.py:323
+#: ipalib/plugins/migration.py:336
msgid "LDAP URI of DS server to migrate from"
msgstr ""
-#: ipalib/plugins/migration.py:329
+#: ipalib/plugins/migration.py:342
msgid "bind password"
msgstr ""
-#: ipalib/plugins/migration.py:336
+#: ipalib/plugins/migration.py:349
msgid "Bind DN"
msgstr ""
-#: ipalib/plugins/migration.py:342
+#: ipalib/plugins/migration.py:355
msgid "User container"
msgstr ""
-#: ipalib/plugins/migration.py:343
+#: ipalib/plugins/migration.py:356
msgid "RDN of container for users in DS"
msgstr ""
-#: ipalib/plugins/migration.py:349
+#: ipalib/plugins/migration.py:362
msgid "Group container"
msgstr ""
-#: ipalib/plugins/migration.py:350
+#: ipalib/plugins/migration.py:363
msgid "RDN of container for groups in DS"
msgstr ""
-#: ipalib/plugins/migration.py:356
+#: ipalib/plugins/migration.py:369
msgid "User object class"
msgstr ""
-#: ipalib/plugins/migration.py:357
+#: ipalib/plugins/migration.py:370
msgid ""
"Comma-separated list of objectclasses used to search for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:364
+#: ipalib/plugins/migration.py:377
msgid "Group object class"
msgstr ""
-#: ipalib/plugins/migration.py:365
+#: ipalib/plugins/migration.py:378
msgid ""
"Comma-separated list of objectclasses used to search for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:372
+#: ipalib/plugins/migration.py:385
msgid "Ignore user object class"
msgstr ""
-#: ipalib/plugins/migration.py:373
+#: ipalib/plugins/migration.py:386
msgid ""
"Comma-separated list of objectclasses to be ignored for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:380
+#: ipalib/plugins/migration.py:393
msgid "Ignore user attribute"
msgstr ""
-#: ipalib/plugins/migration.py:381
+#: ipalib/plugins/migration.py:394
msgid "Comma-separated list of attributes to be ignored for user entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:388
+#: ipalib/plugins/migration.py:401
msgid "Ignore group object class"
msgstr ""
-#: ipalib/plugins/migration.py:389
+#: ipalib/plugins/migration.py:402
msgid ""
"Comma-separated list of objectclasses to be ignored for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:396
+#: ipalib/plugins/migration.py:409
msgid "Ignore group attribute"
msgstr ""
-#: ipalib/plugins/migration.py:397
+#: ipalib/plugins/migration.py:410
msgid ""
"Comma-separated list of attributes to be ignored for group entries in DS"
msgstr ""
-#: ipalib/plugins/migration.py:404
+#: ipalib/plugins/migration.py:417
msgid "Overwrite GID"
msgstr ""
-#: ipalib/plugins/migration.py:405
+#: ipalib/plugins/migration.py:418
msgid ""
"When migrating a group already existing in IPA domain overwrite the group "
"GID and report as success"
msgstr ""
-#: ipalib/plugins/migration.py:410
+#: ipalib/plugins/migration.py:423
msgid "LDAP schema"
msgstr ""
-#: ipalib/plugins/migration.py:411
+#: ipalib/plugins/migration.py:424
msgid ""
"The schema used on the LDAP server. Supported values are RFC2307 and "
"RFC2307bis. The default is RFC2307bis"
msgstr ""
-#: ipalib/plugins/migration.py:417
+#: ipalib/plugins/migration.py:430
msgid "Continue"
msgstr ""
-#: ipalib/plugins/migration.py:418
+#: ipalib/plugins/migration.py:431
msgid ""
"Continuous operation mode. Errors are reported but the process continues"
msgstr ""
-#: ipalib/plugins/migration.py:426
+#: ipalib/plugins/migration.py:439
msgid "Lists of objects migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:430
+#: ipalib/plugins/migration.py:443
msgid "Lists of objects that could not be migrated; categorized by type."
msgstr ""
-#: ipalib/plugins/migration.py:434
+#: ipalib/plugins/migration.py:447
msgid "False if migration mode was disabled."
msgstr ""
-#: ipalib/plugins/migration.py:438
+#: ipalib/plugins/migration.py:451
#, python-format
msgid "comma-separated list of %s to exclude from migration"
msgstr ""
-#: ipalib/plugins/migration.py:440
+#: ipalib/plugins/migration.py:453
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:445
+#: ipalib/plugins/migration.py:458
msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it."
msgstr ""
-#: ipalib/plugins/migration.py:448
+#: ipalib/plugins/migration.py:461
msgid ""
"Passwords have been migrated in pre-hashed format.\n"
"IPA is unable to generate Kerberos keys unless provided\n"
@@ -5552,7 +6026,7 @@ msgid ""
"can use their Kerberos accounts."
msgstr ""
-#: ipalib/plugins/migration.py:523
+#: ipalib/plugins/migration.py:536
#, python-format
msgid "Container for %(container)s not found"
msgstr ""
@@ -5671,55 +6145,55 @@ msgstr ""
msgid "Added netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:162
+#: ipalib/plugins/netgroup.py:147
#, python-format
msgid ""
"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a "
"common namespace"
msgstr ""
-#: ipalib/plugins/netgroup.py:174
+#: ipalib/plugins/netgroup.py:178
msgid "Delete a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:176
+#: ipalib/plugins/netgroup.py:180
#, python-format
msgid "Deleted netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:182
+#: ipalib/plugins/netgroup.py:186
msgid "Modify a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:185
+#: ipalib/plugins/netgroup.py:189
#, python-format
msgid "Modified netgroup \"%(value)s\""
msgstr ""
-#: ipalib/plugins/netgroup.py:199
+#: ipalib/plugins/netgroup.py:203
msgid "Search for a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:204
+#: ipalib/plugins/netgroup.py:208
#, python-format
msgid "%(count)d netgroup matched"
msgid_plural "%(count)d netgroups matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/netgroup.py:214
+#: ipalib/plugins/netgroup.py:218
msgid "search for managed groups"
msgstr ""
-#: ipalib/plugins/netgroup.py:236
+#: ipalib/plugins/netgroup.py:240
msgid "Display information about a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:244
+#: ipalib/plugins/netgroup.py:248
msgid "Add members to a netgroup."
msgstr ""
-#: ipalib/plugins/netgroup.py:279
+#: ipalib/plugins/netgroup.py:259
msgid "Remove members from a netgroup."
msgstr ""
@@ -5815,93 +6289,118 @@ msgstr ""
msgid "Permission Type"
msgstr ""
-#: ipalib/plugins/permission.py:94
+#: ipalib/plugins/permission.py:97
msgid "permission"
msgstr ""
-#: ipalib/plugins/permission.py:95
+#: ipalib/plugins/permission.py:98
msgid "permissions"
msgstr ""
-#: ipalib/plugins/permission.py:114
+#: ipalib/plugins/permission.py:117
msgid "Permission name"
msgstr ""
-#: ipalib/plugins/permission.py:120
+#: ipalib/plugins/permission.py:123
msgid ""
"Comma-separated list of permissions to grant (read, write, add, delete, all)"
msgstr ""
-#: ipalib/plugins/permission.py:135
+#: ipalib/plugins/permission.py:138
msgid ""
"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)"
msgstr ""
-#: ipalib/plugins/permission.py:141
+#: ipalib/plugins/permission.py:144
msgid "Member of group"
msgstr ""
-#: ipalib/plugins/permission.py:142
+#: ipalib/plugins/permission.py:145
msgid "Target members of a group"
msgstr ""
-#: ipalib/plugins/permission.py:154
+#: ipalib/plugins/permission.py:157
msgid "Subtree to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:160
+#: ipalib/plugins/permission.py:163
msgid "User group to apply permissions to"
msgstr ""
-#: ipalib/plugins/permission.py:180
+#: ipalib/plugins/permission.py:183
msgid "Add a new permission."
msgstr ""
-#: ipalib/plugins/permission.py:182
+#: ipalib/plugins/permission.py:185
#, python-format
msgid "Added permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:237
+#: ipalib/plugins/permission.py:241
msgid "Delete a permission."
msgstr ""
-#: ipalib/plugins/permission.py:239
+#: ipalib/plugins/permission.py:243
#, python-format
msgid "Deleted permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:255
+#: ipalib/plugins/permission.py:259
msgid "Modify a permission."
msgstr ""
-#: ipalib/plugins/permission.py:257
+#: ipalib/plugins/permission.py:261
#, python-format
msgid "Modified permission \"%(value)s\""
msgstr ""
-#: ipalib/plugins/permission.py:349
+#: ipalib/plugins/permission.py:353
msgid "Search for permissions."
msgstr ""
-#: ipalib/plugins/permission.py:352
+#: ipalib/plugins/permission.py:356
#, python-format
msgid "%(count)d permission matched"
msgid_plural "%(count)d permissions matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/permission.py:402
+#: ipalib/plugins/permission.py:408
msgid "Display information about a permission."
msgstr ""
#: ipalib/plugins/ping.py:26
msgid ""
"\n"
-"Ping the remote IPA server\n"
+"Ping the remote IPA server to ensure it is running.\n"
+"\n"
+"The ping command sends an echo request to an IPA server. The server\n"
+"returns its version information. This is used by an IPA client\n"
+"to confirm that the server is available and accepting requests.\n"
+"\n"
+"The server from xmlrpc_uri in /etc/ipa/default.conf is contacted first.\n"
+"If it does not respond then the client will contact any servers defined\n"
+"by ldap SRV records in DNS.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Ping an IPA server:\n"
+" ipa ping\n"
+" ------------------------------------------\n"
+" IPA server version 2.1.9. API version 2.20\n"
+" ------------------------------------------\n"
+"\n"
+" Ping an IPA server verbosely:\n"
+" ipa -v ping\n"
+" ipa: INFO: trying https://ipa.example.com/ipa/xml\n"
+" ipa: INFO: Forwarding 'ping' to server u'https://ipa.example.com/ipa/"
+"xml'\n"
+" -----------------------------------------------------\n"
+" IPA server version 2.1.9. API version 2.20\n"
+" -----------------------------------------------------\n"
msgstr ""
-#: ipalib/plugins/ping.py:31
+#: ipalib/plugins/ping.py:55
msgid "Ping a remote server."
msgstr ""
@@ -6183,10 +6682,6 @@ msgstr ""
msgid "Minimum length of password"
msgstr ""
-#: ipalib/plugins/pwpolicy.py:263
-msgid "Priority"
-msgstr ""
-
#: ipalib/plugins/pwpolicy.py:264
msgid "Priority of the policy (higher number means lower priority"
msgstr ""
@@ -6219,10 +6714,6 @@ msgstr ""
msgid "Display information about password policy."
msgstr ""
-#: ipalib/plugins/pwpolicy.py:432 ipalib/plugins/user.py:169
-msgid "User"
-msgstr ""
-
#: ipalib/plugins/pwpolicy.py:433
msgid "Display effective policy for a specific user"
msgstr ""
@@ -6256,7 +6747,8 @@ msgid ""
" Add some privileges to this role:\n"
" ipa role-add-privilege --privileges=addusers junioradmin\n"
" ipa role-add-privilege --privileges=change_password junioradmin\n"
-" ipa role-add-privilege --privileges=add_user_to_default_group juioradmin\n"
+" ipa role-add-privilege --privileges=add_user_to_default_group "
+"junioradmin\n"
"\n"
" Add a group of users to this role:\n"
" ipa group-add --desc=\"User admins\" useradmins\n"
@@ -6265,7 +6757,7 @@ msgid ""
" Display information about a role:\n"
" ipa role-show junioradmin\n"
"\n"
-" The result of this is that any users in the group 'useradmins' can\n"
+" The result of this is that any users in the group 'junioradmin' can\n"
" add users, reset passwords or add a user to the default IPA user group.\n"
msgstr ""
@@ -6355,7 +6847,7 @@ msgstr ""
msgid "Number of privileges removed"
msgstr ""
-#: ipalib/plugins/selfservice.py:28
+#: ipalib/plugins/selfservice.py:29
msgid ""
"\n"
"Self-service Permissions\n"
@@ -6386,73 +6878,250 @@ msgid ""
" ipa selfservice-del \"Users manage their own address\"\n"
msgstr ""
-#: ipalib/plugins/selfservice.py:65
-#, python-format
-msgid "Self-service permission '%(permission)s' not found"
-msgstr ""
-
-#: ipalib/plugins/selfservice.py:74
+#: ipalib/plugins/selfservice.py:69
msgid "self service permission"
msgstr ""
-#: ipalib/plugins/selfservice.py:75
+#: ipalib/plugins/selfservice.py:70
msgid "self service permissions"
msgstr ""
-#: ipalib/plugins/selfservice.py:76
+#: ipalib/plugins/selfservice.py:71
msgid "Self Service Permissions"
msgstr ""
-#: ipalib/plugins/selfservice.py:77
+#: ipalib/plugins/selfservice.py:72
msgid "Self Service Permission"
msgstr ""
-#: ipalib/plugins/selfservice.py:82 ipalib/plugins/selfservice.py:83
+#: ipalib/plugins/selfservice.py:77 ipalib/plugins/selfservice.py:78
msgid "Self-service name"
msgstr ""
-#: ipalib/plugins/selfservice.py:118
+#: ipalib/plugins/selfservice.py:120
msgid "Add a new self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:120
+#: ipalib/plugins/selfservice.py:122
#, python-format
msgid "Added selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:139
+#: ipalib/plugins/selfservice.py:142
msgid "Delete a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:142
+#: ipalib/plugins/selfservice.py:145
#, python-format
msgid "Deleted selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:158
+#: ipalib/plugins/selfservice.py:161
msgid "Modify a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:160
+#: ipalib/plugins/selfservice.py:163
#, python-format
msgid "Modified selfservice \"%(value)s\""
msgstr ""
-#: ipalib/plugins/selfservice.py:179
+#: ipalib/plugins/selfservice.py:183
msgid "Search for a self-service permission."
msgstr ""
-#: ipalib/plugins/selfservice.py:182
+#: ipalib/plugins/selfservice.py:186
#, python-format
msgid "%(count)d selfservice matched"
msgid_plural "%(count)d selfservices matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/selfservice.py:203
+#: ipalib/plugins/selfservice.py:210
msgid "Display information about a self-service permission."
msgstr ""
+#: ipalib/plugins/selinuxusermap.py:26
+msgid ""
+"\n"
+"SELinux User Mapping\n"
+"\n"
+"Map IPA users to SELinux users by host.\n"
+"\n"
+"Hosts, hostgroups, users and groups can be either defined within\n"
+"the rule or it may point to an existing HBAC rule. When using\n"
+"--hbacrule option to selinuxusermap-find an exact match is made on the\n"
+"HBAC rule name, so only one or zero entries will be returned.\n"
+"\n"
+"EXAMPLES:\n"
+"\n"
+" Create a rule, \"test1\", that sets all users to xguest_u:s0 on the host "
+"\"server\":\n"
+" ipa selinuxusermap-add --usercat=all --selinuxuser=xguest_u:s0 test1\n"
+" ipa selinuxusermap-add-host --hosts=server.example.com test1\n"
+"\n"
+" Create a rule, \"test2\", that sets all users to guest_u:s0 and uses an "
+"existing HBAC rule for users and hosts:\n"
+" ipa selinuxusermap-add --usercat=all --hbacrule=webserver --"
+"selinuxuser=guest_u:s0 test1\n"
+"\n"
+" Display the properties of a named HBAC rule:\n"
+" ipa selinuxusermap-show test1\n"
+"\n"
+" Create a rule for a specific user. This sets the SELinux context for\n"
+" user john to unconfined_u:s0-s0:c0.c1023 on any machine:\n"
+" ipa selinuxusermap-add --hostcat=all --selinuxuser=unconfined_u:s0-s0:c0."
+"c1023 john_unconfined\n"
+" ipa selinuxusermap-add-user --users=john john_unconfined\n"
+"\n"
+" Disable a named rule:\n"
+" ipa selinuxusermap-disable test1\n"
+"\n"
+" Enable a named rule:\n"
+" ipa selinuxusermap-enable test1\n"
+"\n"
+" Find a rule referencing a specific HBAC rule:\n"
+" ipa selinuxusermap-find --hbacrule=allow_some\n"
+"\n"
+" Remove a named rule:\n"
+" ipa selinuxusermap-del john_unconfined\n"
+"\n"
+"SEEALSO:\n"
+"\n"
+" The list controlling the order in which the SELinux user map is applied\n"
+" and the default SELinux user are available in the config-show commond.\n"
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:71
+msgid "HBAC rule and local members cannot both be set"
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:94
+msgid "Invalid SELinux user name, only a-Z and _ are allowed"
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:96
+msgid "Invalid MLS value, must match s[0-15](-s[0-15])"
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:98
+msgid ""
+"Invalid MCS value, must match c[0-1023].c[0-1023] and/or c[0-1023]-c[0-c0123]"
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:111
+msgid "SELinux user map list not found in configuration"
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:114
+#, python-format
+msgid "SELinux user %(user)s not found in ordering list (in config)"
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:123
+msgid "SELinux User Map rule"
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:124
+msgid "SELinux User Map rules"
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:141
+msgid "SELinux User Maps"
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:142
+msgid "SELinux User Map"
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:152
+msgid "SELinux User"
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:157
+msgid "HBAC Rule that defines the users, groups and hostgroups"
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:213
+#, python-format
+msgid "HBAC rule %(rule)s not found"
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:232
+msgid "Create a new SELinux User Map."
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:234
+#, python-format
+msgid "Added SELinux User Map \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:254
+msgid "Delete a SELinux User Map."
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:256
+#, python-format
+msgid "Deleted SELinux User Map \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:262
+msgid "Modify a SELinux User Map."
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:264
+#, python-format
+msgid "Modified SELinux User Map \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:298
+msgid "Search for SELinux User Maps."
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:301
+#, python-format
+msgid "%(count)d SELinux User Map matched"
+msgid_plural "%(count)d SELinux User Maps matched"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipalib/plugins/selinuxusermap.py:330
+msgid "Display the properties of a SELinux User Map rule."
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:340
+msgid "Enable an SELinux User Map rule."
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:342
+#, python-format
+msgid "Enabled SELinux User Map \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:367
+msgid "Disable an SELinux User Map rule."
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:369
+#, python-format
+msgid "Disabled SELinux User Map \"%(value)s\""
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:394
+msgid "Add users and groups to an SELinux User Map rule."
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:415
+msgid "Remove users and groups from an SELinux User Map rule."
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:424
+msgid "Add target hosts and hostgroups to an SELinux User Map rule."
+msgstr ""
+
+#: ipalib/plugins/selinuxusermap.py:445
+msgid "Remove target hosts and hostgroups from an SELinux User Map rule."
+msgstr ""
+
#: ipalib/plugins/service.py:35
msgid ""
"\n"
@@ -6753,7 +7422,7 @@ msgstr ""
msgid "Remove members from Sudo Command Group."
msgstr ""
-#: ipalib/plugins/sudorule.py:25
+#: ipalib/plugins/sudorule.py:26
msgid ""
"\n"
"Sudo Rules\n"
@@ -6785,242 +7454,295 @@ msgid ""
"For more information, see the FreeIPA Documentation to Sudo.\n"
msgstr ""
-#: ipalib/plugins/sudorule.py:53
+#: ipalib/plugins/sudorule.py:54
msgid "Commands for controlling sudo configuration"
msgstr ""
-#: ipalib/plugins/sudorule.py:56
+#: ipalib/plugins/sudorule.py:57
msgid "this option has been deprecated."
msgstr ""
-#: ipalib/plugins/sudorule.py:72
+#: ipalib/plugins/sudorule.py:73
msgid "sudo rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:73
+#: ipalib/plugins/sudorule.py:74
msgid "sudo rules"
msgstr ""
-#: ipalib/plugins/sudorule.py:92
+#: ipalib/plugins/sudorule.py:95
msgid "Sudo Rules"
msgstr ""
-#: ipalib/plugins/sudorule.py:93
+#: ipalib/plugins/sudorule.py:96
msgid "Sudo Rule"
msgstr ""
-#: ipalib/plugins/sudorule.py:123
+#: ipalib/plugins/sudorule.py:126
msgid "Command category"
msgstr ""
-#: ipalib/plugins/sudorule.py:124
+#: ipalib/plugins/sudorule.py:127
msgid "Command category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:129
+#: ipalib/plugins/sudorule.py:132
msgid "RunAs User category"
msgstr ""
-#: ipalib/plugins/sudorule.py:130
+#: ipalib/plugins/sudorule.py:133
msgid "RunAs User category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:135
+#: ipalib/plugins/sudorule.py:138
msgid "RunAs Group category"
msgstr ""
-#: ipalib/plugins/sudorule.py:136
+#: ipalib/plugins/sudorule.py:139
msgid "RunAs Group category the rule applies to"
msgstr ""
-#: ipalib/plugins/sudorule.py:156
+#: ipalib/plugins/sudorule.py:159
msgid "Sudo Allow Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:160
+#: ipalib/plugins/sudorule.py:163
msgid "Sudo Deny Commands"
msgstr ""
-#: ipalib/plugins/sudorule.py:164
+#: ipalib/plugins/sudorule.py:167
msgid "Sudo Allow Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:168
+#: ipalib/plugins/sudorule.py:171
msgid "Sudo Deny Command Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:172
+#: ipalib/plugins/sudorule.py:175
msgid "RunAs Users"
msgstr ""
-#: ipalib/plugins/sudorule.py:173
+#: ipalib/plugins/sudorule.py:176
msgid "Run as a user"
msgstr ""
-#: ipalib/plugins/sudorule.py:177
+#: ipalib/plugins/sudorule.py:180
msgid "Groups of RunAs Users"
msgstr ""
-#: ipalib/plugins/sudorule.py:178
+#: ipalib/plugins/sudorule.py:181
msgid "Run as any user within a specified group"
msgstr ""
-#: ipalib/plugins/sudorule.py:183
+#: ipalib/plugins/sudorule.py:186
msgid "External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:184
+#: ipalib/plugins/sudorule.py:187
msgid "External User the rule applies to (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:188
+#: ipalib/plugins/sudorule.py:191
msgid "RunAs External User"
msgstr ""
-#: ipalib/plugins/sudorule.py:189
+#: ipalib/plugins/sudorule.py:192
msgid "External User the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:193
+#: ipalib/plugins/sudorule.py:196
msgid "RunAs External Group"
msgstr ""
-#: ipalib/plugins/sudorule.py:194
+#: ipalib/plugins/sudorule.py:197
msgid "External Group the commands can run as (sudorule-find only)"
msgstr ""
-#: ipalib/plugins/sudorule.py:197 ipalib/plugins/sudorule.py:618
-#: ipalib/plugins/sudorule.py:670
+#: ipalib/plugins/sudorule.py:200 ipalib/plugins/sudorule.py:553
+#: ipalib/plugins/sudorule.py:605
msgid "Sudo Option"
msgstr ""
-#: ipalib/plugins/sudorule.py:201
+#: ipalib/plugins/sudorule.py:204
msgid "RunAs Groups"
msgstr ""
-#: ipalib/plugins/sudorule.py:202
+#: ipalib/plugins/sudorule.py:205
msgid "Run with the gid of a specified POSIX group"
msgstr ""
-#: ipalib/plugins/sudorule.py:211
+#: ipalib/plugins/sudorule.py:214
msgid "Create new Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:218
+#: ipalib/plugins/sudorule.py:221
#, python-format
msgid "Added Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:224
+#: ipalib/plugins/sudorule.py:227
msgid "Delete Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:226
+#: ipalib/plugins/sudorule.py:229
#, python-format
msgid "Deleted Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:232
+#: ipalib/plugins/sudorule.py:235
msgid "Modify Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:234
+#: ipalib/plugins/sudorule.py:237
#, python-format
msgid "Modified Sudo Rule \"%(value)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:240
+#: ipalib/plugins/sudorule.py:245
+msgid "user category cannot be set to 'all' while there are users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:247
+msgid "host category cannot be set to 'all' while there are hosts"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:250
+msgid ""
+"command category cannot be set to 'all' while there are allow or deny "
+"commands"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:252
+msgid "user runAs category cannot be set to 'all' while there are users"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:254
+msgid "group runAs category cannot be set to 'all' while there are groups"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:262
msgid "Search for Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:243
+#: ipalib/plugins/sudorule.py:265
#, python-format
msgid "%(count)d Sudo Rule matched"
msgid_plural "%(count)d Sudo Rules matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/sudorule.py:250
+#: ipalib/plugins/sudorule.py:272
msgid "Display Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:256
+#: ipalib/plugins/sudorule.py:278
msgid "Enable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:274
+#: ipalib/plugins/sudorule.py:296
#, python-format
msgid "Enabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:280
+#: ipalib/plugins/sudorule.py:302
msgid "Disable a Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:298
+#: ipalib/plugins/sudorule.py:320
#, python-format
msgid "Disabled Sudo Rule \"%s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:304 ipalib/plugins/sudorule.py:322
+#: ipalib/plugins/sudorule.py:326 ipalib/plugins/sudorule.py:354
msgid "Add commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:313 ipalib/plugins/sudorule.py:331
+#: ipalib/plugins/sudorule.py:337 ipalib/plugins/sudorule.py:365
+msgid "commands cannot be added when command category='all'"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:345 ipalib/plugins/sudorule.py:372
msgid "Remove commands and sudo command groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:340
+#: ipalib/plugins/sudorule.py:381
msgid "Add users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:375
+#: ipalib/plugins/sudorule.py:392
+msgid "users cannot be added when user category='all'"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:402
msgid "Remove users and groups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:408
+#: ipalib/plugins/sudorule.py:414
msgid "Add hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:443
+#: ipalib/plugins/sudorule.py:425
+msgid "hosts cannot be added when host category='all'"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:435
msgid "Remove hosts and hostgroups affected by Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:477
+#: ipalib/plugins/sudorule.py:446
msgid "Add users and groups for Sudo to execute as."
msgstr ""
-#: ipalib/plugins/sudorule.py:512
+#: ipalib/plugins/sudorule.py:464 ipalib/plugins/sudorule.py:518
+msgid "users cannot be added when runAs user or runAs group category='all'"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:470
+#, python-format
+msgid "RunAsUser does not accept '%(name)s' as a user name"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:476
+#, python-format
+msgid "RunAsUser does not accept '%(name)s' as a group name"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:488
msgid "Remove users and groups for Sudo to execute as."
msgstr ""
-#: ipalib/plugins/sudorule.py:545
+#: ipalib/plugins/sudorule.py:500
msgid "Add group for Sudo to execute as."
msgstr ""
-#: ipalib/plugins/sudorule.py:580
+#: ipalib/plugins/sudorule.py:524
+#, python-format
+msgid "RunAsGroup does not accept '%(name)s' as a group name"
+msgstr ""
+
+#: ipalib/plugins/sudorule.py:536
msgid "Remove group for Sudo to execute as."
msgstr ""
-#: ipalib/plugins/sudorule.py:613
+#: ipalib/plugins/sudorule.py:548
msgid "Add an option to the Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:655
+#: ipalib/plugins/sudorule.py:590
#, python-format
-msgid "Added option \"%s\" to Sudo Rule \"%s\""
+msgid "Added option \"%(option)s\" to Sudo Rule \"%(rule)s\""
msgstr ""
-#: ipalib/plugins/sudorule.py:665
+#: ipalib/plugins/sudorule.py:600
msgid "Remove an option from Sudo Rule."
msgstr ""
-#: ipalib/plugins/sudorule.py:710
+#: ipalib/plugins/sudorule.py:645
#, python-format
-msgid "Removed option \"%s\" from Sudo Rule \"%s\""
+msgid "Removed option \"%(option)s\" from Sudo Rule \"%(rule)s\""
msgstr ""
-#: ipalib/plugins/user.py:29
+#: ipalib/plugins/user.py:34
msgid ""
"\n"
"Users\n"
@@ -7062,213 +7784,217 @@ msgid ""
" ipa user-del tuser1\n"
msgstr ""
-#: ipalib/plugins/user.py:73
+#: ipalib/plugins/user.py:78
msgid "Kerberos keys available"
msgstr ""
-#: ipalib/plugins/user.py:140
+#: ipalib/plugins/user.py:148
msgid "user"
msgstr ""
-#: ipalib/plugins/user.py:141
+#: ipalib/plugins/user.py:149
msgid "users"
msgstr ""
-#: ipalib/plugins/user.py:177
+#: ipalib/plugins/user.py:185
msgid "User login"
msgstr ""
-#: ipalib/plugins/user.py:184
+#: ipalib/plugins/user.py:192
msgid "First name"
msgstr ""
-#: ipalib/plugins/user.py:188
+#: ipalib/plugins/user.py:196
msgid "Last name"
msgstr ""
-#: ipalib/plugins/user.py:191
+#: ipalib/plugins/user.py:199
msgid "Full name"
msgstr ""
-#: ipalib/plugins/user.py:196
+#: ipalib/plugins/user.py:204
msgid "Display name"
msgstr ""
-#: ipalib/plugins/user.py:201
+#: ipalib/plugins/user.py:209
msgid "Initials"
msgstr ""
-#: ipalib/plugins/user.py:207
+#: ipalib/plugins/user.py:215
msgid "Home directory"
msgstr ""
-#: ipalib/plugins/user.py:212
+#: ipalib/plugins/user.py:218
msgid "GECOS field"
msgstr ""
-#: ipalib/plugins/user.py:218
+#: ipalib/plugins/user.py:224
msgid "Login shell"
msgstr ""
-#: ipalib/plugins/user.py:223
+#: ipalib/plugins/user.py:228
msgid "Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:231
+#: ipalib/plugins/user.py:236
msgid "Email address"
msgstr ""
-#: ipalib/plugins/user.py:236
+#: ipalib/plugins/user.py:241
msgid "Prompt to set the user password"
msgstr ""
-#: ipalib/plugins/user.py:243
+#: ipalib/plugins/user.py:247
+msgid "Generate a random user password"
+msgstr ""
+
+#: ipalib/plugins/user.py:257
msgid "UID"
msgstr ""
-#: ipalib/plugins/user.py:244
+#: ipalib/plugins/user.py:258
msgid "User ID Number (system will assign one if not provided)"
msgstr ""
-#: ipalib/plugins/user.py:251
+#: ipalib/plugins/user.py:265
msgid "Group ID Number"
msgstr ""
-#: ipalib/plugins/user.py:257
+#: ipalib/plugins/user.py:271
msgid "Street address"
msgstr ""
-#: ipalib/plugins/user.py:261
+#: ipalib/plugins/user.py:275
msgid "City"
msgstr ""
-#: ipalib/plugins/user.py:265
+#: ipalib/plugins/user.py:279
msgid "State/Province"
msgstr ""
-#: ipalib/plugins/user.py:268
+#: ipalib/plugins/user.py:282
msgid "ZIP"
msgstr ""
-#: ipalib/plugins/user.py:272
+#: ipalib/plugins/user.py:286
msgid "Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:275
+#: ipalib/plugins/user.py:289
msgid "Mobile Telephone Number"
msgstr ""
-#: ipalib/plugins/user.py:278
+#: ipalib/plugins/user.py:292
msgid "Pager Number"
msgstr ""
-#: ipalib/plugins/user.py:282
+#: ipalib/plugins/user.py:296
msgid "Fax Number"
msgstr ""
-#: ipalib/plugins/user.py:286
+#: ipalib/plugins/user.py:300
msgid "Org. Unit"
msgstr ""
-#: ipalib/plugins/user.py:289
+#: ipalib/plugins/user.py:303
msgid "Job Title"
msgstr ""
-#: ipalib/plugins/user.py:292
+#: ipalib/plugins/user.py:306
msgid "Manager"
msgstr ""
-#: ipalib/plugins/user.py:295
+#: ipalib/plugins/user.py:309
msgid "Car License"
msgstr ""
-#: ipalib/plugins/user.py:298
+#: ipalib/plugins/user.py:312
msgid "Account disabled"
msgstr ""
-#: ipalib/plugins/user.py:340
+#: ipalib/plugins/user.py:363
#, python-format
msgid "manager %(manager)s not found"
msgstr ""
-#: ipalib/plugins/user.py:359
+#: ipalib/plugins/user.py:382
msgid "Add a new user."
msgstr ""
-#: ipalib/plugins/user.py:361
+#: ipalib/plugins/user.py:384
#, python-format
msgid "Added user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:368
+#: ipalib/plugins/user.py:391
msgid "Don't create user private group"
msgstr ""
-#: ipalib/plugins/user.py:398
+#: ipalib/plugins/user.py:421
#, python-format
msgid "can be at most %(len)d characters"
msgstr ""
-#: ipalib/plugins/user.py:475
+#: ipalib/plugins/user.py:512
msgid "Delete a user."
msgstr ""
-#: ipalib/plugins/user.py:477
+#: ipalib/plugins/user.py:514
#, python-format
msgid "Deleted user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:486
+#: ipalib/plugins/user.py:523
msgid "Modify a user."
msgstr ""
-#: ipalib/plugins/user.py:488
+#: ipalib/plugins/user.py:525
#, python-format
msgid "Modified user \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:510
+#: ipalib/plugins/user.py:566
msgid "Search for users."
msgstr ""
-#: ipalib/plugins/user.py:517
+#: ipalib/plugins/user.py:573
msgid "Self"
msgstr ""
-#: ipalib/plugins/user.py:518
+#: ipalib/plugins/user.py:574
msgid "Display user record for current Kerberos principal"
msgstr ""
-#: ipalib/plugins/user.py:539
+#: ipalib/plugins/user.py:596
#, python-format
msgid "%(count)d user matched"
msgid_plural "%(count)d users matched"
msgstr[0] ""
msgstr[1] ""
-#: ipalib/plugins/user.py:546
+#: ipalib/plugins/user.py:603
msgid "Display information about a user."
msgstr ""
-#: ipalib/plugins/user.py:560
+#: ipalib/plugins/user.py:618
msgid "Disable a user account."
msgstr ""
-#: ipalib/plugins/user.py:563
+#: ipalib/plugins/user.py:621
#, python-format
msgid "Disabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:581
+#: ipalib/plugins/user.py:639
msgid "Enable a user account."
msgstr ""
-#: ipalib/plugins/user.py:585
+#: ipalib/plugins/user.py:643
#, python-format
msgid "Enabled user account \"%(value)s\""
msgstr ""
-#: ipalib/plugins/user.py:602
+#: ipalib/plugins/user.py:660
msgid ""
"\n"
" Unlock a user account\n"
@@ -7280,48 +8006,54 @@ msgid ""
" an administrator."
msgstr ""
-#: ipalib/plugins/user.py:611
+#: ipalib/plugins/user.py:669
#, python-format
msgid "Unlocked account \"%(value)s\""
msgstr ""
-#: ipalib/util.py:192
+#: ipalib/session.py:696 ipalib/session.py:800
+msgid "could not allocate unique new session_id"
+msgstr ""
+
+#: ipalib/util.py:194
#, python-format
msgid "Permission denied: %(file)s"
msgstr ""
-#: ipalib/util.py:220
+#: ipalib/util.py:222
msgid ""
"mail account may only include letters, numbers, -, _ and a dot. There may "
"not be consecutive -, _ and . characters"
msgstr ""
-#: ipalib/util.py:223 ipalib/util.py:264
+#: ipalib/util.py:225 ipalib/util.py:267
msgid "cannot be longer that 255 characters"
msgstr ""
-#: ipalib/util.py:233
-msgid "too many '@' characters"
+#: ipalib/util.py:235 ipalib/util.py:243
+msgid "missing address domain"
msgstr ""
-#: ipalib/util.py:239 ipalib/util.py:253
-msgid ""
-"address domain is not fully qualified (\"example.com\" instead of just "
-"\"example\")"
+#: ipalib/util.py:237
+msgid "too many '@' characters"
msgstr ""
-#: ipalib/util.py:257
+#: ipalib/util.py:256
msgid "domain name may only include letters, numbers, and -"
msgstr ""
-#: ipalib/util.py:270
-msgid "hostname is not fully qualified"
+#: ipalib/util.py:273
+msgid "not fully qualified"
msgstr ""
-#: ipalib/util.py:273
+#: ipalib/util.py:276
msgid ""
-"hostname parts may only include letters, numbers, and - (which is not "
-"allowed as the last character)"
+"only letters, numbers, and - are allowed. - must not be the last name "
+"character"
+msgstr ""
+
+#: ipalib/util.py:283
+msgid "invalid SSH public key"
msgstr ""
#: ipalib/x509.py:213
@@ -7329,9 +8061,9 @@ msgstr ""
msgid "Issuer \"%(issuer)s\" does not match the expected issuer"
msgstr ""
-#: ipaserver/plugins/dogtag.py:1375 ipaserver/plugins/dogtag.py:1460
-#: ipaserver/plugins/dogtag.py:1525 ipaserver/plugins/dogtag.py:1603
-#: ipaserver/plugins/dogtag.py:1662
+#: ipaserver/plugins/dogtag.py:1371 ipaserver/plugins/dogtag.py:1456
+#: ipaserver/plugins/dogtag.py:1521 ipaserver/plugins/dogtag.py:1599
+#: ipaserver/plugins/dogtag.py:1658
#, python-format
msgid "Unable to communicate with CMS (%s)"
msgstr ""
@@ -7453,9 +8185,9 @@ msgid "Failed to create key!\n"
msgstr ""
#: ipa-client/ipa-getkeytab.c:337 ipa-client/ipa-getkeytab.c:370
-#: ipa-client/ipa-join.c:357 ipa-client/ipa-join.c:432
-#: ipa-client/ipa-join.c:450 ipa-client/ipa-join.c:550
-#: ipa-client/ipa-join.c:738 ipa-client/ipa-join.c:806
+#: ipa-client/ipa-join.c:378 ipa-client/ipa-join.c:453
+#: ipa-client/ipa-join.c:471 ipa-client/ipa-join.c:572
+#: ipa-client/ipa-join.c:766 ipa-client/ipa-join.c:834
#, c-format
msgid "Out of memory!\n"
msgstr ""
@@ -7490,7 +8222,7 @@ msgstr ""
msgid "Unable to initialize ldap library!\n"
msgstr ""
-#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:219
+#: ipa-client/ipa-getkeytab.c:593 ipa-client/ipa-join.c:240
#, c-format
msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n"
msgstr ""
@@ -7689,233 +8421,239 @@ msgstr ""
msgid "access() on %s failed: errno = %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:143 ipa-client/ipa-join.c:199
+#: ipa-client/ipa-join.c:134 ipa-client/ipa-join.c:163
+#: ipa-client/ipa-join.c:220
#, c-format
msgid "Out of memory!"
msgstr ""
-#: ipa-client/ipa-join.c:206
+#: ipa-client/ipa-join.c:227
#, c-format
msgid "Unable to initialize connection to ldap server: %s"
msgstr ""
-#: ipa-client/ipa-join.c:212
+#: ipa-client/ipa-join.c:233
#, c-format
msgid "Unable to enable SSL in LDAP\n"
msgstr ""
-#: ipa-client/ipa-join.c:225
+#: ipa-client/ipa-join.c:246
#, c-format
msgid "Unable to set LDAP version\n"
msgstr ""
-#: ipa-client/ipa-join.c:245
+#: ipa-client/ipa-join.c:266
#, c-format
msgid "Bind failed: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:280
+#: ipa-client/ipa-join.c:301
#, c-format
msgid "Search for %s on rootdse failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:292 ipa-client/ipa-join.c:377
+#: ipa-client/ipa-join.c:313 ipa-client/ipa-join.c:398
#, c-format
msgid "No values for %s"
msgstr ""
-#: ipa-client/ipa-join.c:316
+#: ipa-client/ipa-join.c:337
#, c-format
msgid "Search for IPA namingContext failed with error %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:322
+#: ipa-client/ipa-join.c:343
#, c-format
msgid "IPA namingContext not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:368
+#: ipa-client/ipa-join.c:389
#, c-format
msgid "Search for ipaCertificateSubjectBase failed with error %d"
msgstr ""
-#: ipa-client/ipa-join.c:439
+#: ipa-client/ipa-join.c:460
#, c-format
msgid "Unable to determine root DN of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:457
+#: ipa-client/ipa-join.c:478
#, c-format
msgid "Incorrect password.\n"
msgstr ""
-#: ipa-client/ipa-join.c:465
+#: ipa-client/ipa-join.c:486
#, c-format
msgid "Unable to determine certificate subject of %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:481
+#: ipa-client/ipa-join.c:502
#, c-format
msgid "Enrollment failed. %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:605
+#: ipa-client/ipa-join.c:631
#, c-format
msgid "principal not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:620
+#: ipa-client/ipa-join.c:646
#, c-format
msgid "Host is already joined.\n"
msgstr ""
-#: ipa-client/ipa-join.c:686 ipa-client/ipa-join.c:887
+#: ipa-client/ipa-join.c:714 ipa-client/ipa-join.c:920
#, c-format
msgid "Unable to determine IPA server from %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:702 ipa-client/ipa-join.c:902
+#: ipa-client/ipa-join.c:730 ipa-client/ipa-join.c:935
#, c-format
msgid "The hostname must be fully-qualified: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:711 ipa-client/ipa-join.c:912
+#: ipa-client/ipa-join.c:739 ipa-client/ipa-join.c:951
#, c-format
msgid "Unable to join host: Kerberos context initialization failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:719
+#: ipa-client/ipa-join.c:747
#, c-format
msgid "Error resolving keytab: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:728
+#: ipa-client/ipa-join.c:756
#, c-format
msgid "Error getting default Kerberos realm: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:746
+#: ipa-client/ipa-join.c:774
#, c-format
msgid "Error parsing \"%s\": %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:764
+#: ipa-client/ipa-join.c:792
#, c-format
msgid "Error obtaining initial credentials: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:775
+#: ipa-client/ipa-join.c:803
#, c-format
msgid "Unable to generate Kerberos Credential Cache\n"
msgstr ""
-#: ipa-client/ipa-join.c:783
+#: ipa-client/ipa-join.c:811
#, c-format
msgid "Error storing creds in credential cache: %s.\n"
msgstr ""
-#: ipa-client/ipa-join.c:833
+#: ipa-client/ipa-join.c:865
#, c-format
msgid "Unenrollment successful.\n"
msgstr ""
-#: ipa-client/ipa-join.c:836
+#: ipa-client/ipa-join.c:868
#, c-format
msgid "Unenrollment failed.\n"
msgstr ""
-#: ipa-client/ipa-join.c:841
+#: ipa-client/ipa-join.c:873
#, c-format
msgid "result not found in XML-RPC response\n"
msgstr ""
-#: ipa-client/ipa-join.c:919
+#: ipa-client/ipa-join.c:941
+#, c-format
+msgid "The hostname must not be: %s\n"
+msgstr ""
+
+#: ipa-client/ipa-join.c:958
#, c-format
msgid "Unable to join host: Kerberos Credential Cache not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:927
+#: ipa-client/ipa-join.c:966
#, c-format
msgid ""
"Unable to join host: Kerberos User Principal not found and host password not "
"provided.\n"
msgstr ""
-#: ipa-client/ipa-join.c:941
+#: ipa-client/ipa-join.c:980
#, c-format
msgid "fork() failed\n"
msgstr ""
-#: ipa-client/ipa-join.c:970
+#: ipa-client/ipa-join.c:1009
#, c-format
msgid "ipa-getkeytab not found\n"
msgstr ""
-#: ipa-client/ipa-join.c:973
+#: ipa-client/ipa-join.c:1012
#, c-format
msgid "ipa-getkeytab has bad permissions?\n"
msgstr ""
-#: ipa-client/ipa-join.c:976
+#: ipa-client/ipa-join.c:1015
#, c-format
msgid "executing ipa-getkeytab failed, errno %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:988
+#: ipa-client/ipa-join.c:1027
#, c-format
msgid "child exited with %d\n"
msgstr ""
-#: ipa-client/ipa-join.c:994
+#: ipa-client/ipa-join.c:1033
#, c-format
msgid "Certificate subject base is: %s\n"
msgstr ""
-#: ipa-client/ipa-join.c:1031
+#: ipa-client/ipa-join.c:1070
msgid "Print the raw XML-RPC output in GSSAPI mode"
msgstr ""
-#: ipa-client/ipa-join.c:1033
+#: ipa-client/ipa-join.c:1072
msgid "Quiet mode. Only errors are displayed."
msgstr ""
-#: ipa-client/ipa-join.c:1035
+#: ipa-client/ipa-join.c:1074
msgid "Unenroll this host from IPA server"
msgstr ""
-#: ipa-client/ipa-join.c:1037
+#: ipa-client/ipa-join.c:1076
msgid "Hostname of this server"
msgstr ""
-#: ipa-client/ipa-join.c:1037 ipa-client/ipa-join.c:1039
+#: ipa-client/ipa-join.c:1076 ipa-client/ipa-join.c:1078
msgid "hostname"
msgstr ""
-#: ipa-client/ipa-join.c:1039
+#: ipa-client/ipa-join.c:1078
msgid "IPA Server to use"
msgstr ""
-#: ipa-client/ipa-join.c:1041
+#: ipa-client/ipa-join.c:1080
msgid "Specifies where to store keytab information."
msgstr ""
-#: ipa-client/ipa-join.c:1041
+#: ipa-client/ipa-join.c:1080
msgid "filename"
msgstr ""
-#: ipa-client/ipa-join.c:1043
+#: ipa-client/ipa-join.c:1082
msgid "LDAP password (if not using Kerberos)"
msgstr ""
-#: ipa-client/ipa-join.c:1043
+#: ipa-client/ipa-join.c:1082
msgid "password"
msgstr ""
-#: ipa-client/ipa-join.c:1045
+#: ipa-client/ipa-join.c:1084
msgid "LDAP basedn"
msgstr ""
-#: ipa-client/ipa-join.c:1045
+#: ipa-client/ipa-join.c:1084
msgid "basedn"
msgstr ""